<!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 data-premailer="ignore" type="text/css">
a { color: #1068bf; }
</style>


<style>img {
max-width: 100%; height: auto;
}
body {
font-size: 0.875rem;
}
body {
-webkit-text-shadow: rgba(255,255,255,0.01) 0 0 1px;
}
body {
font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Noto Sans", Ubuntu, Cantarell, "Helvetica Neue", sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji"; font-size: inherit;
}
</style>
</head>
<body style='font-size: inherit; -webkit-text-shadow: rgba(255,255,255,0.01) 0 0 1px; font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Noto Sans", Ubuntu, Cantarell, "Helvetica Neue", sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji";'>
<div class="content">

<h3 style="margin-top: 20px; margin-bottom: 10px;">
Ben Gamari pushed to branch wip/bump-llvm
at <a href="https://gitlab.haskell.org/ghc/ghc" style="color: #1068bf;">Glasgow Haskell Compiler / GHC</a>
</h3>
<h4 style="margin-top: 10px; margin-bottom: 10px;">
Commits:
</h4>
<ul>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/7ea7624c20b02b25b5d6b51ff75aa25313a0371d" style="color: #1068bf;">7ea7624c</a></strong>
<div>
<span>by Ryan Scott</span>
<i>at 2021-03-15T00:42:27-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>Document the interaction between ScopedTypeVariables and StandaloneKindSignatures

This documents a limitation of `StandaloneKindSignatures`—namely, that it
does not bring type variables bound by an outermost `forall` into scope over
a type-level declaration—in the GHC User's Guide. See #19498 for more
discussion.
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/92d98424bf7f8bbd55e1b123d0755c9d52f123dd" style="color: #1068bf;">92d98424</a></strong>
<div>
<span>by Vladislav Zavialov</span>
<i>at 2021-03-15T00:43:05-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>Fix record dot precedence (#19521)

By moving the handling of TIGHT_INFIX_PROJ to the correct place,
we can remove the isGetField hack and fix a bug at the same time.
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/545cfefaa88b31daa2cb3519b7561171e7ca51b3" style="color: #1068bf;">545cfefa</a></strong>
<div>
<span>by Vladislav Zavialov</span>
<i>at 2021-03-15T00:43:05-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>Test chained record construction/update/access

According to the proposal, we have the following equivalence:

        e{lbl1 = val1}.val2   ==   (e{lbl1 = val1}).val2

This is a matter of parsing. Record construction/update must have the
same precedence as dot access.

Add a test case to ensure this.
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/b5b51c54a7d6539caa4c3dcb7be52072b4a10775" style="color: #1068bf;">b5b51c54</a></strong>
<div>
<span>by Moritz Angermann</span>
<i>at 2021-03-16T10:04:23+08:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>[ci] Skip test's on windows that often fail in CI.
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/58cfcc658f7964286dcb6073d28c54fc57c8aa94" style="color: #1068bf;">58cfcc65</a></strong>
<div>
<span>by Hécate Moonlight</span>
<i>at 2021-03-17T00:57:17-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>Make the CI jobs interruptible

closes #19362
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/43a64744458dcec82102d6daf488c33b99f24745" style="color: #1068bf;">43a64744</a></strong>
<div>
<span>by Moritz Angermann</span>
<i>at 2021-03-17T04:16:27-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>[ci] don't make marge double build.

This fixes !18744
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/f11954b16c07703b5444eda4a8ab16eadaedc7e6" style="color: #1068bf;">f11954b1</a></strong>
<div>
<span>by ARATA Mizuki</span>
<i>at 2021-03-17T19:05:13-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>Add a test for fromInteger :: Integer -> Float/Double (#15926, #17231, #17782)
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/540fa6b2cff3802877ff56a47ab3611e33a9ac86" style="color: #1068bf;">540fa6b2</a></strong>
<div>
<span>by ARATA Mizuki</span>
<i>at 2021-03-17T19:05:13-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>fromInteger :: Integer -> {Float,Double} now always round to nearest even

integerToFloat# and integerToDouble# were moved from ghc-bignum to base.

GHC.Integer.floatFromInteger and doubleFromInteger were removed.

Fixes #15926, #17231, #17782
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/84927818ee68c6826327abc26d4647fb56053fb7" style="color: #1068bf;">84927818</a></strong>
<div>
<span>by Ben Gamari</span>
<i>at 2021-03-17T19:05:50-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>llvmGen: Accept range of LLVM versions

Previously we would support only one LLVM major version. Here we
generalize this to accept a range, taking this range to be LLVM 10 to 11,
as 11 is necessary for Apple M1 support. We also accept 12, as that is
what apple ships with BigSur on the M1.
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/d14a20686ceb508cb19284e9839b74d0480a5a46" style="color: #1068bf;">d14a2068</a></strong>
<div>
<span>by Sylvain Henry</span>
<i>at 2021-03-17T19:06:33-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>Enhance pass result forcing

When we use `withTiming` we need to force the results of each timed pass
to better represent the time spent in each phase. This patch forces
some results that weren't before.

It also retrieve timings for the CoreToStg and WriteIface passes.
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/665b757f48e8dab2bab6d68afc3748a8d8896d2f" style="color: #1068bf;">665b757f</a></strong>
<div>
<span>by Ben Gamari</span>
<i>at 2021-03-17T19:07:10-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>IfaceToType: Ensure that IfaceTyConInfo is shared

In #19194 mpickering detailed that there are a LOT of allocations
of IfaceTyConInfo:

There are just two main cases: IfaceTyConInfo IsPromoted IfaceNormalTyCon
and IfaceTyConInfo NotPromoted IfaceNormalTyCon. These should be made into
CAFs and shared. From my analysis, the most common case is
IfaceTyConInfo NotPromoted IfaceNormalTyCon (53 000)
then IfaceTyConInfo IsPromoted IfaceNormalTyCon (28 000).

This patch makes it so these are properly shared by using a smart
constructor.

Fixes #19194.
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/4fbc855849967402474763cb8afba92716c48e41" style="color: #1068bf;">4fbc8558</a></strong>
<div>
<span>by Ben Gamari</span>
<i>at 2021-03-17T19:07:47-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>Eliminate selector thunk allocations
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/42049339cd7adfc5b7220ad49cca21efedf6a2ca" style="color: #1068bf;">42049339</a></strong>
<div>
<span>by Ben Gamari</span>
<i>at 2021-03-17T19:07:47-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>CmmToAsm.Reg.Linear: Make linearRA body a join point

Avoid top-level recursion.
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/fe6cad22353ee027358251cbf91a3811c6e925ff" style="color: #1068bf;">fe6cad22</a></strong>
<div>
<span>by Ben Gamari</span>
<i>at 2021-03-17T19:07:47-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>CmmtoAsm.Reg.Linear: Rewrite process

CmmToAsm.Reg.Linear: More strictness

More strictness
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/6b10163e0da90dfc0eeb52549598faa2c0527e37" style="color: #1068bf;">6b10163e</a></strong>
<div>
<span>by Sylvain Henry</span>
<i>at 2021-03-17T19:08:27-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>Disable bogus assertion (#19489)
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/26d26974f5d16a3b2c6ec84a739caab10c7d2b07" style="color: #1068bf;">26d26974</a></strong>
<div>
<span>by Ryan Scott</span>
<i>at 2021-03-17T19:09:03-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>Document how GADT patterns are matched from left-to-right, outside-in

This adds some bullet points to the GHC User's Guide section on `GADTs` to
explain some subtleties in how GHC typechecks GADT patterns. In particular,
this adds examples of programs being rejected for matching on GADTs in a way
that does not mesh with GHC's left-to-right, outside-in order for checking
patterns, which can result in programs being rejected for seemingly
counterintuitive reasons. (See #12018 for examples of confusion that arose
from this.) In addition, now that we have visible type application in data
constructor patterns, I mention a possible workaround of using
`TypeApplications` to repair programs of this sort.

Resolves #12018.
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/302854154626ef10363afdda3ff1db7160e0827f" style="color: #1068bf;">30285415</a></strong>
<div>
<span>by Vladislav Zavialov</span>
<i>at 2021-03-17T19:09:40-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>Built-in type families: CharToNat, NatToChar (#19535)

Co-authored-by: Daniel Rogozin <daniel.rogozin@serokell.io>
Co-authored-by: Rinat Stryungis <rinat.stryungis@serokell.io>
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/0a9866854384875e88406e495aba6594ac47799d" style="color: #1068bf;">0a986685</a></strong>
<div>
<span>by Ben Gamari</span>
<i>at 2021-03-19T19:58:52-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>testsuite: Make --ignore-perf-tests more expressive

Allow skipping of only increases/decreases.
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/d03d876185da2db9b397c58a383c0eac1892cafc" style="color: #1068bf;">d03d8761</a></strong>
<div>
<span>by Ben Gamari</span>
<i>at 2021-03-19T19:58:52-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>gitlab-ci: Ignore performance improvements in marge jobs

Currently we have far too many merge failures due to cumulative
performance improvements. Avoid this by accepting metric decreases in
marge-bot jobs.

Fixes #19562.
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/7d027433d30bdccf787197b28abfdcc1de263b89" style="color: #1068bf;">7d027433</a></strong>
<div>
<span>by Gaël Deest</span>
<i>at 2021-03-20T07:48:01-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>[skip ci] Fix 'Ord' documentation inconsistency

Current documentation for the `Ord` typeclass is inconsistent. It
simultaneously mentions that:

> The 'Ord' class is used for totally ordered datatypes.

And:

> The Haskell Report defines no laws for 'Ord'. However, '<=' is
> customarily expected to implement a non-strict partial order […]

The Haskell report (both 98 and 2010 versions) mentions total ordering,
which implicitly does define laws. Moreover, `compare :: Ord a => a -> a
-> Ordering` and `data Ordering = LT | EQ | GT` imply that the order is
indeed total (there is no way to say that two elements are not
comparable). This MR fixes the Haddock comment, and adds a comparability
law to the list of suggested properties.
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/f940fd466a86c2f8e93237b36835797be3f3c898" style="color: #1068bf;">f940fd46</a></strong>
<div>
<span>by Alan Zimmerman</span>
<i>at 2021-03-20T07:48:37-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>Add the main types to be used for exactprint in the GHC AST

The MR introducing the API Annotations, !2418 is huge.

Conceptually it is two parts, the one deals with introducing the new
types to be used for annotations, and outlining how they will be
used.  This is a small change, localised to
compiler/GHC/Parser/Annotation.hs and is contained in this commit.

The follow-up, larger commit deals with mechanically working this
through the entire AST and updating all the parts affected by it.

It is being split so the part that needs good review feedback can be
seen in isolation, prior to the rest coming in.
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/95275a5f25a2e70b71240d4756109180486af1b1" style="color: #1068bf;">95275a5f</a></strong>
<div>
<span>by Alan Zimmerman</span>
<i>at 2021-03-20T07:48:38-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>GHC Exactprint main commit

Metric Increase:
       T10370
       parsing001

Updates haddock submodule
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/adf937216edbb1fcdb2fd2c90d5fe6fca7c8055d" style="color: #1068bf;">adf93721</a></strong>
<div>
<span>by GHC GitLab CI</span>
<i>at 2021-03-20T07:48:38-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>check-ppr,check-exact: Write out result as binary

Previously we would use `writeFile` to write the intermediate files to
check for round-tripping. However, this will open the output handle as a
text handle, which on Windows will change line endings. Avoid this by
opening as binary.

Explicitly use utf8 encoding.

This is for tests only, do not need to worry about user compatibility.
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/ceef490b25dbff93860b121c58b0191b1a0c07bf" style="color: #1068bf;">ceef490b</a></strong>
<div>
<span>by GHC GitLab CI</span>
<i>at 2021-03-20T07:48:38-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>testsuite: Normalise slashes

In the `comments` and `literals` tests, since they contain file paths.
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/dd11f2d5e87ba83ca16510e3e1ac6c41c1df1647" style="color: #1068bf;">dd11f2d5</a></strong>
<div>
<span>by Luite Stegeman</span>
<i>at 2021-03-20T07:49:15-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>Save the type of breakpoints in the Breakpoint tick in STG

GHCi needs to know the types of all breakpoints, but it's
not possible to get the exprType of any expression in STG.

This is preparation for the upcoming change to make GHCi
bytecode from STG instead of Core.
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/26328a688183e3af49b5ac315b27afc2691bbc46" style="color: #1068bf;">26328a68</a></strong>
<div>
<span>by Luite Stegeman</span>
<i>at 2021-03-20T07:49:15-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>remove superfluous 'id' type parameter from GenTickish

The 'id' type is now determined by the pass, using the XTickishId
type family.
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/0107f3568d060b4c979aa3740465c4f6ca4c2bba" style="color: #1068bf;">0107f356</a></strong>
<div>
<span>by Luite Stegeman</span>
<i>at 2021-03-20T07:49:15-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>rename Tickish to CoreTickish
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/7de3532f0317032f75b76150c5d3a6f76178be04" style="color: #1068bf;">7de3532f</a></strong>
<div>
<span>by Luite Stegeman</span>
<i>at 2021-03-20T07:49:15-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>Transfer tickish things to GHC.Types.Tickish

Metric Increase:
    MultiLayerModules
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/1f94e0f7601f8e22fdd81a47f130650265a44196" style="color: #1068bf;">1f94e0f7</a></strong>
<div>
<span>by Luite Stegeman</span>
<i>at 2021-03-20T07:49:15-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>Generate GHCi bytecode from STG instead of Core and support unboxed
tuples and sums.

fixes #1257
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/62b0e1bcc537b415ba969e00a417d6aded94c309" style="color: #1068bf;">62b0e1bc</a></strong>
<div>
<span>by Andreas Klebinger</span>
<i>at 2021-03-20T07:49:50-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>Make the simplifier slightly stricter.

This commit reduces allocations by the simplifier by 3% for the
Cabal test at -O2.

We do this by making a few select fields, bindings and arguments strict
which reduces allocations for the simplifier by around 3% in total
for the Cabal test. Which is about 2% fewer allocations in total at
-O2.

-------------------------
Metric Decrease:
    T18698a
    T18698b
    T9233
    T9675
    T9872a
    T9872b
    T9872c
    T9872d
    T10421
    T12425
    T13253
    T5321FD
    T9961
-------------------------
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/044e5be3b595858d0d689e27dad427bbdbf26cb4" style="color: #1068bf;">044e5be3</a></strong>
<div>
<span>by Sebastian Graf</span>
<i>at 2021-03-20T07:50:26-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>Nested CPR light (#19398)

While fixing #19232, it became increasingly clear that the vestigial
hack described in `Note [Optimistic field binder CPR]` is complicated
and causes reboxing. Rather than make the hack worse, this patch
gets rid of it completely in favor of giving deeply unboxed parameters
the Nested CPR property. Example:
```hs
f :: (Int, Int) -> Int
f p = case p of
 (x, y) | x == y    = x
        | otherwise = y
```
Based on `p`'s `idDemandInfo` `1P(1P(L),1P(L))`, we can see that both
fields of `p` will be available unboxed. As a result, we give `p` the
nested CPR property `1(1,1)`. When analysing the `case`, the field
CPRs are transferred to the binders `x` and `y`, respectively, so that
we ultimately give `f` the CPR property.

I took the liberty to do a bit of refactoring:

- I renamed `CprResult` ("Constructed product result result") to plain
  `Cpr`.
- I Introduced `FlatConCpr` in addition to (now nested) `ConCpr` and
  and according pattern synonym that rewrites flat `ConCpr` to
  `FlatConCpr`s, purely for compiler perf reasons.
- Similarly for performance reasons, we now store binders with a
  Top signature in a separate `IntSet`,
  see `Note [Efficient Top sigs in SigEnv]`.
- I moved a bit of stuff around in `GHC.Core.Opt.WorkWrap.Utils` and
  introduced `UnboxingDecision` to replace the `Maybe DataConPatContext`
  type we used to return from `wantToUnbox`.
- Since the `Outputable Cpr` instance changed anyway, I removed the
  leading `m` which we used to emit for `ConCpr`. It's just noise,
  especially now that we may output nested CPRs.

Fixes #19398.
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/8592a2462a4f1e901459b5866020ddf7b381b4a9" style="color: #1068bf;">8592a246</a></strong>
<div>
<span>by Simon Jakobi</span>
<i>at 2021-03-20T07:51:01-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>Add compiler perf regression test for #9198
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/d4605e7ce4f5f8252a1e932e239cab79219875a5" style="color: #1068bf;">d4605e7c</a></strong>
<div>
<span>by Simon Peyton Jones</span>
<i>at 2021-03-20T07:51:36-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>Fix an levity-polymorphism error

As #19522 points out, we did not account for visible type
application when trying to reject naked levity-polymorphic
functions that have no binding.

This patch tidies up the code, and fixes the bug too.
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/3fa3fb79e02858c29797a904655985628513cc01" style="color: #1068bf;">3fa3fb79</a></strong>
<div>
<span>by John Ericson</span>
<i>at 2021-03-20T07:52:12-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>Add more boundary checks for `rem` and `mod`

It's quite backend-dependent whether we will actually handle that case
right, so let's just always do this as a precaution.

In particular, once we replace the native primops used here with the new
sized primops, the 16-bit ones on x86 will begin to use 16-bit sized
instructions where they didn't before.

Though I'm not sure of any arch which has 8-bit scalar instructions, I
also did those for consistency. Plus, there are *vector* 8-bit ops in
the wild, so if we ever got into autovectorization or something maybe
it's prudent to put this here as a reminder not to forget about
catching overflows.

Progress towards #19026
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/8e054ff3c79be5d33a00449bec5e7d4814ff2e54" style="color: #1068bf;">8e054ff3</a></strong>
<div>
<span>by John Ericson</span>
<i>at 2021-03-20T07:52:47-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>Fix literals for unregisterized backend of small types

All credit to @hsyl20, who in
https://gitlab.haskell.org/ghc/ghc/-/merge_requests/4717#note_338560
figured out this was a problem.

To fix this, we use casts in addition to the shrinking and suffixing
that is already done. It might make for more verbose code, I don't think
that matters too much.

In the future, perhaps some of the shrinking and suffixing can be
removed for being redundant. That proved less trivial than it sounds, so
this wasn't done at this time.

Progress towards #19026

Metric Increase:
    T12707
    T13379

Co-authored-by: Sylvain Henry <hsyl20@gmail.com>
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/226cefd0a8ae0212e8748ee427e617abd725c649" style="color: #1068bf;">226cefd0</a></strong>
<div>
<span>by Sylvain Henry</span>
<i>at 2021-03-20T07:53:24-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>Fix fake import in GHC.Exception.Type boot module

It seems like I imported "GHC.Types ()" thinking that it would
transitively import GHC.Num.Integer when I wrote that module; but it
doesn't.

This led to build failures.
See https://mail.haskell.org/pipermail/ghc-devs/2021-March/019641.html
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/e84e280503e35bd33ae6c5a7f7f4f922dd205dbe" style="color: #1068bf;">e84e2805</a></strong>
<div>
<span>by Viktor Dukhovni</span>
<i>at 2021-03-20T07:54:01-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>Add fold vs. mconcat test T17123
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/fa49935603bee32a65425d356a75c68a25a805c3" style="color: #1068bf;">fa499356</a></strong>
<div>
<span>by Sebastian Graf</span>
<i>at 2021-03-20T07:54:36-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>Remove outdated Vagrantfile
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/71e609fb1e60cf13035c69c179e3ec722b2e26c4" style="color: #1068bf;">71e609fb</a></strong>
<div>
<span>by Moritz Angermann</span>
<i>at 2021-03-20T07:55:11-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>Add error information to osCommitMemory on failure.
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/fb939498a3128de49eb149cb291b933825fde518" style="color: #1068bf;">fb939498</a></strong>
<div>
<span>by Ben Gamari</span>
<i>at 2021-03-20T10:20:30-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>gitlab-ci: Always start with fresh clone

Currently we are suffering from issues that appear to be 
caused by non-hermetic builds.  Try avoiding this by setting
`GIT_STRATEGY` to `clone`.</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/c53faa0c1d1535954b54649b475e8945260e4c45" style="color: #1068bf;">c53faa0c</a></strong>
<div>
<span>by Ben Gamari</span>
<i>at 2021-03-20T15:12:12-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>Clean up TBDs in changelog

(cherry picked from commit 4f334120c8e9cc4aefcbf11d99f169f648af9fde)
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/91ddac2f859a8fb37e2a295f94676c9705fe0227" style="color: #1068bf;">91ddac2f</a></strong>
<div>
<span>by Ryan Scott</span>
<i>at 2021-03-20T15:12:12-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>Move miscategorized items in template-haskell changelog
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/6a375b5365b3d0c74198dbd702beda6632890454" style="color: #1068bf;">6a375b53</a></strong>
<div>
<span>by Ryan Scott</span>
<i>at 2021-03-20T15:12:12-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>Bump template-haskell version to 2.18.0.0

This requires bumping the `exceptions` and `text` submodules to bring in
commits that bump their respective upper version bounds on `template-haskell`.

Fixes #19083.
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/adbaa9a9e3d952d21be74178e2e4405e0777d456" style="color: #1068bf;">adbaa9a9</a></strong>
<div>
<span>by Ryan Scott</span>
<i>at 2021-03-21T19:40:02-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>Remove unnecessary extendTyVarEnvFVRn function

The `extendTyVarEnvFVRn` function does the exact same thing as
`bindLocalNamesFV`. I see no meaningful distinction between the two functions,
so let's just remove the former (which is only used in a handful of places) in
favor of the latter.

Historical note: `extendTyVarEnvFVRn` and `bindLocalNamesFV` used to be
distinct functions, but their implementations were synchronized in 2004 as a
part of commit 20e39e0e07e4a8e9395894b2785d6675e4e3e3b3.
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/0cbdba2768d84a0f6832ae5cf9ea1e98efd739da" style="color: #1068bf;">0cbdba27</a></strong>
<div>
<span>by Moritz Angermann</span>
<i>at 2021-03-21T21:04:42-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>[ci/arm/darwin/testsuite] Forwards ports from GHC-8.10

This is a set of forward ports (cherry-picks) from 8.10

- a7d22795ed [ci] Add support for building on aarch64-darwin
- 5109e87e13 [testlib/driver] denoise
- 307d34945b [ci] default value for CONFIGURE_ARGS
- 10a18cb4e0 [testsuite] mark ghci056 as fragile
- 16c13d5acf [ci] Default value for MAKE_ARGS
- ab571457b9 [ci/build] Copy config.sub around
- 251892b98f [ci/darwin] bump nixpkgs rev
- 5a6c36ecb4 [testsuite/darwin] fix conc059
- aae95ef0c9 [ci] add timing info
- 3592d1104c [Aarch64] No div-by-zero; disable test.
- 57671071ad [Darwin] mark stdc++ tests as broken
- 33c4d49754 [testsuite] filter out superfluous dylib warnings
- 4bea83afec [ci/nix-shell] Add Foundation and Security
- 6345530062 [testsuite/json2] Fix failure with LLVM backends
- c3944bc89d [ci/nix-shell] [Darwin] Stop the ld warnings about libiconv.
- b821fcc714 [testsuite] static001 is not broken anymore.
- f7062e1b0c [testsuite/arm64] fix section_alignment
- 820b076698 [darwin] stop the DYLD_LIBRARY_PATH madness
- 07b1af0362 [ci/nix-shell] uniquify NIX_LDFLAGS{_FOR_TARGET}

As well as a few additional fixups needed to make this block compile:
- Fixup all.T
- Set CROSS_TARGET, BROKEN_TESTS, XZ, RUNTEST_ARGS, default value.
- [ci] shell.nix bump happy
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/c46e81473cd81fe1c4572a78ef2ea0ab7758a25c" style="color: #1068bf;">c46e8147</a></strong>
<div>
<span>by Moritz Angermann</span>
<i>at 2021-03-21T21:04:42-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>[elf/aarch64] Fall Through decoration
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/069abe27324466c27a423f4614f60922e434809d" style="color: #1068bf;">069abe27</a></strong>
<div>
<span>by Moritz Angermann</span>
<i>at 2021-03-21T21:04:42-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>[llvm/darwin] change vortex cpu to generic

For now only the apple flavoured llvm knows vortex, as we build
against other toolchains, lets stay with generic for now.
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/2907949c169a0764676da8e5a4516c705f36932a" style="color: #1068bf;">2907949c</a></strong>
<div>
<span>by Moritz Angermann</span>
<i>at 2021-03-21T21:04:42-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>[ci] Default values for GITLAB_CI_BRANCH, and IGNORE_PERF_FAILURES
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/e82d32d6654ef708d580e3ed6f0cc1130daa6cb9" style="color: #1068bf;">e82d32d6</a></strong>
<div>
<span>by Ben Gamari</span>
<i>at 2021-03-22T09:22:29-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>compiler: Introduce mutableByteArrayContents# primop

As noted in #19540, a number of users within and outside of GHC rely on
unsafeCoerceUnlifted to work around the fact that this was missing
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/eeba7a3a13b6cd26a50eece4e18594b99ad1f9a8" style="color: #1068bf;">eeba7a3a</a></strong>
<div>
<span>by Ben Gamari</span>
<i>at 2021-03-22T09:22:29-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>base: Use mutableByteArrayContents
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/a9129f9fdfbd358e76aa197ba00bfe75012d6b4f" style="color: #1068bf;">a9129f9f</a></strong>
<div>
<span>by Simon Peyton Jones</span>
<i>at 2021-03-22T09:23:04-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>Short-circuit warning generation for partial type signatures

This Note says it all:

Note [Skip type holes rapidly]
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Suppose we have module with a /lot/ of partial type signatures, and we
compile it while suppressing partial-type-signature warnings.  Then
we don't want to spend ages constructing error messages and lists of
relevant bindings that we never display! This happened in #14766, in
which partial type signatures in a Happy-generated parser cause a huge
increase in compile time.

The function ignoreThisHole short-circuits the error/warning generation
machinery, in cases where it is definitely going to be a no-op.

It makes a pretty big difference on the Sigs.hs example in #14766:
               Compile-time allocation
   GHC 8.10            5.6G
   Before this patch   937G
   With this patch     4.7G

Yes, that's more than two orders of magnitude!
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/6e437a121a87e3aea2ed0ecc34bc470b1341668f" style="color: #1068bf;">6e437a12</a></strong>
<div>
<span>by Ben Gamari</span>
<i>at 2021-03-22T18:35:24-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>UniqSM: oneShot-ify

Part of #18202

-------------------------
Metric Decrease:
    T12707
    T3294
-------------------------
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/26dd1f887319c7b62bcfbd85a3727f94088a6852" style="color: #1068bf;">26dd1f88</a></strong>
<div>
<span>by Simon Peyton Jones</span>
<i>at 2021-03-23T08:09:05-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>More improvement to MonoLocalBinds documentation
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/26ba86f73c9125c03968aec88be919bdd6a2152b" style="color: #1068bf;">26ba86f7</a></strong>
<div>
<span>by Peter Trommler</span>
<i>at 2021-03-23T08:09:40-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>PPC NCG: Fix int to float conversion

In commit 540fa6b2 integer to float conversions were changed to round to
the nearest even. Implement a special case for 64 bit integer to single
precision floating point numbers.

Fixes #19563.
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/7a6577513633b943202fc82ab7aa162e1d293c0a" style="color: #1068bf;">7a657751</a></strong>
<div>
<span>by Ben Gamari</span>
<i>at 2021-03-23T13:00:37-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>rts: Use long-path-aware stat

Previously `pathstat` relied on msvcrt's `stat` implementation, which was
not long-path-aware. It should rather be defined in terms of the `stat`
implementation provided by `utils/fs`.

Fixes #19541.
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/05c5c0549bee022be84344cef46f0eded5564c3b" style="color: #1068bf;">05c5c054</a></strong>
<div>
<span>by Sylvain Henry</span>
<i>at 2021-03-23T13:01:15-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>Move loader state into Interp

The loader state was stored into HscEnv. As we need to have two
interpreters and one loader state per interpreter in #14335, it's
natural to make the loader state a field of the Interp type.

As a side effect, many functions now only require a Interp parameter
instead of HscEnv. Sadly we can't fully free GHC.Linker.Loader of HscEnv
yet because the loader is initialised lazily from the HscEnv the first
time it is used. This is left as future work.

HscEnv may not contain an Interp value (i.e. hsc_interp :: Maybe Interp).
So a side effect of the previous side effect is that callers of the
modified functions now have to provide an Interp. It is satisfying as it
pushes upstream the handling of the case where HscEnv doesn't contain an
Interpreter. It is better than raising a panic (less partial functions,
"parse, don't validate", etc.).
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/df895b3f972e0062a81c8c136fa9fdd79badea5c" style="color: #1068bf;">df895b3f</a></strong>
<div>
<span>by Ben Gamari</span>
<i>at 2021-03-23T20:43:36-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>gitlab-ci: Rework handling of head.hackage job trigger

GitLab 12.3 now has reasonable support [1] for cross-project job
dependencies, allowing us to drop the awful hack of a shell script we
used previously.

[1] https://docs.gitlab.com/ee/ci/multi_project_pipelines.html#mirroring-status-from-triggered-pipeline
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/25306ddc00c2236564bcfebd55a3f61ffa6d182e" style="color: #1068bf;">25306ddc</a></strong>
<div>
<span>by GHC GitLab CI</span>
<i>at 2021-03-23T20:44:11-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>EPA: Run exactprint transformation tests as part of CI

EPA == exact print annotations.

When !2418 landed, it did not run the tests brought over from
ghc-exactprint for making sure the AST prints correctly efter being
edited.

This enables those tests.
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/55fd158dfaebe96ef02d623b512b7559283a6f0a" style="color: #1068bf;">55fd158d</a></strong>
<div>
<span>by Ben Gamari</span>
<i>at 2021-03-24T12:35:23+01:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>CmmToAsm.Reg.Linear: Use concat rather than repeated (++)
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/23f4bc89406de24ec77ced45aa267f9a8f8aaa60" style="color: #1068bf;">23f4bc89</a></strong>
<div>
<span>by Ben Gamari</span>
<i>at 2021-03-24T12:35:23+01:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>CmmToAsm.Reg.Linear: oneShot-ify RegM

-------------------------
Metric Decrease:
    T783
    T4801
    T12707
    T13379
    T3294
    T4801
    T5321FD
-------------------------
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/60127035e2d7c649ac7fd312cded240d5f46e98d" style="color: #1068bf;">60127035</a></strong>
<div>
<span>by Andreas Klebinger</span>
<i>at 2021-03-24T16:10:07-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>STG AST - Make ConstructorNumber always a field.

It's used by all passes and already used as a regular field.
So I figured it would be both more consistent and performant
to make it a regular field for all constructors.

I also added a few bangs in the process.
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/5483b1a4f183026aab475da59d010d579c036592" style="color: #1068bf;">5483b1a4</a></strong>
<div>
<span>by Adam Sandberg Ericsson</span>
<i>at 2021-03-24T23:31:09-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>hadrian: remove alex and happy from build-tools

Hadrian doesn't actually depend on them as built-tools and normal usage where
you want to compile GHC will pick up the tools before you run hadrian via the
./configure script.

Not building an extra copy of alex and happy might also improve overall
build-times when building from scratch.
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/aa99f516431745c5b9261db56a5ef4a3b333ce8c" style="color: #1068bf;">aa99f516</a></strong>
<div>
<span>by Simon Peyton Jones</span>
<i>at 2021-03-24T23:31:44-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>Fix the binder-swap transformation in OccurAnal

The binder-swap transformation needs to be iterated, as shown
by #19581.  The fix is pretty simple, and is explained in
point (BS2) of Note [The binder-swap substitution].

Net effect:
  - sometimes, fewer simplifier iterations
  - sometimes, more case merging
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/0029df2bd52aa7f93e2254a369428e4261e5d3ae" style="color: #1068bf;">0029df2b</a></strong>
<div>
<span>by Hécate</span>
<i>at 2021-03-25T04:52:41-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>Add compiler linting to CI

This commit adds the `lint:compiler` Hadrian target to the CI runner.
It does also fixes hints in the compiler/ and libraries/base/ codebases.
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/1350a5cd730f1cbbe306b849def26bfcd119c103" style="color: #1068bf;">1350a5cd</a></strong>
<div>
<span>by GHC GitLab CI</span>
<i>at 2021-03-25T04:53:16-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>EPA : Remove ApiAnn from ParsedModule

All the comments are now captured in the AST, there is no need for a
side-channel structure for them.
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/c74bd3daa3468e495714647506cf30cf650d390d" style="color: #1068bf;">c74bd3da</a></strong>
<div>
<span>by GHC GitLab CI</span>
<i>at 2021-03-25T17:31:57+00:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>EPA: Tidy up some GHC.Parser.Annotation comments

This is a follow up from !2418 / #19579

[skip ci]
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/0d5d344d45c200a5e731e7d067598acd2a4f7050" style="color: #1068bf;">0d5d344d</a></strong>
<div>
<span>by Oleg Grenrus</span>
<i>at 2021-03-25T17:36:50-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>Implement -Wmissing-kind-signatures

Fixes #19564
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/d930fecb6d241c1eb13c30cf1126132766ff602e" style="color: #1068bf;">d930fecb</a></strong>
<div>
<span>by Sylvain Henry</span>
<i>at 2021-03-26T19:00:07-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>Refactor interface loading

In order to support several home-units and several independent
unit-databases, it's easier to explicitly pass UnitState, DynFlags, etc.
to interface loading functions.

This patch converts some functions using monads such as IfG or TcRnIf
with implicit access to HscEnv to use IO instead and to pass them
specific fields of HscEnv instead of an HscEnv value.
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/872a9444df4d38cd5dc0fbb7a249d89596e73ea2" style="color: #1068bf;">872a9444</a></strong>
<div>
<span>by Sylvain Henry</span>
<i>at 2021-03-26T19:00:07-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>Refactor NameCache

* Make NameCache the mutable one and replace NameCacheUpdater with it

* Remove NameCache related code duplicated into haddock

Bump haddock submodule
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/599efd90d54a01802b1285c0e357738e4d0bdb3a" style="color: #1068bf;">599efd90</a></strong>
<div>
<span>by Sylvain Henry</span>
<i>at 2021-03-26T19:00:07-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>Refactor FinderCache
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/532c6a541570e79891b3b68749cae9fcec42a939" style="color: #1068bf;">532c6a54</a></strong>
<div>
<span>by Sylvain Henry</span>
<i>at 2021-03-26T19:00:07-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>Remove UniqSupply from NameCache

As suggested by @alexbiehl, this patch replaces the always updated
UniqSupply in NameCache with a fixed Char and use it with `uniqFromMask`
to generate uniques.

This required some refactoring because getting a new unique from the
NameCache can't be done in pure code anymore, in particular not in an
atomic update function for `atomicModifyIORef`. So we use an MVar
instead to store the OrigNameCache field.

For some reason, T12545 increases (+1%) on i386 while it decreases on
other CI runners.

T9630 ghc/peak increases only with the dwarf build on CI (+16%).

Metric Decrease:
    T12425
    T12545
    T9198
    T12234

Metric Increase:
    T12545
    T9630

Update haddock submodule
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/89ee92065484e6bda25528ddf45228469e9d0189" style="color: #1068bf;">89ee9206</a></strong>
<div>
<span>by Sylvain Henry</span>
<i>at 2021-03-26T19:00:07-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>Use foldGet in getSymbolTable

Implement @alexbiehl suggestion of using a foldGet function to avoid the
creation of an intermediate list while reading the symbol table.

Do something similar for reading the Hie symbol table and the interface
dictionary.

Metric Decrease:
    T10421
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/a9c0b3ca1d4fdfe9938f6cb0c2f72faf8a5f8a64" style="color: #1068bf;">a9c0b3ca</a></strong>
<div>
<span>by Sylvain Henry</span>
<i>at 2021-03-26T19:00:07-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>Bump haddock submodule
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/628417b42c97f8a309bbc52d7262e56789e418ba" style="color: #1068bf;">628417b4</a></strong>
<div>
<span>by Sylvain Henry</span>
<i>at 2021-03-26T19:00:07-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>Fix lint issue
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/ef03fa6ffdbda7649c621789dd9f657229f0b01f" style="color: #1068bf;">ef03fa6f</a></strong>
<div>
<span>by GHC GitLab CI</span>
<i>at 2021-03-26T19:00:42-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>Bump Win32 to 2.13.0.0

Bumps Win32 submodule.
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/5741caeb0454c1bee9ca865ce6c3dfdd980ecf3e" style="color: #1068bf;">5741caeb</a></strong>
<div>
<span>by Sylvain Henry</span>
<i>at 2021-03-26T19:01:20-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>Only update config.sub when it already exists (#19574)
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/57d21e6a522f5522ba238675e74f510ab8e5d300" style="color: #1068bf;">57d21e6a</a></strong>
<div>
<span>by Sebastian Graf</span>
<i>at 2021-03-26T23:02:15-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>Rubbish literals for all representations (#18983)

This patch cleans up the complexity around WW's `mk_absent_let` by
broadening the scope of `LitRubbish`. Rubbish literals now store the
`PrimRep` they represent and are ultimately lowered in Cmm.
This in turn allows absent literals of `VecRep` or `VoidRep`. The latter
allows absent literals for unlifted coercions, as requested in #18983.

I took the liberty to rewrite and clean up `Note [Absent fillers]` and
`Note [Rubbish values]` to account for the new implementation and to
make them more orthogonal in their description.

I didn't add a new regression test, as `T18982` already contains the
test in the ticket and its test output changes as expected.

Fixes #18983.
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/c83e4d05646c6c7b0396c4b984c201faf5c62fda" style="color: #1068bf;">c83e4d05</a></strong>
<div>
<span>by Adam Sandberg Ericsson</span>
<i>at 2021-03-26T23:02:52-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>hadrian: build ghc-stageN wrapper when building the stageN:exe:ghc-bin target
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/59375de11f1aed05af87f2430196bde3c9a921b1" style="color: #1068bf;">59375de1</a></strong>
<div>
<span>by Viktor Dukhovni</span>
<i>at 2021-03-27T18:09:31-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>bump submodule nofib
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/f72d4ebbcc02be7921e03c529198605031224080" style="color: #1068bf;">f72d4ebb</a></strong>
<div>
<span>by Ben Gamari</span>
<i>at 2021-03-27T18:10:06-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>rts: Fix joinOSThread on Windows

Previously we were treating the thread ID as a HANDLE, but it is not. We
must first OpenThread.
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/f6960b188f4e66bb1c7b00d55a015fdd418614a7" style="color: #1068bf;">f6960b18</a></strong>
<div>
<span>by Simon Peyton Jones</span>
<i>at 2021-03-28T00:11:46-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>Make RULES more robust in GHC.Float

The RULES that use hand-written specialised code for overloaded class
methods like floor, ceiling, truncate etc were fragile to certain
transformations.  This patch makes them robust. See #19582.

It's all described in Note [Rules for overloaded class methods].

No test case because currently we don't do the transformation
(floating out over-saturated applications) that makes this patch
have an effect. But we may so so in future, and this patch makes
the RULES much more robust.
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/b02c8ef768df33ef4845da2f15583cf143a4d0e2" style="color: #1068bf;">b02c8ef7</a></strong>
<div>
<span>by Sebastian Graf</span>
<i>at 2021-03-28T00:12:21-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>Rename StrictSig to DmdSig (#19597)

In #19597, we also settled on the following renamings:

  * `idStrictness` -> `idDmdSig`,
    `strictnessInfo` -> `dmdSigInfo`,
    `HsStrictness` -> `HsDmdSig`
  * `idCprInfo` -> `idCprSig`,
    `cprInfo` -> `cprSigInfo`,
    `HsCpr` -> `HsCprSig`

Fixes #19597.
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/29d758631c0d9124485aafc89cddc4ec5a668653" style="color: #1068bf;">29d75863</a></strong>
<div>
<span>by Fendor</span>
<i>at 2021-03-28T17:26:37-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>Add UnitId to Target record

In the future, we want `HscEnv` to support multiple home units
at the same time. This means, that there will be 'Target's that do
not belong to the current 'HomeUnit'.

This is an API change without changing behaviour.

Update haddock submodule to incorporate API changes.
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/9594f6f64f790ea1f154de42d1de0fbdf67a38ba" style="color: #1068bf;">9594f6f6</a></strong>
<div>
<span>by Ben Gamari</span>
<i>at 2021-03-28T17:27:12-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>gitlab-ci: Bump ci-images

Upgrades bootstrap GHC to 8.10.4, hopefully avoiding #19600.
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/9c9e40e59214b1e358c85852218f3a67e712a748" style="color: #1068bf;">9c9e40e5</a></strong>
<div>
<span>by Oleg Grenrus</span>
<i>at 2021-03-28T17:27:49-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>Replace - with negate

It also failed to parse with HLint (I wonder how GHC itself handles it?)
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/c30af95189c5006ac5cd10839a8ea7e8098341d5" style="color: #1068bf;">c30af951</a></strong>
<div>
<span>by Alfredo Di Napoli</span>
<i>at 2021-03-29T07:58:00+02:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>Add `MessageClass`, rework `Severity` and add `DiagnosticReason`.

Other than that:

* Fix T16167,json,json2,T7478,T10637 tests to reflect the introduction of
  the `MessageClass` type

* Remove `makeIntoWarning`

* Remove `warningsToMessages`

* Refactor GHC.Tc.Errors

  1. Refactors GHC.Tc.Errors so that we use `DiagnosticReason` for "choices"
     (defer types errors, holes, etc);

  2. We get rid of `reportWarning` and `reportError` in favour of a general
     `reportDiagnostic`.

* Introduce `DiagnosticReason`, `Severity` is an enum: This big commit makes
  `Severity` a simple enumeration, and introduces the concept of `DiagnosticReason`,
  which classifies the /reason/ why we are emitting a particular diagnostic.
  It also adds a monomorphic `DiagnosticMessage` type which is used for
  generic messages.

* The `Severity` is computed (for now) from the reason, statically.
  Later improvement will add a `diagReasonSeverity` function to compute
  the `Severity` taking `DynFlags` into account.

* Rename `logWarnings` into `logDiagnostics`

* Add note and expand description of the `mkHoleError` function
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/4421fb34b3a70db1323833337c94ac4364824124" style="color: #1068bf;">4421fb34</a></strong>
<div>
<span>by Moritz Angermann</span>
<i>at 2021-03-29T17:25:48-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>[macho] improved linker with proper plt support

This is a pre-requisite for making aarch64-darwin work.
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/e754ff7f178a629a2261cba77a29d9510391aebd" style="color: #1068bf;">e754ff7f</a></strong>
<div>
<span>by Moritz Angermann</span>
<i>at 2021-03-29T17:25:49-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>Allocate Adjustors and mark them readable in two steps

This drops allocateExec for darwin, and replaces it with
a alloc, write, mark executable strategy instead. This prevents
us from trying to allocate an executable range and then write to
it, which X^W will prohibit on darwin.

This will *only* work if we can use mmap.
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/026a53e0ae5d9bd436e59ed681ab51c9fc3563c0" style="color: #1068bf;">026a53e0</a></strong>
<div>
<span>by Moritz Angermann</span>
<i>at 2021-03-29T17:25:49-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>[linker] Additional FALLTHROUGH decorations.
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/dc6fa61c7e8ca54e4b9feb6d2db59c4b365de09d" style="color: #1068bf;">dc6fa61c</a></strong>
<div>
<span>by Moritz Angermann</span>
<i>at 2021-03-29T17:25:49-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>[linker] SymbolExtras are only used on PPC and X86
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/710ef9d253c6f35eed4139f585230428fa042194" style="color: #1068bf;">710ef9d2</a></strong>
<div>
<span>by Moritz Angermann</span>
<i>at 2021-03-29T17:25:49-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>[linker] align prototype with implementation signature.
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/e72a2f770853c96f530423f0e3738aef193543b5" style="color: #1068bf;">e72a2f77</a></strong>
<div>
<span>by Moritz Angermann</span>
<i>at 2021-03-29T17:25:49-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>[linker/aarch64-elf] support section symbols for GOT relocation
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/38504b6f8e08db8526621ec8f11441de6d91f9ff" style="color: #1068bf;">38504b6f</a></strong>
<div>
<span>by Moritz Angermann</span>
<i>at 2021-03-29T17:25:49-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>[testsuite] Fix SubsectionsViaSymbols test
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/93b8db6b6f5bc43928baea52692433e31498de20" style="color: #1068bf;">93b8db6b</a></strong>
<div>
<span>by Moritz Angermann</span>
<i>at 2021-03-29T17:25:49-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>[linker] no munmap if either agument is invalid.
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/095e1624df02f303d4c9d1d50cb5327bdafd3b25" style="color: #1068bf;">095e1624</a></strong>
<div>
<span>by Moritz Angermann</span>
<i>at 2021-03-29T17:25:49-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>[rts] cast return value to struct.
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/09ea36cffad34ac5cc2548863cebcfcc8e405a20" style="color: #1068bf;">09ea36cf</a></strong>
<div>
<span>by Moritz Angermann</span>
<i>at 2021-03-29T17:25:49-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>[aarch64-darwin] be very careful of warnings.

So we did *not* have the stgCallocBytes prototype, and subsequently
the C compiler defaulted to `int` as a return value. Thus generating
sxtw instructions for the return value of stgCalloBytes to produce
the expected void *.
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/4bbd1445e193bc314073e83820caa393567fcd25" style="color: #1068bf;">4bbd1445</a></strong>
<div>
<span>by Moritz Angermann</span>
<i>at 2021-03-29T17:25:49-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>[testlib] ignore strip warnings
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/df08d54841bfee99fe5f9bed9bbab5e4bd512a70" style="color: #1068bf;">df08d548</a></strong>
<div>
<span>by Moritz Angermann</span>
<i>at 2021-03-29T17:25:49-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>[armv7] arm32 needs symbols!
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/f3c23939cda5d4f58655704823353dc15e03fbc0" style="color: #1068bf;">f3c23939</a></strong>
<div>
<span>by Moritz Angermann</span>
<i>at 2021-03-29T17:25:49-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>[testsuite/aarch64] disable T18623
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/142950d9d17f482c26f12767b4e23e3fb2d204cd" style="color: #1068bf;">142950d9</a></strong>
<div>
<span>by Moritz Angermann</span>
<i>at 2021-03-29T17:25:49-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>[testsuite/aarch64-darwin] disable T12674
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/6604409594f71d2ed5963bb3897bc4ee772cc5c0" style="color: #1068bf;">66044095</a></strong>
<div>
<span>by Moritz Angermann</span>
<i>at 2021-03-29T17:25:49-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>[armv7] PIC by default + [aarch64-linux] T11276 metric increase

Metric Increase:
    T11276
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/afdacc554c49e2b78a15749b16ef06fc7c547596" style="color: #1068bf;">afdacc55</a></strong>
<div>
<span>by Takenobu Tani</span>
<i>at 2021-03-30T20:41:46+09:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>users-guide: Correct markdown for ghc-9.2

This patch corrects some markdown.

[skip ci]
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/470839c5feb65cf745b5fe624aece5884c8e53d2" style="color: #1068bf;">470839c5</a></strong>
<div>
<span>by Oleg Grenrus</span>
<i>at 2021-03-30T17:39:39-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>Additionally export asum from Control.Applicative

Fixes #19575
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/128fd85cd266550b0cf19454cd218a85585ee18e" style="color: #1068bf;">128fd85c</a></strong>
<div>
<span>by Simon Jakobi</span>
<i>at 2021-03-30T17:40:14-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>Add regression test for #5298

Closes #5298.
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/86e7aa01280543ec2b491fa112a86f7dbcf2a347" style="color: #1068bf;">86e7aa01</a></strong>
<div>
<span>by Ben Gamari</span>
<i>at 2021-03-30T19:14:19-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>gitlab-ci: Trigger head.hackage jobs via pipeline ID

As noted in ghc/head.hackage!152, the previous plan of using
the commit didn't work when the triggering pipeline had not yet
successfully finished.</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/59e82fb3474d06d141941bcc8f063493985cf8f3" style="color: #1068bf;">59e82fb3</a></strong>
<div>
<span>by Oleg Grenrus</span>
<i>at 2021-03-31T11:12:17-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>import Data.List with explicit import list
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/44774dc591206291d06e6181f599151631062332" style="color: #1068bf;">44774dc5</a></strong>
<div>
<span>by Oleg Grenrus</span>
<i>at 2021-03-31T11:12:17-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>Add -Wcompat to hadrian

Update submodules haskeline and hpc
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/dbadd672ba7da67533c34d8594ac7f91dde0f415" style="color: #1068bf;">dbadd672</a></strong>
<div>
<span>by Simon Peyton Jones</span>
<i>at 2021-03-31T11:12:52-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>The result kind of a signature can't mention quantified vars

This patch fixes a small but egregious bug, which allowed
a type signature like
    f :: forall a. blah
not to fail if (blah :: a).  Acutally this only showed
up as a ASSERT error (#19495).

The fix is very short, but took quite a bit of head scratching

Hence the long Note [Escaping kind in type signatures]

While I was in town, I also added a short-cut for the
common case of having no quantifiers to tcImplicitTKBndrsX.

Metric Decrease:
    T9198

Metric Increase:
    T9198
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/2fcebb72d97edd1e630002bef89bc6982529e36f" style="color: #1068bf;">2fcebb72</a></strong>
<div>
<span>by Alan Zimmerman</span>
<i>at 2021-03-31T11:13:28-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>EPA : Rename AddApiAnn to AddEpAnn

As port of the process of migrating naming from API Annotations to
exact print annotations (EPA)

Follow-up from !2418, see #19579
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/0fe5175ac537c0ce2afe969ec82a0d1c73a4ae38" style="color: #1068bf;">0fe5175a</a></strong>
<div>
<span>by Alan Zimmerman</span>
<i>at 2021-03-31T11:13:28-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>EPA : Rename ApiAnn to EPAnn

Follow-up from !2418, see #19579

Updates haddock submodule
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/d03005e642710d0f1f78757292e0fe65287e5f0a" style="color: #1068bf;">d03005e6</a></strong>
<div>
<span>by Alan Zimmerman</span>
<i>at 2021-03-31T11:13:28-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>EPA : rename 'api annotations' to 'exact print annotations'

In comments, and notes.

Follow-up from !2418, see #19579
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/49bc1e9ec854e571dfa78ac43565073586579f31" style="color: #1068bf;">49bc1e9e</a></strong>
<div>
<span>by Alan Zimmerman</span>
<i>at 2021-03-31T11:13:28-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>EPA : rename AnnAnchor to EpaAnchor

Follow-up from !2418, see #19579
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/798d8f80e1562891e4bbd8e4d8f42926cecf32b3" style="color: #1068bf;">798d8f80</a></strong>
<div>
<span>by Alan Zimmerman</span>
<i>at 2021-03-31T11:13:28-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>EPA : Rename AnnComment to EpaComment

Follow-up from !2418, see #19579
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/317295dacacc2f15a935904e146dfb01935d0d09" style="color: #1068bf;">317295da</a></strong>
<div>
<span>by Simon Peyton Jones</span>
<i>at 2021-03-31T11:14:04-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>Avoid fundep-caused loop in the typechecker

Ticket #19415 showed a nasty typechecker loop, which can happen with
fundeps that do not satisfy the coverage condition.

This patch fixes the problem.  It's described in GHC.Tc.Solver.Interact
   Note [Fundeps with instances]

It's not a perfect solution, as the Note explains, but it's better
than the status quo.
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/aaf8e29372ffb9644b8321cd16e39f2228892986" style="color: #1068bf;">aaf8e293</a></strong>
<div>
<span>by Ryan Scott</span>
<i>at 2021-03-31T11:14:39-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>Add regression tests for #17772 and #18308

Resolves #17772. Addresses one part of #18308.
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/efe5fdab01012fae9436f5f8a9c67170ff185243" style="color: #1068bf;">efe5fdab</a></strong>
<div>
<span>by Ben Gamari</span>
<i>at 2021-03-31T11:15:14-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>gitlab-ci: Extend expiration time of simple perf job artifacts
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/5192183f5f4df4e3c0b00346e633c5270ed16283" style="color: #1068bf;">5192183f</a></strong>
<div>
<span>by Oleg Grenrus</span>
<i>at 2021-04-01T00:39:28-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>import Data.List with explicit import list
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/bddecda1a4c96da21e3f5211743ce5e4c78793a2" style="color: #1068bf;">bddecda1</a></strong>
<div>
<span>by Oleg Grenrus</span>
<i>at 2021-04-01T00:39:28-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>Data.List specialization to []

- Remove GHC.OldList
- Remove Data.OldList
- compat-unqualified-imports is no-op
- update haddock submodule
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/751b21448c8894f603d1a3848ef5f51e7e80b3fe" style="color: #1068bf;">751b2144</a></strong>
<div>
<span>by Sylvain Henry</span>
<i>at 2021-04-01T00:40:07-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>Encapsulate the EPS IORef in a newtype
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/29326979eeb887e97f18bdc7852bb33a5b437362" style="color: #1068bf;">29326979</a></strong>
<div>
<span>by Sylvain Henry</span>
<i>at 2021-04-01T00:40:07-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>Properly initialise UnitEnv
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/0219297c874659169507fa67c469d65bb9fabb1b" style="color: #1068bf;">0219297c</a></strong>
<div>
<span>by Sylvain Henry</span>
<i>at 2021-04-01T00:40:07-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>Move unit DBs in UnitEnv

Also make the HomeUnit optional to keep the field strict and prepare for
UnitEnvs without a HomeUnit (e.g. in Plugins envs, cf #14335).
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/7acfb61777caa5f44f5c34c79ef983c9b303191f" style="color: #1068bf;">7acfb617</a></strong>
<div>
<span>by Sylvain Henry</span>
<i>at 2021-04-01T00:40:07-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>Move HPT in UnitEnv
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/85d7056a53fc4c985753864107152f02095a5d6d" style="color: #1068bf;">85d7056a</a></strong>
<div>
<span>by Sylvain Henry</span>
<i>at 2021-04-01T00:40:07-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>Move the EPS into UnitEnv
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/706fad606db25af66ba62dd7405128b508446f59" style="color: #1068bf;">706fad60</a></strong>
<div>
<span>by Sylvain Henry</span>
<i>at 2021-04-01T00:40:07-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>Fix tests
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/b2f51099ca4e12fc282f28a68ef32a2f091f6955" style="color: #1068bf;">b2f51099</a></strong>
<div>
<span>by Ben Gamari</span>
<i>at 2021-04-01T08:21:30-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>ghc-bignum: Add missing source files to cabal file
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/9b05b601f240ff473c2dbb1dfd0db256247b7fa6" style="color: #1068bf;">9b05b601</a></strong>
<div>
<span>by Ben Gamari</span>
<i>at 2021-04-01T08:21:30-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>ghc-boot: Use cabal-version: 3.0
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/75e594d0412acc730fa78a93bef98f9090dd5924" style="color: #1068bf;">75e594d0</a></strong>
<div>
<span>by Ben Gamari</span>
<i>at 2021-04-01T08:21:30-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>libiserv: Add description
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/2266bdaedebbe046740da9649815ec94f7c756cb" style="color: #1068bf;">2266bdae</a></strong>
<div>
<span>by Ben Gamari</span>
<i>at 2021-04-01T08:21:30-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>configure: Update comment describing versioning policy

As noted in my comment on #19058, this comment was previously a bit
misleading in the case of stable branches.
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/65c50d8d289f7d3bb6601b238f094c0da92a1d22" style="color: #1068bf;">65c50d8d</a></strong>
<div>
<span>by Ben Gamari</span>
<i>at 2021-04-01T08:21:30-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>gitlab-ci: Drop Debian 8 job
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/d44e42a26e54857cc6174f2bb7dc86cc41fcd249" style="color: #1068bf;">d44e42a2</a></strong>
<div>
<span>by Vladislav Zavialov</span>
<i>at 2021-04-01T08:22:06-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>Add missing axiom exports for CharToNat/NatToChar

When the CharToNat and NatToChar type families were added,
the corresponding axioms were not exported.

This led to a failure much like #14934
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/15b6c9f920d8f60ebfef4580ec7e8f063799a83a" style="color: #1068bf;">15b6c9f9</a></strong>
<div>
<span>by Alfredo Di Napoli</span>
<i>at 2021-04-01T16:13:23-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>Compute Severity of diagnostics at birth

This commit further expand on the design for #18516 by getting rid of
the `defaultReasonSeverity` in favour of a function called
`diagReasonSeverity` which correctly takes the `DynFlags` as input. The
idea is to compute the `Severity` and the `DiagnosticReason` of each
message "at birth", without doing any later re-classifications, which
are potentially error prone, as the `DynFlags` might evolve during the
course of the program.

In preparation for a proper refactoring, now `pprWarning` from the
Parser.Ppr module has been renamed to `mkParserWarn`, which now takes a
`DynFlags` as input.

We also get rid of the reclassification we were performing inside `printOrThrowWarnings`.

Last but not least, this commit removes the need for reclassify inside GHC.Tc.Errors,
and also simplifies the implementation of `maybeReportError`.

Update Haddock submodule
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/84b76f6086d7a294986a50ad0750482582a76772" style="color: #1068bf;">84b76f60</a></strong>
<div>
<span>by Viktor Dukhovni</span>
<i>at 2021-04-01T16:13:59-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>Chiral foldable caveats
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/07393306169d736a2e5b2f1f1fbc0fdcc2c1a235" style="color: #1068bf;">07393306</a></strong>
<div>
<span>by Viktor Dukhovni</span>
<i>at 2021-04-01T16:13:59-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>Address review feedback on chirality

Also added nested foldr example for `concat`.
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/8ef6eaf78ee04582ec4e1b4814b215a8a66cb9fa" style="color: #1068bf;">8ef6eaf7</a></strong>
<div>
<span>by Ben Gamari</span>
<i>at 2021-04-02T05:15:23-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>sdist: Fix packaging of Windows tarballs

These now live in the ghc-tarballs/mingw-w64 directory.

Fixes #19316.
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/82d8847ea7065d31efeedb800b0b2a2e0e5c416d" style="color: #1068bf;">82d8847e</a></strong>
<div>
<span>by Ben Gamari</span>
<i>at 2021-04-02T05:15:23-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>gitlab-ci: CI wibbles

Ensure that deb10-dwarf artifacts are preserved.
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/ee8775717af298a6e2e06635f19e5ba9e7ef4836" style="color: #1068bf;">ee877571</a></strong>
<div>
<span>by Ben Gamari</span>
<i>at 2021-04-02T05:15:23-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>gitlab-ci: Ignore performance metrics failures in release jobs

We don't want these failing merely due to performance metrics
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/ee55d57e90ea497d389a5a47504174b213ba0598" style="color: #1068bf;">ee55d57e</a></strong>
<div>
<span>by Matthew Pickering</span>
<i>at 2021-04-02T05:15:59-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>Fix copy+pasto in Sanity.c</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/78ca4a27fd960033dcb16f65f15a0007b1062cc0" style="color: #1068bf;">78ca4a27</a></strong>
<div>
<span>by Ben Gamari</span>
<i>at 2021-04-02T05:16:35-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>testsuite: Make passFail a boolean
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/a915466205e800927aaf99b999b73fc4414f34f1" style="color: #1068bf;">a9154662</a></strong>
<div>
<span>by Ben Gamari</span>
<i>at 2021-04-02T05:16:35-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>testsuite: Check test stats only after test correctness

Ticket #19576 noted that a test that failed in correctness (e.g. due to
stderr mismatch) *and* failed due to a metrics change would report
misleading stats. This was due to the testsuite driver *first* checking
stats, before checking for correctness. Fix this.

Closes #19576.
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/c265d19f7cf2d567b07b7d33ad0240492f349bf8" style="color: #1068bf;">c265d19f</a></strong>
<div>
<span>by Ben Gamari</span>
<i>at 2021-04-02T05:17:11-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>testsuite: Add test for #7275
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/ce706faeef3964116c6e1dd0e6ae2f2e77fde57d" style="color: #1068bf;">ce706fae</a></strong>
<div>
<span>by Sebastian Graf</span>
<i>at 2021-04-02T05:17:47-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>Pmc: Add regression test for #19622

It appears that the issue has already been fixed. Judging by the use of
a pattern synonym with a provided constraint, my bet is on 1793ca9d.

Fixes #19622.
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/918d5021ad74a6b7e5e027df2f7d7605d833b486" style="color: #1068bf;">918d5021</a></strong>
<div>
<span>by Ben Gamari</span>
<i>at 2021-04-05T20:37:28-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>configure: Fix parsing of ARM triples

To support proper parsing of arm64 targets, we needed to adjust
the GHC_LLVM_TARGET function to allow parsing arm64-apple-darwin
into aarch64. This however discared the proper os detection.

To rectify this, we'll pull the os detection into separate block.

Fixes #19173.
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/9c9adbd0ffe6ecc37d3a565811d8e79f24383943" style="color: #1068bf;">9c9adbd0</a></strong>
<div>
<span>by Oleg Grenrus</span>
<i>at 2021-04-05T20:38:07-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>Implement proposal 403: Lexer cleanup

This allows Other Numbers to be used in identifiers, and also documents
other, already existing lexer divergence from Haskell Report
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/89acbf356b1e1c09cb1cd123f56ab5f3ad6d0634" style="color: #1068bf;">89acbf35</a></strong>
<div>
<span>by Matthew Pickering</span>
<i>at 2021-04-05T20:38:42-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>Add special case to stripStgTicksTop for []

In the common case where the list of ticks is empty, building a thunk
just applies 'reverse' to '[]' which is quite wasteful.
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/77772bb122410ef58ff006a1d18c6f2212216fda" style="color: #1068bf;">77772bb1</a></strong>
<div>
<span>by Harry Garrood harry@garrood.me</span>
<i>at 2021-04-05T20:39:19-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>Add type signature for TargetContents.go

These changes made it slightly easier for me to work out what was going
on in this test. I've also fixed a typo in the comments.
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/495281215ae0fdcb296b2b30c1efd3a683006f42" style="color: #1068bf;">49528121</a></strong>
<div>
<span>by Alfredo Di Napoli</span>
<i>at 2021-04-05T20:39:54-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>Introduce SevIgnore Severity to suppress warnings

This commit introduces a new `Severity` type constructor called
`SevIgnore`, which can be used to classify diagnostic messages which are
not meant to be displayed to the user, for example suppressed warnings.

This extra constructor allows us to get rid of a bunch of redundant
checks when emitting diagnostics, typically in the form of the pattern:

```
when (optM Opt_XXX) $
  addDiagnosticTc (WarningWithFlag Opt_XXX) ...
```

Fair warning! Not all checks should be omitted/skipped, as evaluating some data
structures used to produce a diagnostic might still be expensive (e.g.
zonking, etc). Therefore, a case-by-case analysis must be conducted when
deciding if a check can be removed or not.

Last but not least, we remove the unnecessary `CmdLine.WarnReason` type, which is now
redundant with `DiagnosticReason`.
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/3483c3de2aa9c1a48d2e8a9271eadc5e3f4da70d" style="color: #1068bf;">3483c3de</a></strong>
<div>
<span>by Alfredo Di Napoli</span>
<i>at 2021-04-05T20:39:54-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>Correct warning for deprecated and unrecognised flags

Fixes #19616.

This commit changes the `GHC.Driver.Errors.handleFlagWarnings` function
to rely on the newly introduced `DiagnosticReason`. This allows us to
correctly pretty-print the flags which triggered some warnings and in
turn remove the cruft around this function (like the extra filtering
and the `shouldPrintWarning` function.
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/54247fb145dd8f662c6d273bef6f8ba9db24ab87" style="color: #1068bf;">54247fb1</a></strong>
<div>
<span>by Joachim Breitner</span>
<i>at 2021-04-05T20:40:30-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>./configure: Indicate that GHC=… should be a full path

and not just the name on the binary on the `$PATH`.
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/5db116e99375bdb4c750408a084522a824f83029" style="color: #1068bf;">5db116e9</a></strong>
<div>
<span>by Joachim Breitner</span>
<i>at 2021-04-05T20:40:30-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>Apply 1 suggestion(s) to 1 file(s)</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/2783d4981e4079f87a9d06036ea393949a5580b9" style="color: #1068bf;">2783d498</a></strong>
<div>
<span>by Luite Stegeman</span>
<i>at 2021-04-05T20:41:06-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>fix sub-word literals in GHCi
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/33b886453d8dbf030998d77aa970c90a27fde19f" style="color: #1068bf;">33b88645</a></strong>
<div>
<span>by Andreas Klebinger</span>
<i>at 2021-04-05T20:41:41-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>Add regression test for T19474.

In version 0.12.2.0 of vector when used with GHC-9.0 we
rebox values from storeable mutable vectors.

This should catch such a change in the future.
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/939fa61c0036b8181772743e5bb157b45551c88b" style="color: #1068bf;">939fa61c</a></strong>
<div>
<span>by Łukasz Gołębiewski</span>
<i>at 2021-04-05T20:42:17-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>Fixes Monad's associativity docs

It is incorrectly displayed in hackage as:
`m1 <*> m2 = m1 >>= (x1 -> m2 >>= (x2 -> return (x1 x2)))`
which isn't correct Haskell
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/10782edf760d60987a3202d5dad0c5ea44aca8fc" style="color: #1068bf;">10782edf</a></strong>
<div>
<span>by Simon Jakobi</span>
<i>at 2021-04-05T20:42:53-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>Mark p6 and T3333 as fragile

See #17018.
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/048af266ff63f08d4ff2cb4345b7805162442f29" style="color: #1068bf;">048af266</a></strong>
<div>
<span>by Andreas Klebinger</span>
<i>at 2021-04-05T20:43:27-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>One-Shotify GHC.Utils.Monad.State (#18202)
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/836542409f8dcb6ec23bda485d01880d24bd3d93" style="color: #1068bf;">83654240</a></strong>
<div>
<span>by Matthew Pickering</span>
<i>at 2021-04-05T20:44:02-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>Add (expect_broken) test for #11545
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/53cf2c047eb2c9251608d85dd0485b645d118ea9" style="color: #1068bf;">53cf2c04</a></strong>
<div>
<span>by Ben Gamari</span>
<i>at 2021-04-05T20:44:37-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>hadrian: Refactor hlint target

Not only does this eliminate some code duplication but we also
add a maximum core count to HLint's command-line, hopefully avoiding
issue #19600.
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/eac9d3764a35b6c219d74d750bad9d8e790cff77" style="color: #1068bf;">eac9d376</a></strong>
<div>
<span>by Ben Gamari</span>
<i>at 2021-04-05T20:45:12-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>hadrian: Fix build-stack-nix

As noted by #19589, `stack` is not stateful and therefore must be passed
`--nix` on every invocation. Do so.

Fixes #19589.
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/bfe8ef8e577a41ce9f29cb5f7879368f5e4b5897" style="color: #1068bf;">bfe8ef8e</a></strong>
<div>
<span>by Ben Gamari</span>
<i>at 2021-04-05T20:45:46-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>rts: Fix usage of pthread_setname_np

Previously we used this non-portable function unconditionally, breaking
FreeBSD.

Fixes #19637.
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/403bf88c568199d8d2a272a041faba96a47a5276" style="color: #1068bf;">403bf88c</a></strong>
<div>
<span>by Ben Gamari</span>
<i>at 2021-04-05T20:46:21-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>Revert "[ci/arm/darwin/testsuite] Forwards ports from GHC-8.10"

This reverts commit 0cbdba2768d84a0f6832ae5cf9ea1e98efd739da.
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/54880c131db75d7daad1d7acb3cb0f25371a9128" style="color: #1068bf;">54880c13</a></strong>
<div>
<span>by Sylvain Henry</span>
<i>at 2021-04-05T20:46:59-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>Bignum: fix invalid hs-boot declaration (#19638)
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/247684adc83f025d2ee329f4c98ae1f8829060b4" style="color: #1068bf;">247684ad</a></strong>
<div>
<span>by Sylvain Henry</span>
<i>at 2021-04-05T20:47:37-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>Bignum: remove unused extra files
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/2e3a6fba751effa2340984cb7285491306d09bd4" style="color: #1068bf;">2e3a6fba</a></strong>
<div>
<span>by Adam Sandberg Ericsson</span>
<i>at 2021-04-07T12:37:11-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>hadrian: don't hardcode -fuse-ld=gold in hsc2hs wrapper #19514
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/b06e457dbda93955522e298c698b3ccce9431720" style="color: #1068bf;">b06e457d</a></strong>
<div>
<span>by Simon Peyton Jones</span>
<i>at 2021-04-07T12:37:47-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>Make specialisation a bit more aggressive

The patch

    commit c43c981705ec33da92a9ce91eb90f2ecf00be9fe
    Author: Simon Peyton Jones <simonpj@microsoft.com>
    Date:   Fri Oct 23 16:15:51 2009 +0000
    Fix Trac #3591: very tricky specialiser bug

fixed a nasty specialisation bug /for DFuns/.  Eight years
later, this patch

    commit 2b74bd9d8b4c6b20f3e8d9ada12e7db645cc3c19
    Author: Simon Peyton Jones <simonpj@microsoft.com>
    Date:   Wed Jun 7 12:03:51 2017 +0100
    Stop the specialiser generating loopy code

extended it to work for /imported/ DFuns.  But in the process
we lost the fact that it was needed only for DFuns! As a result
we started silently losing useful specialisation for non-DFuns.
But there was no regression test to spot the lossage.

Then, nearly four years later, Andreas filed #19599, which showed
the lossage in high relief.  This patch restores the DFun test,
and adds Note [Avoiding loops (non-DFuns)] to explain why.

This is undoubtedly a very tricky corner of the specialiser,
and one where I would love to have a more solid argument, even a
paper!  But meanwhile I think this fixes the lost specialisations
without introducing any new loops.

I have two regression tests, T19599 and T19599a, so I hope we'll
know if we lose them again in the future.

Vanishingly small effect on nofib.

A couple of compile-time benchmarks improve
  T9872a(normal) ghc/alloc  1660559328.0  1643827784.0  -1.0% GOOD
  T9872c(normal) ghc/alloc  1691359152.0  1672879384.0  -1.1% GOOD
Many others wiggled around a bit.

Metric Decrease:
    T9872a
    T9872c
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/546f8b1478e43f18b25236a20c6c30fa986a046a" style="color: #1068bf;">546f8b14</a></strong>
<div>
<span>by Matthew Pickering</span>
<i>at 2021-04-07T12:38:22-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>hadrian: Don't try to build iserv-prof if we don't have profiled libraries

Workaround for #19624
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/d014ab0db0c167ab5a0f9cb15280aee6fd8f3621" style="color: #1068bf;">d014ab0d</a></strong>
<div>
<span>by Sylvain Henry</span>
<i>at 2021-04-07T12:39:00-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>Remove dynamic-by-default (#16782)

Dynamic-by-default was a mechanism to automatically select the -dynamic
way for some targets.

It was implemented in a convoluted way: it was defined as a flavour
option, hence it couldn't be passed as a global settings (which are
produced by `configure` before considering flavours), so a build system
rule was used to pass -DDYNAMIC_BY_DEFAULT to the C compiler so that
deriveConstants could infer it.

* Make build system has it disabled for 8 years (951e28c0625ece7e0db6ac9d4a1e61e2737b10de)
* It has never been implemented in Hadrian
* Last time someone tried to enable it 1 year ago it didn't work (!2436)
* Having this as a global constant impedes making GHC multi-target (see !5427)

This commit fully removes support for dynamic-by-default. If someone
wants to reimplement something like this, it would probably need to move
the logic in the compiler.

(Doing this would probably need some refactoring of the way the compiler
handles DynFlags: DynFlags are used to store and to pass enabled ways to
many parts of the compiler. It can be set by command-line flags, GHC
API, global settings. In multi-target GHC, we will use DynFlags to load
the target platform and its constants: but at this point with the
current DynFlags implementation we can't easily update the existing
DynFlags with target-specific options such as dynamic-by-default without
overriding ways previously set by the user.)
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/88d8a0ed387cef8ee45aa3c1b3bc22d5d9d5e51a" style="color: #1068bf;">88d8a0ed</a></strong>
<div>
<span>by James Foster</span>
<i>at 2021-04-07T14:17:31-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>Change foldl' to inline when partially applied (#19534)

And though partially applied foldl' is now again inlined, #4301 has not
resurfaced, and appears to be resolved.
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/898afe90c0a11a0c2b243efb75f2d83d17893b30" style="color: #1068bf;">898afe90</a></strong>
<div>
<span>by Matthew Pickering</span>
<i>at 2021-04-08T08:07:10-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>Stop retaining SimplEnvs in unforced Unfoldings

Related to #15455
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/8417e8667ccac3a58192c5864f9eaf234a4913b5" style="color: #1068bf;">8417e866</a></strong>
<div>
<span>by Matthew Pickering</span>
<i>at 2021-04-08T08:07:10-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>Don't retain reference to whole TcLclEnv in SkolemTV
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/352a463b7f82b504273cb274b3e0737112647c33" style="color: #1068bf;">352a463b</a></strong>
<div>
<span>by Matthew Pickering</span>
<i>at 2021-04-08T08:07:10-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>Use DmdEnv rather than VarEnv DmdEnv
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/adc52bc84e52038653694c7cf99d7c8a6eff730c" style="color: #1068bf;">adc52bc8</a></strong>
<div>
<span>by Matthew Pickering</span>
<i>at 2021-04-08T08:07:10-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>Make updTcRef force the result

This can lead to a classic thunk build-up in a TcRef

Fixes #19596
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/eaa1461a70c5ce45e496c459bfcdcdef1b4313bb" style="color: #1068bf;">eaa1461a</a></strong>
<div>
<span>by Matthew Pickering</span>
<i>at 2021-04-08T08:07:11-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>Make sure mergeWithKey is inlined and applied strictly

In the particular case of `DmdEnv`, not applying this function strictly
meant 500MB of thunks were accumulated before the values were forced at
the end of demand analysis.
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/629a5e98b72e1643ef8eeabb700a7046a27a783a" style="color: #1068bf;">629a5e98</a></strong>
<div>
<span>by Matthew Pickering</span>
<i>at 2021-04-08T08:07:11-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>Some extra strictness in Demand.hs

It seems that these places were supposed to be forced anyway but the
forcing has no effect because the result was immediately placed in a
lazy box.
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/42d88003b0815f4e975fd80e34422000c3100c6c" style="color: #1068bf;">42d88003</a></strong>
<div>
<span>by Matthew Pickering</span>
<i>at 2021-04-08T08:07:11-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>Make sure result of demand analysis is forced promptly

This avoids a big spike in memory usage during demand analysis.

Part of fixing #15455

-------------------------
Metric Decrease:
    T18698a
    T18698b
    T9233
    T9675
    T9961
-------------------------
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/e0d861d4f9848428b15435e1b8718090179073af" style="color: #1068bf;">e0d861d4</a></strong>
<div>
<span>by Matthew Pickering</span>
<i>at 2021-04-08T08:07:11-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>T11545 now also passes due to modifications in demand analysis

Fixes #11545
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/a3cc9a295e92c05af208623765e04e2d50925e37" style="color: #1068bf;">a3cc9a29</a></strong>
<div>
<span>by Ryan Scott</span>
<i>at 2021-04-08T08:07:45-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>Fix #19649 by using filterInScopeM in rnFamEqn

Previously, associated type family instances would incorrectly claim to
implicitly quantify over type variables bound by the instance head in the
`HsOuterImplicit`s that `rnFamEqn` returned. This is fixed by using
`filterInScopeM` to filter out any type variables that the instance head
binds.

Fixes #19649.
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/6e8e2e0887f12725977feb2a0535f7679e86700f" style="color: #1068bf;">6e8e2e08</a></strong>
<div>
<span>by Alfredo Di Napoli</span>
<i>at 2021-04-08T08:08:20-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>Move Iface.Load errors into Iface.Errors module

This commit moves the error-related functions in `GHC.Iface.Load` into
a brand new module called `GHC.Iface.Errors`. This will avoid boot files
and circular dependencies in the context of #18516, in the
pretty-printing modules.
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/8a0997015df80fc9ae729dbbdb05c712e41929ca" style="color: #1068bf;">8a099701</a></strong>
<div>
<span>by Ben Gamari</span>
<i>at 2021-04-09T03:30:26-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>CoreTidy: enhance strictness note
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/0bdb867e37bcfe4ae2c5c4f5f7e54b41acfe6116" style="color: #1068bf;">0bdb867e</a></strong>
<div>
<span>by Sylvain Henry</span>
<i>at 2021-04-09T03:30:26-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>CoreTidy: handle special cases to preserve more sharing.

Metric Decrease:
    T16577
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/c02ac1bbd2d882d58307fa3009aa2d9665399703" style="color: #1068bf;">c02ac1bb</a></strong>
<div>
<span>by Andreas Klebinger</span>
<i>at 2021-04-09T03:31:02-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>Re-export GHC.Bits from GHC.Prelude with custom shift implementation.

This allows us to use the unsafe shifts in non-debug builds for performance.
For older versions of base we instead export Data.Bits

See also #19618
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/35407d671017e29f12bcdd4fe415ba2fb0ea8b3b" style="color: #1068bf;">35407d67</a></strong>
<div>
<span>by Peter Trommler</span>
<i>at 2021-04-09T03:31:37-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>testsuite: Skip T18623 on powerpc64le

In commit f3c23939 T18623 is disabled for aarch64.
The limit seems to be too low for powerpc64le, too. This could be
because tables next to code is not supported and our code generator
produces larger code on PowerPC.
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/d8f04425d5b38ced23c86ba465157f2a5cd34fff" style="color: #1068bf;">d8f04425</a></strong>
<div>
<span>by Peter Trommler</span>
<i>at 2021-04-09T03:31:37-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>Fix typo
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/fd5ca9c3eb89aee9ef86b831f347410d8c3de912" style="color: #1068bf;">fd5ca9c3</a></strong>
<div>
<span>by Peter Trommler</span>
<i>at 2021-04-09T03:31:37-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>testsuite/ppc64le: Mark UnboxedTuples test broken
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/d4a71b0cbfe1307b022ac3746c9a3a79bc5b90b8" style="color: #1068bf;">d4a71b0c</a></strong>
<div>
<span>by Matthew Pickering</span>
<i>at 2021-04-09T03:32:12-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>Avoid repeated zonking and tidying of types in `relevant_bindings`

The approach taking in this patch is that the tcl_bndrs in TcLclEnv are
zonked and tidied eagerly, so that work can be shared across multiple
calls to `relevant_bindings`.

To test this patch I tried without the `keepThisHole` filter and the
test finished quickly.

Fixes #14766
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/28d2d6460e5af75f07e64c3d8ed1a3ad70d64aa6" style="color: #1068bf;">28d2d646</a></strong>
<div>
<span>by Matthew Pickering</span>
<i>at 2021-04-09T03:32:47-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>Don't tidy type in pprTypeForUser

There used to be some cases were kinds were not generalised properly
before being printed in GHCi. This seems to have changed in the past so
now it's uncessary to tidy before printing out the test case.

```
> :set -XPolyKinds
> data A x y
> :k A
k1 -> k2 -> A
```

This tidying was causing issues with an attempt to increase sharing by
making `mkTyConApp` (see !4762)
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/6d29e6357a7d3c50891a6f4317f955dbbbc4beb0" style="color: #1068bf;">6d29e635</a></strong>
<div>
<span>by Matthew Pickering</span>
<i>at 2021-04-09T03:33:22-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>Add perf test for #15304

The test max memory usage improves dramatically with the fixes to
memory usage in demand analyser from #15455
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/70c39e220aa75608e277f311b53f8428c2abc4ff" style="color: #1068bf;">70c39e22</a></strong>
<div>
<span>by Douglas Wilson</span>
<i>at 2021-04-09T03:33:56-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>[docs] release notes for !4729 + !3678

Also includes small unrelated type fix
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/c1d6daab8213561cdb4002b66d69b8c6d38a8dd9" style="color: #1068bf;">c1d6daab</a></strong>
<div>
<span>by Matthew Pickering</span>
<i>at 2021-04-09T03:34:31-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>Update HACKING.md</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/a951e06921f05df1601d9c3a39efcede27f3330c" style="color: #1068bf;">a951e069</a></strong>
<div>
<span>by Sylvain Henry</span>
<i>at 2021-04-09T03:35:08-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>Bignum: add BigNat Eq/Ord instances (#19647)
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/cd3917564e3caf9af676817878957c3cc6688e6d" style="color: #1068bf;">cd391756</a></strong>
<div>
<span>by Richard Eisenberg</span>
<i>at 2021-04-10T05:29:21-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>Tweak kick-out condition K2b to deal with LHSs

Kick out condition K2b really only makes sense for
inerts with a type variable on the left. This updates
the commentary and the code to skip this check for
inerts with type families on the left.

Also cleans up some commentary around solver invariants
and adds Note [K2b].

Close #19042.

test case: typecheck/should_compile/T19042
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/7536126e90159f5f30c58f94d1459e8d6409eafb" style="color: #1068bf;">7536126e</a></strong>
<div>
<span>by Richard Eisenberg</span>
<i>at 2021-04-10T05:29:21-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>Kick out fewer equalities by thinking harder

Close #17672.

By scratching our heads quite hard, we realized that
we should never kick out Given/Nominal equalities. This
commit tweaks the kick-out conditions accordingly.

See also Note [K4] which describes what is going on.

This does not fix a known misbehavior, but it should be
a small improvement in both practice (kicking out is bad,
and we now do less of it) and theory (a Given/Nominal should
behave just like a filled-in metavariable, which has no notion
of kicking out).
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/449be647001c556bc1432287cfd70eb0fc984b18" style="color: #1068bf;">449be647</a></strong>
<div>
<span>by Richard Eisenberg</span>
<i>at 2021-04-10T05:29:21-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>Clarify commentary around the constraint solver

No changes to code; no changes to theory. Just better
explanation.
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/3c98dda6550b5323a00f4c8cde916a636901db82" style="color: #1068bf;">3c98dda6</a></strong>
<div>
<span>by Richard Eisenberg</span>
<i>at 2021-04-10T05:29:21-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>Test #19665 as expect_broken, with commentary
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/6b1d0b9cb5b984e7d4ada5626a675fe2d4e49a5d" style="color: #1068bf;">6b1d0b9c</a></strong>
<div>
<span>by Koz Ross</span>
<i>at 2021-04-10T05:29:59-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>Implement list `fold` and `foldMap` via mconcat

- This allows specialized mconcat implementations an opportunity to combine
  elements efficiently in a single pass.

- Inline the default implementation of `mconcat`, this
  may result in list fusion.

- In Monoids with strict `mappend`, implement `mconcat` as a strict left fold:

  * And (FiniteBits)
  * Ior (FiniteBits)
  * Xor (FiniteBits)
  * Iff (FiniteBits)
  * Max (Ord)
  * Min (Ord)
  * Sum (Num)
  * Product (Num)
  * (a -> m) (Monoid m)

- Delegate mconcat for WrappedMonoid to the underlying monoid.

Resolves: #17123

Per the discussion in !4890, we expect some stat changes:

    * T17123(normal) run/alloc   403143160.0     4954736.0 -98.8% GOOD

      This is the expected improvement in `fold` for a long list of
      `Text` elements.

    * T13056(optasm) ghc/alloc   381013328.0   447700520.0 +17.5% BAD

      Here there's an extra simplifier run as a result of the new methods
      of the Foldable instance for List.  It looks benign.  The test is
      a micro benchmark that compiles just the derived foldable instances
      for a pair of structures, a cost of this magnitude is not expected
      to extend to more realistic programs.

    * T9198(normal) ghc/alloc   504661992.0   541334168.0  +7.3% BAD

      This test regressed from 8.10 and 9.0 back to exponential blowup.
      This metric also fluctuates, for reasons not yet clear.  The issue
      here is the exponetial blowup, not this MR.

Metric Decrease:
    T17123
Metric Increase:
    T9198
    T13056
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/3f851bbd473f3a6b679a0b1baafdf489f4786c5e" style="color: #1068bf;">3f851bbd</a></strong>
<div>
<span>by Sylvain Henry</span>
<i>at 2021-04-10T05:30:37-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>Enhance pretty-printing perf

A few refactorings made after looking at Core/STG

* Use Doc instead of SDoc in pprASCII to avoid passing the SDocContext
  that is never used.

* Inline every SDoc wrappers in GHC.Utils.Outputable to expose Doc
  constructs

* Add text/[] rule for empty strings (i.e., text "")

* Use a single occurrence of pprGNUSectionHeader

* Use bangs on Platform parameters and some others

Metric Decrease:
    ManyAlternatives
    ManyConstructors
    T12707
    T13035
    T13379
    T18698a
    T18698b
    T1969
    T3294
    T4801
    T5321FD
    T783
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/9c762f27d5468ab692e390b16420c9e304993993" style="color: #1068bf;">9c762f27</a></strong>
<div>
<span>by Sylvain Henry</span>
<i>at 2021-04-10T05:31:14-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>Generate parser for DerivedConstants.h

deriveConstants utility now generates a Haskell parser for
DerivedConstants.h. It can be used to replace the one used to read
platformConstants file.
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/085983e63bfe6af23f8b85fbfcca8db4872d2f60" style="color: #1068bf;">085983e6</a></strong>
<div>
<span>by Sylvain Henry</span>
<i>at 2021-04-10T05:31:14-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>Read constants header instead of global platformConstants

With this patch we switch from reading the globally installed
platformConstants file to reading the DerivedConstants.h header file
that is bundled in the RTS unit.  When we build the RTS unit itself, we
get it from its includes directories.

The new parser is more efficient and strict than the Read instance for
PlatformConstants and we get about 2.2MB less allocations in every
cases. However it only really shows in tests that don't allocate much,
hence the following metric decreases.

Metric Decrease:
    Naperian
    T10421
    T10547
    T12150
    T12234
    T12425
    T13035
    T18304
    T18923
    T5837
    T6048
    T18140
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/2cdc95f9c068421a55c634933ab2d8596eb992fb" style="color: #1068bf;">2cdc95f9</a></strong>
<div>
<span>by Sylvain Henry</span>
<i>at 2021-04-10T05:31:14-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>Don't produce platformConstants file

It isn't used for anything anymore
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/b699c4fb0d23616a20d160f04a893f514fc7e38c" style="color: #1068bf;">b699c4fb</a></strong>
<div>
<span>by Sylvain Henry</span>
<i>at 2021-04-10T05:31:14-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>Constants: add a note and fix minor doc glitches
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/eb1a86bbbb622c557fadf2fb33188c6724c7eaab" style="color: #1068bf;">eb1a86bb</a></strong>
<div>
<span>by John Ericson</span>
<i>at 2021-04-10T05:31:49-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>Allow C-- to scrutinize non-native-size words
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/c363108e13f4b198b77cea870cb8d9e76c8a7e55" style="color: #1068bf;">c363108e</a></strong>
<div>
<span>by John Ericson</span>
<i>at 2021-04-10T05:31:49-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>Add missing relational constant folding for sized numeric types
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/b39dec86df8106a2bb4770758941572073ad57a2" style="color: #1068bf;">b39dec86</a></strong>
<div>
<span>by Facundo Domínguez</span>
<i>at 2021-04-10T05:32:28-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>Report actual port in libiserv:Remote.Slave.startSlave

This allows to start iserv by passing port 0 to startSlave,
which in turns allows to get an available port when no
port is known to be free a priori.
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/94d48ec9fe45672f1ade2722fef709d3eac93e66" style="color: #1068bf;">94d48ec9</a></strong>
<div>
<span>by Matthew Pickering</span>
<i>at 2021-04-10T05:33:03-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>Use CI_MERGE_REQUEST_SOURCE_BRANCH_NAME rather than undefined GITLAB_CI_BRANCH env var

See https://docs.gitlab.com/ee/ci/variables/predefined_variables.html</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/d39a2b243b53b5c10895f8b56f1d7e2749c99a4b" style="color: #1068bf;">d39a2b24</a></strong>
<div>
<span>by Matthew Pickering</span>
<i>at 2021-04-10T05:33:03-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>tests: Allow --skip-perf-tests/--only-perf-tests to be used with --ignore-perf-failures
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/6974c9e478120f6c4eeb53ebfa935c30cafcdf8e" style="color: #1068bf;">6974c9e4</a></strong>
<div>
<span>by Matthew Pickering</span>
<i>at 2021-04-10T05:33:38-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>Fix magicDict in ghci (and in the presence of other ticks)

The problem was that ghci inserts some ticks around the crucial bit of
the expression. Just like in some of the other rules we now strip the
ticks so that the rule fires more reliably.

It was possible to defeat magicDict by using -fhpc as well, so not just an
issue in ghci.

Fixes #19667 and related to #19673
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/792d9289434cb7418a559cd4157ee3bfaef54c99" style="color: #1068bf;">792d9289</a></strong>
<div>
<span>by Simon Peyton Jones</span>
<i>at 2021-04-12T13:50:49-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>More accurate SrcSpan when reporting redundant constraints

We want an accurate SrcSpan for redundant constraints:

        • Redundant constraint: Eq a
        • In the type signature for:
               f :: forall a. Eq a => a -> ()
      |
    5 | f :: Eq a => a -> ()
      |      ^^^^

This patch adds some plumbing to achieve this

* New data type GHC.Tc.Types.Origin.ReportRedundantConstraints (RRC)

* This RRC value is kept inside
  - FunSigCtxt
  - ExprSigCtxt

* Then, when reporting the error in GHC.Tc.Errors, use this SrcSpan
  to control the error message: GHC.Tc.Errors.warnRedundantConstraints

Quite a lot of files are touched in a boring way.
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/18cbff86ec0cd3d06e99e3a00753cd66153210b5" style="color: #1068bf;">18cbff86</a></strong>
<div>
<span>by Matthew Pickering</span>
<i>at 2021-04-12T13:51:23-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>template-haskell: Run TH splices with err_vars from current context

Otherwise, errors can go missing which arise when running the splices.

Fixes #19470
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/89ff12304f97a7a39fa07cffe69255df7fc8cc97" style="color: #1068bf;">89ff1230</a></strong>
<div>
<span>by Matthew Pickering</span>
<i>at 2021-04-12T13:51:58-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>Add regression test for T19615

Fixes #19615
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/9588f3faf8400c6347ce7537119e63d559d5ccb0" style="color: #1068bf;">9588f3fa</a></strong>
<div>
<span>by Matthew Pickering</span>
<i>at 2021-04-12T13:52:33-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>Turn T11545 into a normal performance test

This makes it more robust to people running it with `quick` flavour and
so on.
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/d1acda985696f2e828452e246686fb35294bb7fa" style="color: #1068bf;">d1acda98</a></strong>
<div>
<span>by Matthew Pickering</span>
<i>at 2021-04-12T17:07:01-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>CI: Also ignore metric decreases on master

Otherwise, if the marge batch has decreased metrics, they will fail on
master which will result in the pipeline being cut short and the
expected metric values for the other jobs will not be updated.
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/6124d172e1aef7a2c84106c93834b6e188e4a287" style="color: #1068bf;">6124d172</a></strong>
<div>
<span>by Stefan Schulze Frielinghaus</span>
<i>at 2021-04-13T18:42:40-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>hadrian: Provide build rule for ghc-stage3 wrapper
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/ef0135934fe32da5b5bb730dbce74262e23e72e8" style="color: #1068bf;">ef013593</a></strong>
<div>
<span>by Simon Peyton Jones</span>
<i>at 2021-04-13T18:43:15-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>Make the specialiser handle polymorphic specialisation

Ticket #13873 unexpectedly showed that a SPECIALISE pragma made a
program run (a lot) slower, because less specialisation took place
overall. It turned out that the specialiser was missing opportunities
because of quantified type variables.

It was quite easy to fix. The story is given in
    Note [Specialising polymorphic dictionaries]

Two other minor fixes in the specialiser

* There is no benefit in specialising data constructor /wrappers/.
  (They can appear overloaded because they are given a dictionary
  to store in the constructor.)  Small guard in canSpecImport.

* There was a buglet in the UnspecArg case of specHeader, in the
  case where there is a dead binder. We need a LitRubbish filler
  for the specUnfolding stuff.  I expanded
  Note [Drop dead args from specialisations] to explain.

There is a 4% increase in compile time for T13056, because we generate
more specialised code.  This seems OK.

Metric Increase:
    T13056
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/8d87975ebe943a0461039a0cf2d4b8a2f32f436b" style="color: #1068bf;">8d87975e</a></strong>
<div>
<span>by Sylvain Henry</span>
<i>at 2021-04-13T18:43:53-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>Produce constant file atomically (#19684)
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/1e2e62a462d2a13a1e43a520c9de38553334b0e0" style="color: #1068bf;">1e2e62a4</a></strong>
<div>
<span>by Ryan Scott</span>
<i>at 2021-04-13T18:44:28-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>Add {lifted,unlifted}DataConKey to pretendNameIsInScope's list of Names

Fixes #19688.
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/b665d9833b13d9d4241ff56585bbf45d2fcf2278" style="color: #1068bf;">b665d983</a></strong>
<div>
<span>by Ben Gamari</span>
<i>at 2021-04-13T20:04:53-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>configure: Bump version to 9.3

Bumps the `haddock` submodule.
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/726da09e76d0832b5aedd5b78624435695ac04e7" style="color: #1068bf;">726da09e</a></strong>
<div>
<span>by Matthew Pickering</span>
<i>at 2021-04-14T05:07:45-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>Always generate ModDetails from ModIface

This vastly reduces memory usage when compiling with `--make` mode, from
about 900M when compiling Cabal to about 300M.

As a matter of uniformity, it also ensures that reading from an
interface performs the same as using the in-memory cache. We can also
delete all the horrible knot-tying in updateIdInfos.

Goes some way to fixing #13586

Accept new output of tests fixing some bugs along the way

-------------------------
Metric Decrease:
    T12545
-------------------------
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/78ed7adf4f27ece8a50be94a7ee107c8e84ac81e" style="color: #1068bf;">78ed7adf</a></strong>
<div>
<span>by Hécate Moonlight</span>
<i>at 2021-04-14T14:40:46-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>Data.List strictness optimisations for maximumBy and minimumBy

follow-up from !4675
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/79e5c8674d6bc46312efb31101889001951769d7" style="color: #1068bf;">79e5c867</a></strong>
<div>
<span>by Peter Trommler</span>
<i>at 2021-04-14T14:41:21-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>Prelude: Fix version bound on Bits import

Fixes #19683
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/5f1722994dc29a86f5495ebafb15475a46b0532c" style="color: #1068bf;">5f172299</a></strong>
<div>
<span>by Adam Gundry</span>
<i>at 2021-04-14T19:42:18-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>Add isInjectiveTyCon check to opt_univ (fixes #19509)
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/cc1ba576d26b90c0c01aa43e7100c94ee3a287ad" style="color: #1068bf;">cc1ba576</a></strong>
<div>
<span>by Matthew Pickering</span>
<i>at 2021-04-14T19:42:53-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>Fix some negation issues when creating FractionalLit

There were two different issues:

1. integralFractionalLit needed to be passed an already negated value. (T19680)
2. negateFractionalLit did not actually negate the argument, only
flipped the negation flag. (T19680A)

Fixes #19680
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/da92e7288fe9c0e83768b7dd0898bca30b9ff2ce" style="color: #1068bf;">da92e728</a></strong>
<div>
<span>by Matthew Pickering</span>
<i>at 2021-04-15T12:27:44-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>hie: Initialise the proper environment for calling dsExpr

We now use DsM as the base monad for writing hie files and properly
initialise it from the TcGblEnv.

Before, we would end up reading the interface file from disk for the
module we were currently compiling. The modules iface then ended up in
the EPS causing all sorts of subtle
carnage, including difference in the generated core and haddock emitting
a lot of warnings. With the fix, the
module in the TcGblEnv is set correctly so the lookups happen in the
local name env rather than thinking the identifier comes from an
external package.

Fixes #19693 and #19334
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/0a8c14bd5a5438b1d042ad279b8ffff1bc867e7e" style="color: #1068bf;">0a8c14bd</a></strong>
<div>
<span>by Simon Peyton Jones</span>
<i>at 2021-04-15T12:28:18-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>Fix handling ze_meta_tv_env in GHC.Tc.Utils.Zonk

As #19668 showed, there was an /asymptotic/ slow-down in zonking in
GHC 9.0, exposed in test T9198.  The bug was actually present in earlier
compilers, but by a fluke didn't actually show up in any of our tests;
but adding Quick Look exposed it.

The bug was that in zonkTyVarOcc we
1. read the meta-tyvar-env variable
2. looked up the variable in the env
3. found a 'miss'
4. looked in the variable, found `Indirect ty`
5. zonked `ty`
6. update the env *gotten from step 1* to map the variable
   to its zonked type.

The bug is that we thereby threw away all teh work done in step 4.
In T9198 that made an enormous, indeed asymptotic difference.

The fix is easy: use updTcRef.

I commented in `Note [Sharing when zonking to Type]`

-------------------------
Metric Decrease:
    T9198
-------------------------
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/7bd12940fd2aebd4bf07cb3050ed1539fb948ce9" style="color: #1068bf;">7bd12940</a></strong>
<div>
<span>by Simon Peyton Jones</span>
<i>at 2021-04-17T22:56:32+01:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>Improve CSE in STG-land

This patch fixes #19717, a long-standing bug in CSE for STG, which
led to a stupid loss of CSE in some situations.

It's explained in Note [Trivial case scrutinee], which I have
substantially extended.
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/c71b220491a6ae46924cc5011b80182bcc773a58" style="color: #1068bf;">c71b2204</a></strong>
<div>
<span>by Simon Peyton Jones</span>
<i>at 2021-04-17T23:03:56+01:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>Improvements in SpecConstr

* Allow under-saturated calls to specialise
  See Note [SpecConstr call patterns]
  This just allows a bit more specialisation to take place.

* Don't discard calls from un-specialised RHSs.  This was
  a plain bug in `specialise`, again leading to loss of
  specialisation.  Refactoring yields an `otherwise`
  case that is easier to grok.

* I refactored CallPat to become a proper data type, not a tuple.

All this came up when I was working on eta-reduction.  The ticket
is #19672.

The nofib results are mostly zero, with a couple of big wins:

        Program           Size    Allocs   Runtime   Elapsed  TotalMem
--------------------------------------------------------------------------------
         awards          +0.2%     -0.1%    -18.7%    -18.8%      0.0%
  comp_lab_zift          +0.2%     -0.2%    -23.9%    -23.9%      0.0%
           fft2          +0.2%     -1.0%    -34.9%    -36.6%      0.0%
            hpg          +0.2%     -0.3%    -18.4%    -18.4%      0.0%
           mate          +0.2%    -15.7%    -19.3%    -19.3%    +11.1%
         parser          +0.2%     +0.6%    -16.3%    -16.3%      0.0%
         puzzle          +0.4%    -19.7%    -33.7%    -34.0%      0.0%
        rewrite          +0.2%     -0.5%    -20.7%    -20.7%      0.0%
--------------------------------------------------------------------------------
            Min          +0.2%    -19.7%    -48.1%    -48.9%      0.0%
            Max          +0.4%     +0.6%     -1.2%     -1.1%    +11.1%
 Geometric Mean          +0.2%     -0.4%    -21.0%    -21.1%     +0.1%

I investigated the 0.6% increase on 'parser'.  It comes because SpecConstr
has a limit of 3 specialisations.  With HEAD, hsDoExpr has 2
specialisations, and then a further several from the specialised
bodies, of which 1 is picked.  With this patch we get 3
specialisations right off the bat, so we discard all from the
recursive calls.  Turns out that that's not the best choice, but there
is no way to tell that.  I'm accepting it.

NB: these figures actually come from this patch plus the preceding one for
StgCSE, but I think the gains come from SpecConstr.
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/40d2843686ecb08f9fce8691b833ba6517cfc6ec" style="color: #1068bf;">40d28436</a></strong>
<div>
<span>by Matthew Pickering</span>
<i>at 2021-04-18T11:09:32-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>Only load package environment file once when starting GHCi

Since d880d6b2e48268f5ed4d3eb751fe24cc833e9221 the parsing of the
environment files was moved to `parseDynamicFlags`, under the assumption
it was typically only called once. It turns out not to be true in GHCi
and this led to continually reparsing the environment file whenever a
new option was set, the options were appended to the package state and
hence all packages reloaded, as it looked like the options were changed.

The simplest fix seems to be a clearer specification:

> Package environment files are only loaded in GHCi during initialisation.

Fixes #19650
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/a42346970839feffdae6e5a570bde71a91ef8491" style="color: #1068bf;">a4234697</a></strong>
<div>
<span>by Ben Gamari</span>
<i>at 2021-04-18T20:12:26-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>Fix Haddock reference
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/78288b97f3486d79581343a40732804d96b3b57c" style="color: #1068bf;">78288b97</a></strong>
<div>
<span>by Ben Gamari</span>
<i>at 2021-04-18T20:12:26-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>users-guide: Clarify GHC2021 documentation

Point out that GHC2021 doesn't offer the same degree of stability that
Haskell2010 does, as noted by @phadej.
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/b51897494a65a6478d2ca60a4fbbec945ae27627" style="color: #1068bf;">b5189749</a></strong>
<div>
<span>by Ben Gamari</span>
<i>at 2021-04-18T20:12:26-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>users guide: Sort lists of implied language extensions
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/0165b0295c81247ae97a4689ae6e1fbd2fbc9311" style="color: #1068bf;">0165b029</a></strong>
<div>
<span>by Ben Gamari</span>
<i>at 2021-04-18T20:12:26-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>users-guide: Add missing FieldSelectors to GHC2021 list
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/0b398d554f0cc2f5341ccf62f40347c9c025767f" style="color: #1068bf;">0b398d55</a></strong>
<div>
<span>by Ryan Scott</span>
<i>at 2021-04-18T20:13:01-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>Use correct precedence in Complex's Read1/Show1 instances

Fixes #19719.
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/8b5e5b0524f614679a20ffaebab731c54dc6dee9" style="color: #1068bf;">8b5e5b05</a></strong>
<div>
<span>by Andreas Schwab</span>
<i>at 2021-04-19T15:40:25-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>Enable tables next to code for riscv64

This requires adding another rewrite to the mangler, to avoid generating
PLT entries.
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/0619fb0fb14a98f04aac5f031f6566419fd27495" style="color: #1068bf;">0619fb0f</a></strong>
<div>
<span>by Alan Zimmerman</span>
<i>at 2021-04-19T15:41:00-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>EPA: cleanups after the merge

Remove EpaAnn type synonym, rename EpaAnn' to EpaAnn.
Closes #19705

Updates haddock submodule

--

Change
  data EpaAnchor = AR RealSrcSpan
                 | AD DeltaPos

To instead be
  data EpaAnchor = AnchorReal RealSrcSpan
                 | AnchorDelta DeltaPos

Closes #19699

--

Change
  data DeltaPos =
    DP
      { deltaLine   :: !Int,
        deltaColumn :: !Int
      }

To instead be
  data DeltaPos
    = SameLine { deltaColumn :: !Int }
    | DifferentLine { deltaLine :: !Int, startColumn :: !Int }

Closes #19698

--

Also some clean-ups of unused parts of check-exact.
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/99bd4ae655984fe3a84a10edf023325cf8c1ea97" style="color: #1068bf;">99bd4ae6</a></strong>
<div>
<span>by Sebastian Graf</span>
<i>at 2021-04-20T10:17:52+02:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>Factor out DynFlags from WorkWrap.Utils

Plus a few minor refactorings:

  * Introduce `normSplitTyConApp_maybe` to Core.Utils
  * Reduce boolean blindness in the Bool argument to `wantToUnbox`
  * Let `wantToUnbox` also decide when to drop an argument, cleaning up
    `mkWWstr_one`
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/ee5dadade02890ff458167455386cc50839a3db8" style="color: #1068bf;">ee5dadad</a></strong>
<div>
<span>by Sebastian Graf</span>
<i>at 2021-04-20T10:17:55+02:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>Refactor around `wantToUnbox`

I renamed `wantToUnbox` to `wantToUnboxArg` and then introduced
`wantToUnboxResult`, which we call in `mkWWcpr_one` now.

I also deleted `splitArgType_maybe` (the single call site outside of
`wantToUnboxArg` actually cared about the result type of a function, not
an argument) and `splitResultType_maybe` (which is entirely superceded
by `wantToUnboxResult`.
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/0e5411374ebbb934227ceb533f984886f611f1b6" style="color: #1068bf;">0e541137</a></strong>
<div>
<span>by Sebastian Graf</span>
<i>at 2021-04-20T10:17:55+02:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>Worker/wrapper: Consistent names
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/fdbead70d5920c35b6fd96b723f00aaa95763ae2" style="color: #1068bf;">fdbead70</a></strong>
<div>
<span>by Sebastian Graf</span>
<i>at 2021-04-20T14:55:16+02:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>Worker/wrapper: Refactor CPR WW to work for nested CPR (#18174)

In another small step towards bringing a manageable variant of Nested
CPR into GHC, this patch refactors worker/wrapper to be able to exploit
Nested CPR signatures. See the new Note [Worker/wrapper for CPR].

The nested code path is currently not triggered, though, because all
signatures that we annotate are still flat. So purely a refactoring.
I am very confident that it works, because I ripped it off !1866 95%
unchanged.

A few test case outputs changed, but only it's auxiliary names only.
I also added test cases for #18109 and #18401.

There's a 2.6% metric increase in T13056 after a rebase, caused by an
additional Simplifier run. It appears b1d0b9c saw a similar additional
iteration. I think it's just a fluke.

Metric Increase:
    T13056
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/b7980b5d94d34943b3965cf79c4e610f00a9ee7d" style="color: #1068bf;">b7980b5d</a></strong>
<div>
<span>by Simon Peyton Jones</span>
<i>at 2021-04-20T21:33:09-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>Fix occAnalApp

In OccurAnal the function occAnalApp was failing to reset occ_encl to
OccVanilla.  This omission sometimes resulted in over-pessimistic
occurrence information.

I tripped over this when analysing eta-expansions.

Compile times in perf/compiler fell slightly (no increases)

  PmSeriesG(normal) ghc/alloc    50738104.0    50580440.0  -0.3%
  PmSeriesS(normal) ghc/alloc    64045284.0    63739384.0  -0.5%
  PmSeriesT(normal) ghc/alloc    94430324.0    93800688.0  -0.7%
  PmSeriesV(normal) ghc/alloc    63051056.0    62758240.0  -0.5%
     T10547(normal) ghc/alloc    29322840.0    29307784.0  -0.1%
     T10858(normal) ghc/alloc   191988716.0   189801744.0  -1.1%
     T11195(normal) ghc/alloc   282654016.0   281839440.0  -0.3%
     T11276(normal) ghc/alloc   142994648.0   142338688.0  -0.5%
    T11303b(normal) ghc/alloc    46435532.0    46343376.0  -0.2%
     T11374(normal) ghc/alloc   256866536.0   255653056.0  -0.5%
     T11822(normal) ghc/alloc   140210356.0   138935296.0  -0.9%
     T12234(optasm) ghc/alloc    60753880.0    60720648.0  -0.1%
       T14052(ghci) ghc/alloc  2235105796.0  2230906584.0  -0.2%
     T17096(normal) ghc/alloc   297725396.0   296237112.0  -0.5%
     T17836(normal) ghc/alloc  1127785292.0  1125316160.0  -0.2%
    T17836b(normal) ghc/alloc    54761928.0    54637592.0  -0.2%
     T17977(normal) ghc/alloc    47529464.0    47397048.0  -0.3%
    T17977b(normal) ghc/alloc    42906972.0    42809824.0  -0.2%
     T18478(normal) ghc/alloc   777385708.0   774219280.0  -0.4%
    T18698a(normal) ghc/alloc   415097664.0   409009120.0  -1.5% GOOD
    T18698b(normal) ghc/alloc   500082104.0   493124016.0  -1.4% GOOD
     T18923(normal) ghc/alloc    72252364.0    72216016.0  -0.1%
      T1969(normal) ghc/alloc   811581860.0   804883136.0  -0.8%
      T5837(normal) ghc/alloc    37688048.0    37666288.0  -0.1%

Nice!

Metric Decrease:
    T18698a
    T18698b
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/7f4d06e6c850c865669871c7fa5249daeb18f2d8" style="color: #1068bf;">7f4d06e6</a></strong>
<div>
<span>by Matthew Pickering</span>
<i>at 2021-04-22T16:59:42-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>driver: Consider dyn_o files when checking recompilation in -c

When -dynamic-too is enabled, there are two result files, .o and .dyn_o,
therefore we should check both to decide whether to set SourceModified
or not.

The whole recompilation logic is very messy, a more thorough refactor
would be beneficial in this area but this is the minimal patch to fix
this more high priority problem.

Fixes #17968 and hopefully #17534
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/4723652a655f74f36f3503f8e09c6e674ea25790" style="color: #1068bf;">4723652a</a></strong>
<div>
<span>by Fendor</span>
<i>at 2021-04-22T17:00:19-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>Move 'nextWrapperNum' into 'DsM' and 'TcM'

Previously existing in 'DynFlags', 'nextWrapperNum' is a global
variable mapping a Module to a number for name generation for FFI calls.

This is not the right location for 'nextWrapperNum', as 'DynFlags'
should not contain just about any global variable.
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/350f4f61ae847c8adf376b9ca49ad1fee64e2e95" style="color: #1068bf;">350f4f61</a></strong>
<div>
<span>by Viktor Dukhovni</span>
<i>at 2021-04-22T17:00:54-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>Support R_X86_64_TLSGD relocation on FreeBSD

The FreeBSD C <ctype.h> header supports per-thread locales by exporting a
static inline function that references the `_ThreadRuneLocale` thread-local
variable.  This means that object files that use e.g. isdigit(3) end up with
TLSGD(19) relocations, and would not load into ghci or the language server.

Here we add support for this type of relocation, for now just on FreeBSD, and
only for external references to thread-specifics defined in already loaded
dynamic modules (primarily libc.so).  This is sufficient to resolve the
<ctype.h> issues.

Runtime linking of ".o" files which *define* new thread-specific variables
would be noticeably more difficult, as this would likely require new rtld APIs.
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/aa685c50d575ccf6c46a89d4ecdc9cffcf8b73f4" style="color: #1068bf;">aa685c50</a></strong>
<div>
<span>by Viktor Dukhovni</span>
<i>at 2021-04-22T17:00:55-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>Add background note in elf_tlsgd.c.

Also some code cleanup, and a fix for an (extant unrelated) missing
<pthread_np.h> include that should hopefully resolve a failure in the
FreeBSD CI build, since it is best to make sure that this MR actually
builds on FreeBSD systems other than mine.

Some unexpected metric changes on FreeBSD (perhaps because CI had been
failing for a while???):

Metric Decrease:
    T3064
    T5321Fun
    T5642
    T9020
    T12227
    T13253-spj
    T15164
    T18282
    WWRec

Metric Increase:
    haddock.compiler
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/72b48c4440c3bbb7344b15c13c7ddb56019b0af5" style="color: #1068bf;">72b48c44</a></strong>
<div>
<span>by Viktor Dukhovni</span>
<i>at 2021-04-22T17:00:55-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>Block signals in the ticker thread

This avoids surprises in the non-threaded runtime with
blocked signals killing the process because they're only
blocked in the main thread and not in the ticker thread.
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/7bc7eea3897dcb8a87fdb0921f451b9bc77309f6" style="color: #1068bf;">7bc7eea3</a></strong>
<div>
<span>by Viktor Dukhovni</span>
<i>at 2021-04-22T17:00:55-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>Make tests more portable on FreeBSD
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/0015f019f72ddd2ca4a46e987bf17acaf0ce59d2" style="color: #1068bf;">0015f019</a></strong>
<div>
<span>by Adam Gundry</span>
<i>at 2021-04-23T23:05:04+01:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>Rename references to Note [Trees That Grow] consistently [skip ci]

I tend to find Notes by (case-sensitive) grep, and I spent a surprisingly
long time looking for this Note, because it was referenced inconsistently
with different cases, and without the module name.
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/d38397fa26acb2588253ffd704e212dbf55b2bf4" style="color: #1068bf;">d38397fa</a></strong>
<div>
<span>by Sebastian Graf</span>
<i>at 2021-04-26T23:53:56-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>Parser: Unbox `ParseResult`

Using `UnliftedNewtypes`, unboxed tuples and sums and a few pattern
synonyms, we can make `ParseResult` completely allocation-free.

Part of #19263.
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/045e5f49f81f98b8cfaeee08b572617a173f33da" style="color: #1068bf;">045e5f49</a></strong>
<div>
<span>by Oleg Grenrus</span>
<i>at 2021-04-26T23:54:34-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>Add Eq1 and Ord1 Fixed instances
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/721ea018712606b9feddf09c130552ed981b4900" style="color: #1068bf;">721ea018</a></strong>
<div>
<span>by Ben Gamari</span>
<i>at 2021-04-26T23:55:09-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>codeGen: Teach unboxed sum rep logic about levity

Previously Unarise would happily project lifted and unlifted fields
to lifted slots. This broke horribly in #19645, where a ByteArray# was
passed in a lifted slot and consequently entered. The simplest way to
fix this is what I've done here, distinguishing between lifted and
unlifted slots in unarise.

However, one can imagine more clever solutions, where we coerce the
binder to the correct levity with respect to the sum's tag. I doubt that
this would be worth the effort.

Fixes #19645.
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/9f9fab1531d62f6d30c853722548393be264120b" style="color: #1068bf;">9f9fab15</a></strong>
<div>
<span>by Ben Gamari</span>
<i>at 2021-04-26T23:55:09-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>testsuite: Add test for #19645
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/3339ed49b103d5aab42733dfb434de3a9a27bf2b" style="color: #1068bf;">3339ed49</a></strong>
<div>
<span>by Ben Gamari</span>
<i>at 2021-04-26T23:55:44-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>users-guide: Document deprecation of -funfolding-keeness-factor

See #15304.
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/9d34f4546ab54c3dbb8f7be8f3e855d370592e8d" style="color: #1068bf;">9d34f454</a></strong>
<div>
<span>by Ben Gamari</span>
<i>at 2021-04-26T23:55:44-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>users guide: Various other cleanups
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/06654a6e0e4c1f9eb58947439092ae27b00d8c10" style="color: #1068bf;">06654a6e</a></strong>
<div>
<span>by Matthew Pickering</span>
<i>at 2021-04-26T23:56:18-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>Correct treatment of rexported modules in mkModuleNameProvidersMap

Before we would get the incorrect error message saying that the
rexporting package was the same as the defining package.

I think this only affects error messages for now.

```
-      it is bound as p-0.1.0.0:P2 by a reexport in package p-0.1.0.0
-      it is bound as P by a reexport in package p-0.1.0.0
+      it is bound as p-0.1.0.0:P2 by a reexport in package q-0.1.0.0
+      it is bound as P by a reexport in package r-0.1.0.0
```

and the output of `-ddump-mod-map` claimed..

```
Moo moo-0.0.0.1 (hidden package, reexport by moo-0.0.0.1)
```
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/6c7fff0b6f9514d6572cbe6bbfa4aafc259caebe" style="color: #1068bf;">6c7fff0b</a></strong>
<div>
<span>by Simon Peyton Jones</span>
<i>at 2021-04-26T23:56:53-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>Eliminate unsafeEqualityProof in CorePrep

The main idea here is to avoid treating
  * case e of {}
  * case unsafeEqualityProof of UnsafeRefl co -> blah
specially in CoreToStg.  Instead, nail them in CorePrep,
by converting

   case e of {}
     ==>   e |> unsafe-co

   case unsafeEqualityProof of UnsafeRefl cv -> blah
     ==> blah[unsafe-co/cv]

in GHC.Core.Prep.  Now expressions that we want to treat as trivial
really are trivial.  We can get rid of cpExprIsTrivial.

And we fix #19700.

A downside is that, at least under unsafeEqualityProof, we substitute
in types and coercions, which is more work. But a big advantage is
that it's all very simple and principled: CorePrep really gets rid of
the unsafeCoerce stuff, as it does empty case, runRW#, lazyId etc.

I've updated the overview in GHC.Core.Prep, and added
  Note [Unsafe coercions] in GHC.Core.Prep
  Note [Implementing unsafeCoerce] in base:Unsafe.Coerce

We get 3% fewer bytes allocated when compiling perf/compiler/T5631,
which uses a lot of unsafeCoerces.  (It's a happy-generated parser.)

Metric Decrease:
    T5631
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/b9e2491dee6bdc1edc35a023aa25d46f82622f23" style="color: #1068bf;">b9e2491d</a></strong>
<div>
<span>by Rafal Gwozdzinski</span>
<i>at 2021-04-26T23:57:29-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>Add GHC.Utils.Error.pprMessages
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/72c1812feecd2aff2a96b629063ba90a2f4cdb7b" style="color: #1068bf;">72c1812f</a></strong>
<div>
<span>by Ben Gamari</span>
<i>at 2021-04-26T23:58:16-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>rts/m32: Fix bounds check

Previously we would check only that the *start* of the mapping was in
the bottom 32-bits of address space. However, we need the *entire*
mapping to be in low memory. Fix this.

Noticed by @Phyx.
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/dd0a95a34657c5b6de003f7177242af990c924aa" style="color: #1068bf;">dd0a95a3</a></strong>
<div>
<span>by Sasha Bogicevic</span>
<i>at 2021-04-26T23:58:56-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>18000 Use GHC.IO.catchException in favor of Exception.catch

fix #18000
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/c1549069c15117b06c521bd3de966754f3fc62ec" style="color: #1068bf;">c1549069</a></strong>
<div>
<span>by Adam Sandberg Ericsson</span>
<i>at 2021-04-26T23:59:32-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>docs: add a short up-front description for -O, -n, -qn, -I and -Iw
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/d9ceb2fb51b037a330a6cfaf129c24ea7f1ac644" style="color: #1068bf;">d9ceb2fb</a></strong>
<div>
<span>by iori tsu</span>
<i>at 2021-04-27T00:00:08-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>Add documentation for GHC.Exts.sortWith

sortWith has the same type definition as `Data.List.sortOn` (eg: `Ord b => (a -> b) -> [a] -> [a]`).
Nonetheless, they behave differently, sortOn being more efficient.
This merge request add documentation to reflect on this differences
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/dd121fa178c29a154233e95a15c755d0ca7cbdcc" style="color: #1068bf;">dd121fa1</a></strong>
<div>
<span>by Ryan Scott</span>
<i>at 2021-04-27T00:00:43-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>Pretty-print HsArgPar applications correctly (#19737)

Previously, the `Outputable` instance for `HsArg` was being used to
pretty-print each `HsArgPar` in a list of `HsArg`s individually, which
simply doesn't work. In lieu of the `Outputable` instance, we now use
a dedicated `pprHsArgsApp` function to print a list of `HsArg`s as a single
unit. I have also added documentation to the `Outputable` instance for `HsArg`
to more clearly signpost that it is only suitable for debug pretty-printing.

Fixes #19737.
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/484a8b2dcc84d012621bdc24da8cb68ae07b159b" style="color: #1068bf;">484a8b2d</a></strong>
<div>
<span>by Ben Gamari</span>
<i>at 2021-04-27T21:57:56-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>Introduce -ddump-verbose-inlinings

Previously -ddump-inlinings and -dverbose-core2core used in conjunction
would have the side-effect of dumping additional information about all
inlinings considered by the simplifier. However, I have sometimes wanted
this inlining information without the firehose of information produced by
-dverbose-core2core. Introduce a new dump flag for this purpose.
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/9ead1b35e193b07e82af289cc85ab4b26cf89df6" style="color: #1068bf;">9ead1b35</a></strong>
<div>
<span>by Daniel Rogozin</span>
<i>at 2021-04-27T21:58:32-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>fix #19736
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/d2399a46a01a6e46c831c19e797e656a0b8ca16d" style="color: #1068bf;">d2399a46</a></strong>
<div>
<span>by Sasha Bogicevic</span>
<i>at 2021-04-27T21:59:08-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>19079 DerivingVia: incorrectly accepts deriving via types with differing runtime representations
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/59cf287d3728a4efeae3f84311d4e9f9e347b81b" style="color: #1068bf;">59cf287d</a></strong>
<div>
<span>by Sylvain Henry</span>
<i>at 2021-04-29T17:26:43-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>Refactor divInt# to make it branchless (#18067, #19636)
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/8d069477b77614e3360dff8bf0221fba5ae99cf8" style="color: #1068bf;">8d069477</a></strong>
<div>
<span>by Sylvain Henry</span>
<i>at 2021-04-29T17:26:43-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>Refactor modInt# to make it branchless
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/e50d06752e2113615814d2c9cf8965cca394302b" style="color: #1068bf;">e50d0675</a></strong>
<div>
<span>by Sylvain Henry</span>
<i>at 2021-04-29T17:26:43-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>Allow divInt#/modInt# to inline (#18067)
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/c308c9af2e1345f6a2adece971cf7ffed78a31a9" style="color: #1068bf;">c308c9af</a></strong>
<div>
<span>by Sylvain Henry</span>
<i>at 2021-04-29T17:26:43-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>Make divModInt# branchless
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/7bb3443a4fe8acfaa3fec34f58c91173f737777d" style="color: #1068bf;">7bb3443a</a></strong>
<div>
<span>by Sylvain Henry</span>
<i>at 2021-04-29T17:26:43-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>Fix inlining of division wrappers
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/7d18e1bace3f3a85eae177654690d91b688c0e8f" style="color: #1068bf;">7d18e1ba</a></strong>
<div>
<span>by Alfredo Di Napoli</span>
<i>at 2021-04-29T17:27:19-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>Add GhcMessage and ancillary types

This commit adds GhcMessage and ancillary (PsMessage, TcRnMessage, ..)
types.
These types will be expanded to represent more errors generated
by different subsystems within GHC. Right now, they are underused,
but more will come in the glorious future.

See
https://gitlab.haskell.org/ghc/ghc/-/wikis/Errors-as-(structured)-values
for a design overview.

Along the way, lots of other things had to happen:

* Adds Semigroup and Monoid instance for Bag

* Fixes #19746 by parsing OPTIONS_GHC pragmas into Located Strings.
  See GHC.Parser.Header.toArgs (moved from GHC.Utils.Misc, where it
  didn't belong anyway).

* Addresses (but does not completely fix) #19709, now reporting
  desugarer warnings and errors appropriately for TH splices.
  Not done: reporting type-checker warnings for TH splices.

* Some small refactoring around Safe Haskell inference, in order
  to keep separate classes of messages separate.

* Some small refactoring around initDsTc, in order to keep separate
  classes of messages separate.

* Separate out the generation of messages (that is, the construction
  of the text block) from the wrapping of messages (that is, assigning
  a SrcSpan). This is more modular than the previous design, which
  mixed the two.

Close #19746.

This was a collaborative effort by Alfredo di Napoli and
Richard Eisenberg, with a key assist on #19746 by Iavor
Diatchki.

Metric Increase:
    MultiLayerModules
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/5981ac7d83810d26d74a07bbc452a0be278de66c" style="color: #1068bf;">5981ac7d</a></strong>
<div>
<span>by Ryan Scott</span>
<i>at 2021-04-29T17:27:54-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>Redesign withDict (formerly magicDict)

This gives a more precise type signature to `magicDict` as proposed in #16646.
In addition, this replaces the constant-folding rule for `magicDict` in
`GHC.Core.Opt.ConstantFold` with a special case in the desugarer in
`GHC.HsToCore.Expr.dsHsWrapped`. I have also renamed `magicDict` to `withDict`
in light of the discussion in
https://mail.haskell.org/pipermail/ghc-devs/2021-April/019833.html.
All of this has the following benefits:

* `withDict` is now more type safe than before. Moreover, if a user applies
  `withDict` at an incorrect type, the special-casing in `dsHsWrapped` will
  now throw an error message indicating what the user did incorrectly.
* `withDict` can now work with classes that have multiple type arguments, such
  as `Typeable @k a`. This means that `Data.Typeable.Internal.withTypeable` can
  now be implemented in terms of `withDict`.
* Since the special-casing for `withDict` no longer needs to match on the
  structure of the expression passed as an argument to `withDict`, it no
  longer cares about the presence or absence of `Tick`s. In effect, this
  obsoletes the fix for #19667.

The new `T16646` test case demonstrates the new version of `withDict` in
action, both in terms of `base` functions defined in terms of `withDict`
as well as in terms of functions from the `reflection` and `singletons`
libraries. The `T16646Fail` test case demonstrates the error message that GHC
throws when `withDict` is applied incorrectly.

This fixes #16646. By adding more tests for `withDict`, this also
fixes #19673 as a side effect.
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/514700005af295f84d74d5c7e1c303ce3c0b28ce" style="color: #1068bf;">51470000</a></strong>
<div>
<span>by Ryan Scott</span>
<i>at 2021-04-29T17:28:30-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>Expand synonyms in mkCastTy when necessary

Doing so is important to maintain invariants (EQ3) and (EQ4) from
`Note [Respecting definitional equality]` in `GHC.Core.TyCo.Rep`. For the
details, see the new `Note [Using coreView in mk_cast_ty]`.

Fixes #19742.
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/c2541c49f162f1d03b0ae55f47b9c76cc96df76f" style="color: #1068bf;">c2541c49</a></strong>
<div>
<span>by Ryan Scott</span>
<i>at 2021-04-29T17:29:05-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>Propagate free variables in extract_lctxt correctly

This fixes an oversight in the implementation of `extract_lctxt` which
was introduced in commit ce85cffc. Fixes #19759.
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/1d03d8bef962e6789db44e8b6f2cfd9e34f3f5ad" style="color: #1068bf;">1d03d8be</a></strong>
<div>
<span>by Sylvain Henry</span>
<i>at 2021-04-29T17:29:44-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>Replace (ptext .. sLit) with `text`

1. `text` is as efficient as `ptext . sLit` thanks to the rewrite rules

2. `text` is visually nicer than `ptext . sLit`

3. `ptext . sLit` encourages using one `ptext` for several `sLit` as in:

    ptext $ case xy of
      ... -> sLit ...
      ... -> sLit ...

  which may allocate SDoc's TextBeside constructors at runtime instead
  of sharing them into CAFs.
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/2d2985a79eec3d6ae9aee96b264c97c2b158f196" style="color: #1068bf;">2d2985a7</a></strong>
<div>
<span>by Adam Sandberg Ericsson</span>
<i>at 2021-04-29T17:30:20-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>rts: export allocateWrite, freeWrite and markExec #19763
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/c0c0b4e0d3112a9ee294d1c3b7849b68b0bebfc8" style="color: #1068bf;">c0c0b4e0</a></strong>
<div>
<span>by Viktor Dukhovni</span>
<i>at 2021-04-30T23:21:34-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>Tighten scope of non-POSIX visibility macros

The __BSD_VISIBLE and _DARWIN_C_SOURCE macros expose non-POSIX prototypes in
system header files.  We should scope these to just the ".c" modules that
actually need them, and avoid defining them in header files used in other C
modules.
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/c7ca3619e2544d7627c082b6e5bbe57a6b8abc05" style="color: #1068bf;">c7ca3619</a></strong>
<div>
<span>by Sylvain Henry</span>
<i>at 2021-04-30T23:22:13-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>Interpreter: replace DynFlags with EvalOpts/BCOOpts
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/491266eeaa64f34923335900fa42e1f239326cab" style="color: #1068bf;">491266ee</a></strong>
<div>
<span>by Sylvain Henry</span>
<i>at 2021-04-30T23:22:13-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>Make GHC.Runtime.Interpreter independent of GHC.Driver
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/48c2c2af41ac99a21b39b5dfb886f00f94cccad7" style="color: #1068bf;">48c2c2af</a></strong>
<div>
<span>by Sylvain Henry</span>
<i>at 2021-04-30T23:22:13-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>Fix genprimopcode warning
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/6623790d7486b2b1a1863538dbb2b65234ecaaa6" style="color: #1068bf;">6623790d</a></strong>
<div>
<span>by Sylvain Henry</span>
<i>at 2021-04-30T23:22:13-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>Hadrian: build check-* with -Wall/-Werror

Otherwise CI fails only with make build system.
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/460afbe676715e4b8d75af79e9700ceebcf62eed" style="color: #1068bf;">460afbe6</a></strong>
<div>
<span>by Ryan Scott</span>
<i>at 2021-04-30T23:22:48-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>Bring tcTyConScopedTyVars into scope in tcClassDecl2

It is possible that the type variables bound by a class header will map to
something different in the typechecker in the presence of
`StandaloneKindSignatures`. `tcClassDecl2` was not aware of this, however,
leading to #19738. To fix it, in `tcTyClDecls` we map each class `TcTyCon` to
its `tcTyConScopedTyVars` as a `ClassScopedTVEnv`. We then plumb that
`ClassScopedTVEnv` to `tcClassDecl2` where it can be used.

Fixes #19738.
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/e61d2d47c4942c829ec98016be5aa5ae36982524" style="color: #1068bf;">e61d2d47</a></strong>
<div>
<span>by Sylvain Henry</span>
<i>at 2021-04-30T23:23:26-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>Make sized division primops ok-for-spec (#19026)
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/1b9df11115467c1e00d97a50d488a73bd2439eba" style="color: #1068bf;">1b9df111</a></strong>
<div>
<span>by Harry Garrood harry@garrood.me</span>
<i>at 2021-05-03T19:48:21-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>Add test case for #8144

Fixes #8144
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/4512ad2d6a8e65ea43c86c816411cb13b822f674" style="color: #1068bf;">4512ad2d</a></strong>
<div>
<span>by John Ericson</span>
<i>at 2021-05-03T19:48:56-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>Use fix-sized bit-fiddling primops for fixed size boxed types

Like !5572, this is switching over a portion of the primops which seems
safe to use.
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/8d6b25254e7cb881e06054ce175ed3d6ef97eedb" style="color: #1068bf;">8d6b2525</a></strong>
<div>
<span>by Sylvain Henry</span>
<i>at 2021-05-03T19:48:56-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>Move shift ops out of GHC.Base

With a quick flavour I get:

  before T12545(normal) ghc/alloc 8628109152
  after  T12545(normal) ghc/alloc 8559741088
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/3a2f2475f9cbf9c7acde6d794a2780ded492983b" style="color: #1068bf;">3a2f2475</a></strong>
<div>
<span>by bit</span>
<i>at 2021-05-03T19:49:32-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>Update documentation of 'Weak'</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/4e54683465b317af58cb73a21760d3993c26ed5f" style="color: #1068bf;">4e546834</a></strong>
<div>
<span>by Tamar Christina</span>
<i>at 2021-05-03T19:50:10-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>pe: enable code unloading for Windows
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/5126a07e0c095c8756bf96196d2c7d8bb9416142" style="color: #1068bf;">5126a07e</a></strong>
<div>
<span>by Philipp Dargel</span>
<i>at 2021-05-03T19:50:46-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>Remove duplicate modules in GHCi %s prompt

fixes #19757
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/0680e9a5ce29523fca43b62a8edc59b0d0690d6a" style="color: #1068bf;">0680e9a5</a></strong>
<div>
<span>by Hécate Moonlight</span>
<i>at 2021-05-03T19:51:22-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>Disable HLint colours

closes #19776
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/7f5ee7194e18cc2c922839260817c16db8e95832" style="color: #1068bf;">7f5ee719</a></strong>
<div>
<span>by iori tsu</span>
<i>at 2021-05-03T19:51:58-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>visually align expected and actual modules name

before:
> /home/matt/Projects/persistent/persistent/Database/Persist/ImplicitIdDef.hs:1:8: error:
>     File name does not match module name:
>     Saw: ‘A.B.Module’
>     Expected: ‘A.B.Motule’
>   |
> 1 | module A.B.Motule
>   |        ^^^^^^^^^^>

after:
> /home/matt/Projects/persistent/persistent/Database/Persist/ImplicitIdDef.hs:1:8: error:
>     File name does not match module name:
>     Saw:      ‘A.B.Module’
>     Expected: ‘A.B.Motule’
>   |
> 1 | module A.B.Motule
>   |        ^^^^^^^^^^>
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/24a9b1708cee95670e7ec2a6ceb68e29fc376cf7" style="color: #1068bf;">24a9b170</a></strong>
<div>
<span>by sheaf</span>
<i>at 2021-05-03T19:52:34-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>Improve hs-boot binds error (#19781)
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/39020600da32a3207e83f056f16ac42bcc617dc4" style="color: #1068bf;">39020600</a></strong>
<div>
<span>by Roland Senn</span>
<i>at 2021-05-04T16:00:13-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>Tweak function `quantifyType` to fix #12449

In function `compiler/GHC/Runtime/Heap/Inspect.hs:quantifyType` replace
`tcSplitForAllInvisTyVars` by `tcSplitNestedSigmaTys`. This will properly split
off the nested foralls in examples like `:print fmap`.

Do not remove the `forall`s from the `snd` part of the tuple returned
by `quantifyType`. It's not necessary and the reason for the bug in #12449.

Some code simplifications at the calling sites of `quantifyTypes`.
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/6acadb79afe685c635fd255f90551a0fbfcbe3dc" style="color: #1068bf;">6acadb79</a></strong>
<div>
<span>by Simon Peyton Jones</span>
<i>at 2021-05-04T16:00:48-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>Persist CorePrepProv into IfaceUnivCoProv

CorePrepProv is only created in CorePrep, so I thought it wouldn't be
needed in IfaceUnivCoProv.  But actually IfaceSyn is used during
pretty-printing, and we can certainly pretty-print things after
CorePrep as #19768 showed.

So the simplest thing is to represent CorePrepProv in IfaceSyn.

To improve what Lint can do I also added a boolean to CorePrepProv, to
record whether it is homogeneously kinded or not. It is introduced in
two distinct ways (see Note [Unsafe coercions] in GHC.CoreToStg.Prep),
one of which may be hetero-kinded (e.g. Int ~ Int#) beause it is
casting a divergent expression; but the other is not.  The boolean
keeps track.
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/7ffbdc3fa603c6411249ba9b758cf8f109c5fb30" style="color: #1068bf;">7ffbdc3f</a></strong>
<div>
<span>by Ben Gamari</span>
<i>at 2021-05-05T05:42:38-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>Break up aclocal.m4
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/34452fbdf556919e563ab57df792a1413051a74a" style="color: #1068bf;">34452fbd</a></strong>
<div>
<span>by Ben Gamari</span>
<i>at 2021-05-05T05:42:38-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>configure: Move pthreads checks to macro
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/0de2012cc05b12a810d27f5c9009c870cf6fabfd" style="color: #1068bf;">0de2012c</a></strong>
<div>
<span>by Ben Gamari</span>
<i>at 2021-05-05T05:42:38-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>configure: Move libnuma check to macro
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/958c6fbdc7ba76313f6f6d110f5a0ee2474d26b6" style="color: #1068bf;">958c6fbd</a></strong>
<div>
<span>by Ben Gamari</span>
<i>at 2021-05-05T05:42:38-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>configure: Move libdw search logic to macro
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/101d25fce311237b82580745c321f70e62755719" style="color: #1068bf;">101d25fc</a></strong>
<div>
<span>by Alfredo Di Napoli</span>
<i>at 2021-05-05T05:43:14-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>Add some DriverMessage type constructors

This commit expands the DriverMessage type with new type constructors,
making the number of diagnostics GHC can emit richer. In particular:

* Add DriverMissingHomeModules message
* Add DriverUnusedPackage message
* Add DriverUnnecessarySourceImports message

    This commit adds the `DriverUnnecessarySourceImports` message and
    fixes a small bug in its reporting: inside
    `warnUnnecessarySourceImports` we were checking for
    `Opt_WarnUnusedSourceImports` to be set, but we were emitting the
    diagnostic with `WarningWithoutFlag`. This also adjusts the T10637 test to reflect that.

* Add DriverDuplicatedModuleDeclaration message
* Add DriverModuleNotFound message
* Add DriverFileModuleNameMismatch message
* Add DriverUnexpectedSignature message
* Add DriverFileNotFound message
* Add DriverStaticPointersNotSupported message
* Add DriverBackpackModuleNotFound message
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/e9617fbace826b048208c51e47d1552449675d57" style="color: #1068bf;">e9617fba</a></strong>
<div>
<span>by Matthew Pickering</span>
<i>at 2021-05-05T05:43:49-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>test driver: Make sure RESIDENCY_OPTS is passed for 'all' perf tests

Fixes #19731

-------------------------
Metric Decrease:
    T11545
Metric Increase:
    T12545
    T15304
-------------------------
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/f464e4777662a25c0b241d396146ba7a3182b9f3" style="color: #1068bf;">f464e477</a></strong>
<div>
<span>by Jaro Reinders</span>
<i>at 2021-05-05T05:44:26-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>More specific error messages for annotations (fixes #19740)
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/3280eb2216b44d46813fe8e026ebdfc9ac0547a9" style="color: #1068bf;">3280eb22</a></strong>
<div>
<span>by Luite Stegeman</span>
<i>at 2021-05-05T05:45:03-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>support LiftedRep and UnliftedRep in GHCi FFI

fixes #19733
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/049c3a83fbce67e58e70c727d89e8331608a4e04" style="color: #1068bf;">049c3a83</a></strong>
<div>
<span>by Hécate Moonlight</span>
<i>at 2021-05-05T05:45:39-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>Add an .editorconfig file

closes #19793
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/a5e9e5b601fecef421ec4bfa28e135404986ded0" style="color: #1068bf;">a5e9e5b6</a></strong>
<div>
<span>by Ben Gamari</span>
<i>at 2021-05-06T02:30:18-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>Re-introduce Note [keepAlive# magic]

Somewhere in the course of forward- and back-porting the keepAlive#
branch the Note which described the mechanism was dropped. Reintroduce
it.

Closes #19712.
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/c4f4193a13f751380e4cedbc2688a339f69325c9" style="color: #1068bf;">c4f4193a</a></strong>
<div>
<span>by John Ericson</span>
<i>at 2021-05-06T02:30:54-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>Use fix-sized arithmetic primops for fixed size boxed types

We think the compiler is ready, so we can do this for all over the 8-,
16-, and 32-bit boxed types.

We are holding off on doing all the primops at once so things are easier
to investigate.

Metric Decrease:
    T12545
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/418295eab741fd420c6f350141c332ef26f9f0a4" style="color: #1068bf;">418295ea</a></strong>
<div>
<span>by Sasha Bogicevic</span>
<i>at 2021-05-06T02:31:31-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>19486 Nearly all uses of `uniqCompareFS` are dubious and lack a non-determinism justification
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/1635d5c229a3ea0bc8e0ee862948cda2c435221a" style="color: #1068bf;">1635d5c2</a></strong>
<div>
<span>by Alan Zimmerman</span>
<i>at 2021-05-06T02:32:06-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>EPA: properly capture semicolons between Matches in a FunBind

For the source

    module MatchSemis where
    {
    a 0 = 1;
    a _ = 2;
    }

Make sure that the AddSemiAnn entries for the two trailing semicolons
are attached to the component Match elements.

Closes #19784
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/e57783654ed9a5d16afddddbaa555778993e81b8" style="color: #1068bf;">e5778365</a></strong>
<div>
<span>by PHO</span>
<i>at 2021-05-06T02:32:44-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>rts/posix/GetTime.c: Use Solaris-specific gethrvtime(3) on OpenSolaris derivatives

The constant CLOCK_THREAD_CPUTIME_ID is defined in a system header but it isn't acutally usable. clock_gettime(2) always returns EINVAL.
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/87d8c008eeb8ff733ac0bfcfdbb0f1a758a417b9" style="color: #1068bf;">87d8c008</a></strong>
<div>
<span>by Ben Gamari</span>
<i>at 2021-05-06T12:44:06-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>Bump binary submodule

Fixes #19631.
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/0281dae8b3fe3384939c415ae72ca2440b3cafb3" style="color: #1068bf;">0281dae8</a></strong>
<div>
<span>by Aaron Allen</span>
<i>at 2021-05-06T12:44:43-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>Disallow -XDerivingVia when -XSafe is on (#19786)

Since `GeneralizedNewtypeDeriving` is considered unsafe, `DerivingVia`
should be as well.
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/30f6923a834ccaca30c3622a0a82421fabcab119" style="color: #1068bf;">30f6923a</a></strong>
<div>
<span>by Ben Gamari</span>
<i>at 2021-05-06T12:45:19-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>hadrian: Don't depend upon bash from PATH

Previously Hadrian depended implicitly upon whatever `bash` it found in
`PATH`, offerring no way for the user to override. Fix this by detecting
`sh` in `configure` and passing the result to Hadrian.

Fixes #19797.
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/c5454dc7467cf6f51d9ab27430271abee5628f6d" style="color: #1068bf;">c5454dc7</a></strong>
<div>
<span>by Moritz Angermann</span>
<i>at 2021-05-07T09:17:22+08:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>[ci] Add support for building on aarch64-darwin

This will fail for now. But allows us to add aarch64-darwin
machines to CI.

(cherry picked from commit a7d22795ed118abfe64f4fc55d96d8561007ce1e)
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/41b0c2889f0e4c4fbcb6ca97a4bf28b697bf8b92" style="color: #1068bf;">41b0c288</a></strong>
<div>
<span>by Moritz Angermann</span>
<i>at 2021-05-07T09:17:22+08:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>[testlib/driver] denoise

this prevents the testlib/driver to be overly noisy, and will also
kill some noise produiced by the aarch64-darwin cc (for now).

Fixing sysctl, will allow us to run the test's properly in a nix-shell
on aarch64-darwin

(cherry picked from commit 5109e87e13ab45d799db2013535f54ca35f1f4dc)
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/bb78df780b53ce8d37e615e5b1cea0402abfd6a9" style="color: #1068bf;">bb78df78</a></strong>
<div>
<span>by Moritz Angermann</span>
<i>at 2021-05-07T09:17:22+08:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>[ci] default value for CONFIGURE_ARGS

(cherry picked from commit 307d34945b7d932156e533736c91097493e6181b)
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/5f5b02c25130979ac7c9530e3c7d89e49beb5a24" style="color: #1068bf;">5f5b02c2</a></strong>
<div>
<span>by Moritz Angermann</span>
<i>at 2021-05-07T09:17:22+08:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>[ci] Default value for MAKE_ARGS

We don't pass MAKE_ARGS for windows builds, so this should unbreak
them.

(cherry picked from commit 16c13d5acfdc8053f7de9e908cc9d845e9bd34bb)
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/79019dd6f1712f83bb72f30594610b04918c41d4" style="color: #1068bf;">79019dd6</a></strong>
<div>
<span>by Moritz Angermann</span>
<i>at 2021-05-07T09:17:23+08:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>[testsuite/darwin] fix conc059

This resolves the following:

Compile failed (exit code 1) errors were:
conc059_c.c:27:5: error:
     error: implicitly declaring library function 'exit' with type 'void (int) __attribute__((noreturn))' [-Werror,-Wimplicit-function-declaration]
        exit(0);
        ^
conc059_c.c:27:5: error:
     note: include the header <stdlib.h> or explicitly provide a declaration for 'exit'

(cherry picked from commit 5a6c36ecb41fccc07c1b01fe0f330cd38c2a0c76)
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/8a36ebfa439c7bb46e241717c523b9ab7f76f2fe" style="color: #1068bf;">8a36ebfa</a></strong>
<div>
<span>by Moritz Angermann</span>
<i>at 2021-05-07T09:17:23+08:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>[Aarch64] No div-by-zero; disable test.

(cherry picked from commit 3592d1104c47b006fd9f4127d93916f477a6e010)
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/10b5dc88b2b103175cfab40749bd1c51e0996031" style="color: #1068bf;">10b5dc88</a></strong>
<div>
<span>by Moritz Angermann</span>
<i>at 2021-05-07T09:19:47+08:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>[Darwin] mark stdc++ tests as broken

There is no libstdc++, only libc++

(cherry picked from commit 57671071adeaf0b45e86bb0ee050e007e3b161fb)
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/035f4bb1dc9dfdaed7a22692180ea77021e1121e" style="color: #1068bf;">035f4bb1</a></strong>
<div>
<span>by Moritz Angermann</span>
<i>at 2021-05-07T09:19:47+08:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>[testsuite] filter out superfluous dylib warnings

(cherry picked from commit 33c4d497545559a38bd8d1caf6c94e5e2a77647b)
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/3f09c6f8f81f14aa7d8b9a3ccbebe7aabdb4e374" style="color: #1068bf;">3f09c6f8</a></strong>
<div>
<span>by Moritz Angermann</span>
<i>at 2021-05-07T09:19:47+08:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>[ci/nix-shell] Add Foundation and Security

(cherry picked from commit 4bea83afec009dfd3c6313cac4610d00ba1f9a3d)
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/65440597fe5dae97374bd0a52003ed5c7a9ac87d" style="color: #1068bf;">65440597</a></strong>
<div>
<span>by Moritz Angermann</span>
<i>at 2021-05-07T09:19:47+08:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>[testsuite/json2] Fix failure with LLVM backends

-Wno-unsupported-llvm-version should suppress the LLVM version
missmatch warning that messes up the output.

(cherry picked from commit 63455300625fc12b2aafc3e339eb307510a6e8bd)
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/582fc5839819cae88df97e14a85bc05a606c747d" style="color: #1068bf;">582fc583</a></strong>
<div>
<span>by Moritz Angermann</span>
<i>at 2021-05-07T09:19:47+08:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>[ci/nix-shell] [Darwin] Stop the ld warnings about libiconv.

(cherry picked from commit c3944bc89d062a4850946904133c7a1464d59012)
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/7df44e434e27ff31fb3ed721414ef529b22a1102" style="color: #1068bf;">7df44e43</a></strong>
<div>
<span>by Moritz Angermann</span>
<i>at 2021-05-07T09:19:48+08:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>[testsuite] static001 is not broken anymore.

(cherry picked from commit b821fcc7142edff69aa4c47dc1a5bd30b13c1ceb)
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/49839322e9569d8449581e75d5613a7818201b96" style="color: #1068bf;">49839322</a></strong>
<div>
<span>by Moritz Angermann</span>
<i>at 2021-05-07T09:19:48+08:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>[testsuite/arm64] fix section_alignment

(cherry picked from commit f7062e1b0c91e8aa78e245a3dab9571206fce16d)
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/ccea61173679b8e26b09fd2d3d1f35cfb078df6c" style="color: #1068bf;">ccea6117</a></strong>
<div>
<span>by Moritz Angermann</span>
<i>at 2021-05-07T09:19:48+08:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>[ci/nix-shell] uniquify NIX_LDFLAGS{_FOR_TARGET}

(cherry picked from commit 07b1af0362beaaf221cbee7b17bbe0a5606fd87d)
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/cceb461a8cd8d48a077eabceab1907d874ba4852" style="color: #1068bf;">cceb461a</a></strong>
<div>
<span>by Moritz Angermann</span>
<i>at 2021-05-07T09:19:48+08:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>[darwin] stop the DYLD_LIBRARY_PATH madness

this causes *significant* slowdown on macOS as the linker ends
up looking through all the paths.  Slowdown can be as bad as
100% or more.

(cherry picked from commit 820b0766984d42c06c977a6c32da75c429106f7f)
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/a664a2ad6432ad19799cf5670311f5d1aaac0559" style="color: #1068bf;">a664a2ad</a></strong>
<div>
<span>by Moritz Angermann</span>
<i>at 2021-05-07T09:19:48+08:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>[ci] Default values for CI_COMMIT_BRANCH, CI_PROJECT_PATH
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/8e0f48bdd6e83279939d8fdd2ec1e5707725030d" style="color: #1068bf;">8e0f48bd</a></strong>
<div>
<span>by Simon Peyton Jones</span>
<i>at 2021-05-07T09:43:57-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>Allow visible type application for levity-poly data cons

This patch was driven by #18481, to allow visible type application
for levity-polymorphic newtypes. As so often, it started simple
but grew:

* Significant refactor: I removed HsConLikeOut from the
  client-independent Language.Haskell.Syntax.Expr, and put it where it
  belongs, as a new constructor `ConLikeTc` in the GHC-specific extension
  data type for expressions, `GHC.Hs.Expr.XXExprGhcTc`.

  That changed touched a lot of files in a very superficial way.

* Note [Typechecking data constructors] explains the main payload.
  The eta-expansion part is no longer done by the typechecker, but
  instead deferred to the desugarer, via `ConLikeTc`

* A little side benefit is that I was able to restore VTA for
  data types with a "stupid theta": #19775.  Not very important,
  but the code in GHC.Tc.Gen.Head.tcInferDataCon is is much, much
  more elegant now.

* I had to refactor the levity-polymorphism checking code in
  GHC.HsToCore.Expr, see
     Note [Checking for levity-polymorphic functions]
     Note [Checking levity-polymorphic data constructors]
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/740103c509767f901ebf955f326186f9eabc4a0e" style="color: #1068bf;">740103c5</a></strong>
<div>
<span>by PHO</span>
<i>at 2021-05-07T20:06:43-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>rts/posix/OSThreads.c: Implement getNumberOfProcessors() for NetBSD
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/39be32839e4622c6df2f0544f2ad6fc9ed51c81c" style="color: #1068bf;">39be3283</a></strong>
<div>
<span>by PHO</span>
<i>at 2021-05-07T20:06:43-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>rts: Correctly call pthread_setname_np() on NetBSD

NetBSD supports pthread_setname_np() but it expects a printf-style format string and a string argument.

Also use pthread for itimer on this platform.
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/a32eb0f3d5037b0c6fefa38ec19ff8c22076d102" style="color: #1068bf;">a32eb0f3</a></strong>
<div>
<span>by Simon Peyton Jones</span>
<i>at 2021-05-07T20:07:19-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>Fix newtype eta-reduction

The eta-reduction we do for newype axioms was generating
an inhomogeneous axiom: see #19739.

This patch fixes it in a simple way; see GHC.Tc.TyCl.Build
Note [Newtype eta and homogeneous axioms]
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/ad5a3aeb1d3094acbc17f07a2cc8388676d59dd1" style="color: #1068bf;">ad5a3aeb</a></strong>
<div>
<span>by Alan Zimmerman</span>
<i>at 2021-05-08T11:19:26+01:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>EPA: update some comments in Annotations.

Follow-up from !2418, see #19579
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/736d47ffb7370ba4348b142c913b88e4c82347d0" style="color: #1068bf;">736d47ff</a></strong>
<div>
<span>by Alan Zimmerman</span>
<i>at 2021-05-09T18:13:40-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>EPA: properly capture leading semicolons in statement lists

For the fragment

    blah = do {
     ; print "a"
     ; print "b"
     }

capture the leading semicolon before 'print "a"' in
'al_rest' in AnnList instead of in 'al_trailing'.

Closes #19798
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/c4a85e3b6c3ebc7befaa031635bda7ec0685b087" style="color: #1068bf;">c4a85e3b</a></strong>
<div>
<span>by Andreas Klebinger</span>
<i>at 2021-05-11T05:34:52-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>Expand Note [Data con representation].

Not perfect. But I consider this to be a documentation fix for #19789.
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/087ac4ebee39bacd90529cab0e88af85a903448b" style="color: #1068bf;">087ac4eb</a></strong>
<div>
<span>by Simon Peyton Jones</span>
<i>at 2021-05-11T05:35:27-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>Minor refactoring in WorkWrap

This patch just does the tidying up from #19805.

No change in behaviour.
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/32367cac4e586fb5aedaa021b257388392d976c4" style="color: #1068bf;">32367cac</a></strong>
<div>
<span>by Alan Zimmerman</span>
<i>at 2021-05-11T05:36:02-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>EPA: Use custom AnnsIf structure for HsIf and HsCmdIf

This clearly identifies the presence and location of optional
semicolons in an if statement.

Closes #19813
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/099183437c9a181c93502026216ab8eea81db520" style="color: #1068bf;">09918343</a></strong>
<div>
<span>by Andreas Klebinger</span>
<i>at 2021-05-11T16:58:38-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>Don't warn about ClassOp bindings not specialising.

Fixes #19586
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/5daf1aa9dd5c03ec782c72f06b4704e31d92ec32" style="color: #1068bf;">5daf1aa9</a></strong>
<div>
<span>by Andreas Klebinger</span>
<i>at 2021-05-11T16:59:17-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>Document unfolding treatment of simplLamBndr.

Fixes #19817
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/c77179492032f4d8752481ad3e0d65d7eacb74f9" style="color: #1068bf;">c7717949</a></strong>
<div>
<span>by Simon Peyton Jones</span>
<i>at 2021-05-11T23:00:27-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>Fix strictness and arity info in SpecConstr

In GHC.Core.Opt.SpecConstr.spec_one we were giving join-points an
incorrect join-arity -- this was fallout from

    commit c71b220491a6ae46924cc5011b80182bcc773a58
    Author: Simon Peyton Jones <simonpj@microsoft.com>
    Date:   Thu Apr 8 23:36:24 2021 +0100

        Improvements in SpecConstr

        * Allow under-saturated calls to specialise
          See Note [SpecConstr call patterns]
          This just allows a bit more specialisation to take place.

and showed up in #19780. I refactored the code to make the new
function calcSpecInfo which treats join points separately.

In doing this I discovered two other small bugs:

* In the Var case of argToPat we were treating UnkOcc as
  uninteresting, but (by omission) NoOcc as interesting. As a
  result we were generating SpecConstr specialisations for functions
  with unused arguments.  But the absence anlyser does that much
  better; doing it here just generates more code.  Easily fixed.

* The lifted/unlifted test in GHC.Core.Opt.WorkWrap.Utils.mkWorkerArgs
  was back to front (#19794).  Easily fixed.

* In the same function, mkWorkerArgs, we were adding an extra argument
  nullary join points, which isn't necessary.  I added a test for
  this.  That in turn meant I had to remove an ASSERT in
  CoreToStg.mkStgRhs for nullary join points, which was always bogus
  but now trips; I added a comment to explain.
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/c3868451e974ee16762a1804d568afea8ed691c7" style="color: #1068bf;">c3868451</a></strong>
<div>
<span>by Alan Zimmerman</span>
<i>at 2021-05-11T23:01:03-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>EPA: record annotations for braces in LetStmt

Closes #19814
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/6967088df9054ee1a00873c1fe0834a98497abf0" style="color: #1068bf;">6967088d</a></strong>
<div>
<span>by Ben Gamari</span>
<i>at 2021-05-11T23:01:38-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>base: Update Unicode data to 13.0.0

(cherry picked from commit d22e087f7bf74341c4468f11b4eb0273033ca931)
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/673ff667c98eafc89e6746d1ac69d33b8330d755" style="color: #1068bf;">673ff667</a></strong>
<div>
<span>by Matthew Pickering</span>
<i>at 2021-05-11T23:02:14-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>hadrian: Don't always links against libffi

The RTS flag `ffi` is set to either True or False depending on whether
we want to link against `libffi`, therefore in order to work out whether
to add the build tree to the arguments we check whether `ffi` is in the
extraLibs or not before adding the argument.

Fixes #16022
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/d22e8d895f507ac89dd3f5582beafbe1256402d9" style="color: #1068bf;">d22e8d89</a></strong>
<div>
<span>by Matthew Pickering</span>
<i>at 2021-05-11T23:02:50-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>rts: Remove trailing whitespace from Adjustor.c
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/f0b73ddd8bdb663ab70043e9424a99d2454cdf77" style="color: #1068bf;">f0b73ddd</a></strong>
<div>
<span>by Sylvain Henry</span>
<i>at 2021-05-11T23:03:28-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>Hadrian: add comment to avoid surprises
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/55223780a286e10b128acdb89d64d9e59a5becf1" style="color: #1068bf;">55223780</a></strong>
<div>
<span>by Andreas Klebinger</span>
<i>at 2021-05-12T14:49:23-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>W/W: Always zap useless idInfos.

tryWW used to always returns an Id with a zapped:
* DmdEnv
* Used Once info
except in the case where the ID was guaranteed to be inlined.

We now also zap the info in that case.

Fixes #19818.
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/541665b77faea2e81fafa905917d1f32562242a7" style="color: #1068bf;">541665b7</a></strong>
<div>
<span>by Matthew Pickering</span>
<i>at 2021-05-12T14:49:58-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>hadrian: Fix dynamic+debug flag combination for check-ppr executable
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/a7473e03e24878c2192958695759f5d3d415215c" style="color: #1068bf;">a7473e03</a></strong>
<div>
<span>by Peter Trommler</span>
<i>at 2021-05-12T14:50:33-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>Hadrian: Enable SMP on powerpc64{le}

Fixes #19825
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/f78c25da05849797dab684a221923aeac244c69b" style="color: #1068bf;">f78c25da</a></strong>
<div>
<span>by Sylvain Henry</span>
<i>at 2021-05-12T21:41:43-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>Move GlobalVar macros into GHC.Utils.GlobalVars

That's the only place where they are used and they shouldn't be used
elsewhere.
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/da56ed41b62ab132db6d62637c11076985410b24" style="color: #1068bf;">da56ed41</a></strong>
<div>
<span>by Sylvain Henry</span>
<i>at 2021-05-12T21:41:43-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>Ensure assert from Control.Exception isn't used
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/bfabf94f63b6644bd32982fd13ea0c8bca9aeae4" style="color: #1068bf;">bfabf94f</a></strong>
<div>
<span>by Sylvain Henry</span>
<i>at 2021-05-12T21:41:43-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>Replace CPP assertions with Haskell functions

There is no reason to use CPP. __LINE__ and __FILE__ macros are now
better replaced with GHC's CallStack. As a bonus, assert error messages
now contain more information (function name, column).

Here is the mapping table (HasCallStack omitted):

  * ASSERT:   assert     :: Bool -> a -> a
  * MASSERT:  massert    :: Bool -> m ()
  * ASSERTM:  assertM    :: m Bool -> m ()
  * ASSERT2:  assertPpr  :: Bool -> SDoc -> a -> a
  * MASSERT2: massertPpr :: Bool -> SDoc -> m ()
  * ASSERTM2: assertPprM :: m Bool -> SDoc -> m ()
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/0ef119071347f7bc14f0fa89904b0cfd0b230ac1" style="color: #1068bf;">0ef11907</a></strong>
<div>
<span>by Sylvain Henry</span>
<i>at 2021-05-12T21:41:44-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>Fully remove HsVersions.h

Replace uses of WARN macro with calls to:

  warnPprTrace :: Bool -> SDoc -> a -> a

Remove the now unused HsVersions.h

Bump haddock submodule
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/67a5a91ef5e61f3b3c84481d8a396ed48cd5d96e" style="color: #1068bf;">67a5a91e</a></strong>
<div>
<span>by Sylvain Henry</span>
<i>at 2021-05-12T21:41:44-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>Remove useless {-# LANGUAGE CPP #-} pragmas
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/c34f4c0cf55ac5c81b6600daab2a66e0adf89f50" style="color: #1068bf;">c34f4c0c</a></strong>
<div>
<span>by Alan Zimmerman</span>
<i>at 2021-05-12T21:42:21-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>EPA: Fix incorrect SrcSpan for FamDecl

The SrcSpan for a type family declaration did not include the family
equations.

Closes #19821
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/e0ded198e9ec1c8bb7253506569e7ae47818e791" style="color: #1068bf;">e0ded198</a></strong>
<div>
<span>by Matthew Pickering</span>
<i>at 2021-05-12T21:42:57-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>ci: Fix unbound CI_MERGE_REQUEST_SOURCE_BRANCH_NAME variable

Fixes #19831
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/c6de580547728ddfc20a3a0914bc767a282c24ec" style="color: #1068bf;">c6de5805</a></strong>
<div>
<span>by John Ericson</span>
<i>at 2021-05-13T16:44:23-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>Use fix-sized order primops for fixed size boxed types

Progress towards #19026
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/fc9546caf3e16db070bfc7bb5523c38595233e26" style="color: #1068bf;">fc9546ca</a></strong>
<div>
<span>by Sylvain Henry</span>
<i>at 2021-05-13T16:45:03-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>genprimopcode: fix bootstrap errors

* Fix for unqualified Data.List import
* Fix monad instance
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/60f088b3c24253375e4ddf3ad72fea3c47f3a1b7" style="color: #1068bf;">60f088b3</a></strong>
<div>
<span>by Matthew Pickering</span>
<i>at 2021-05-19T09:10:16+01:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>CI: Disable darwin builds

They are taking over 4 hours to complete which is stalling the rest of
the merge pipeline.
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/baa969c39b511cad42ac4f806205fffffe201f5b" style="color: #1068bf;">baa969c3</a></strong>
<div>
<span>by Koz Ross</span>
<i>at 2021-05-19T23:31:51-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>Implement bitwise infix ops
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/c8564c639a9889d4d19c68f4b96c092f670b092c" style="color: #1068bf;">c8564c63</a></strong>
<div>
<span>by Alfredo Di Napoli</span>
<i>at 2021-05-19T23:32:27-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>Add some TcRn diagnostic messages

This commit converts some TcRn diagnostic into proper structured
errors.

Ported by this commit:

* Add TcRnImplicitLift

    This commit adds the TcRnImplicitLift diagnostic message and a prototype
    API to be able to log messages which requires additional err info.

* Add TcRnUnusedPatternBinds
* Add TcRnDodgyExports
* Add TcRnDodgyImports message
* Add TcRnMissingImportList
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/38faeea1a94072ffd9f459d9fe570f06bc1da84a" style="color: #1068bf;">38faeea1</a></strong>
<div>
<span>by Matthew Pickering</span>
<i>at 2021-05-19T23:33:02-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>Remove transitive information about modules and packages from interface files

This commit modifies interface files so that *only* direct information
about modules and packages is stored in the interface file.

* Only direct module and direct package dependencies are stored in the
interface files.
* Trusted packages are now stored separately as they need to be checked
  transitively.
* hs-boot files below the compiled module in the home module are stored
  so that eps_is_boot can be calculated in one-shot mode without loading
  all interface files in the home package.
* The transitive closure of signatures is stored separately

This is important for two reasons

* Less recompilation is needed, as motivated by #16885, a lot of
redundant compilation was triggered when adding new imports deep in the
module tree as all the parent interface files had to be redundantly
updated.
* Checking an interface file is cheaper because you don't have to
perform a transitive traversal to check the dependencies are up-to-date.

In the code, places where we would have used the transitive closure, we
instead compute the necessary transitive closure. The closure is not
computed very often, was already happening in checkDependencies, and
was already happening in getLinkDeps.

Fixes #16885

-------------------------
Metric Decrease:
    MultiLayerModules
    T13701
    T13719
-------------------------
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/29d104c6e6055a5190edeb2607d54dda4f0e8abd" style="color: #1068bf;">29d104c6</a></strong>
<div>
<span>by nineonine</span>
<i>at 2021-05-19T23:33:40-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>Implement :info for record pattern synonyms (#19462)
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/d45e3cda669c5822aa213d42bf7f7c551b9d1bbf" style="color: #1068bf;">d45e3cda</a></strong>
<div>
<span>by Matthew Pickering</span>
<i>at 2021-05-19T23:34:15-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>hadrian: Make copyFileLinked a bit more robust

Previously it only worked if the two files you were trying to symlink
were already in the same directory.
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/176b1305c92a10ccd0bc37c15e794946c9c1679d" style="color: #1068bf;">176b1305</a></strong>
<div>
<span>by Matthew Pickering</span>
<i>at 2021-05-19T23:34:15-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>hadrian: Build check-ppr and check-exact using normal hadrian rules when in-tree

Fixes #19606 #19607
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/3c04e7ac90eed14fc8224bc1e1d3a0b27b37bf1f" style="color: #1068bf;">3c04e7ac</a></strong>
<div>
<span>by Andreas Klebinger</span>
<i>at 2021-05-19T23:34:49-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>Fix LitRubbish being applied to values.

This fixes #19824
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/327256178e8378c9d5cfd9b1990788d7eca2294f" style="color: #1068bf;">32725617</a></strong>
<div>
<span>by Matthew Pickering</span>
<i>at 2021-05-19T23:35:24-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>Tidy: Ignore rules (more) when -fomit-interface-pragmas is on

Before this commit, the RHS of a rule would expose additional definitions, despite
the fact that the rule wouldn't get exposed so it wouldn't be possible
to ever use these definitions.

The net-result is slightly less recompilation when specialisation
introduces rules.

Related to #19836
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/10ae305e4ef05e1817ba92fb1d7a7079612c78a3" style="color: #1068bf;">10ae305e</a></strong>
<div>
<span>by Alan Zimmerman</span>
<i>at 2021-05-19T23:35:59-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>EPA: Remove duplicate annotations from HsDataDefn

They are repeated in the surrounding DataDecl and FamEqn.

Updates haddock submodule

Closes #19834
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/8e7f02eac64240f1dc9d3dba01e0a7b34982e01f" style="color: #1068bf;">8e7f02ea</a></strong>
<div>
<span>by Richard Eisenberg</span>
<i>at 2021-05-19T23:36:35-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>Point posters to ghc-proposals</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/6844ead4f45620f0e9573762e9a892d1ae1609f4" style="color: #1068bf;">6844ead4</a></strong>
<div>
<span>by Matthew Pickering</span>
<i>at 2021-05-19T23:37:09-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>testsuite: Don't copy .hi-boot and .o-boot files into temp dir
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/e87b8e108303634af8a7247037d50ab10456c189" style="color: #1068bf;">e87b8e10</a></strong>
<div>
<span>by Sebastian Graf</span>
<i>at 2021-05-19T23:37:44-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>CPR: Detect constructed products in `runRW#` apps (#19822)

In #19822, we realised that the Simplifier's new habit of floating cases into
`runRW#` continuations inhibits CPR analysis from giving key functions of `text`
the CPR property, such as `singleton`.

This patch fixes that by anticipating part of !5667 (Nested CPR) to give
`runRW#` the proper CPR transformer it now deserves: Namely, `runRW# (\s -> e)`
should have the CPR property iff `e` has it.

The details are in `Note [Simplification of runRW#]` in GHC.CoreToStg.Prep.

The output of T18086 changed a bit: `panic` (which calls `runRW#`) now has
`botCpr`. As outlined in Note [Bottom CPR iff Dead-Ending Divergence], that's
OK.

Fixes #19822.

Metric Decrease:
    T9872d
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/d3ef2dc2bdfec457d5e0973f3e8f3e92767c16af" style="color: #1068bf;">d3ef2dc2</a></strong>
<div>
<span>by Baldur Blöndal</span>
<i>at 2021-05-19T23:38:20-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>Add pattern TypeRep (#19691), exported by Type.Reflection.
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/f192e623f579e09b7b5442cc707a40482b76e81e" style="color: #1068bf;">f192e623</a></strong>
<div>
<span>by Sylvain Henry</span>
<i>at 2021-05-19T23:38:58-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>Cmm: fix sinking after suspendThread

Suppose a safe call: myCall(x,y,z)

It is lowered into three unsafe calls in Cmm:

  r = suspendThread(...);
  myCall(x,y,z);
  resumeThread(r);

Consider the following situation for myCall arguments:

  x = Sp[..] -- stack
  y = Hp[..] -- heap
  z = R1     -- global register
  r = suspendThread(...);
  myCall(x,y,z);
  resumeThread(r);

The sink pass assumes that unsafe calls clobber memory (heap and stack),
hence x and y assignments are not sunk after `suspendThread`. The sink
pass also correctly handles global register clobbering for all unsafe
calls, except `suspendThread`!

`suspendThread` is special because it releases the capability the thread
is running on. Hence the sink pass must also take into account global
registers that are mapped into memory (in the capability).

In the example above, we could get:

  r = suspendThread(...);
  z = R1
  myCall(x,y,z);
  resumeThread(r);

But this transformation isn't valid if R1 is (BaseReg->rR1) as BaseReg
is invalid between suspendThread and resumeThread. This caused argument
corruption at least with the C backend ("unregisterised") in #19237.

Fix #19237
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/df4a0a53691cd833f54eb443401243dd9c964196" style="color: #1068bf;">df4a0a53</a></strong>
<div>
<span>by Sylvain Henry</span>
<i>at 2021-05-19T23:39:37-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>Bignum: bump to version 1.1 (#19846)
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/d48b7e5c2fae5db1973a767be45aba82b2aa727c" style="color: #1068bf;">d48b7e5c</a></strong>
<div>
<span>by Shayne Fletcher</span>
<i>at 2021-05-19T23:40:12-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>Changes to HsRecField'
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/441fdd6ce8af823e99fd260ed0f96b99e457bce5" style="color: #1068bf;">441fdd6c</a></strong>
<div>
<span>by Adam Sandberg Ericsson</span>
<i>at 2021-05-19T23:40:47-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>driver: check if clang is the assembler when passing clang specific arguments (#19827)

Previously we assumed that the assembler was the same as the c compiler,
but we allow setting them to different programs with -pgmc and -pgma.
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/6a577cf0edb38577e703c9523a4307ae9fa7576d" style="color: #1068bf;">6a577cf0</a></strong>
<div>
<span>by Peter Trommler</span>
<i>at 2021-05-19T23:41:22-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>PPC NCG: Fix unsigned compare with 16-bit constants

Fixes #19852 and #19609
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/c4099b0908e3f4ae04312ca82af147eb1585cd09" style="color: #1068bf;">c4099b09</a></strong>
<div>
<span>by Matthew Pickering</span>
<i>at 2021-05-19T23:41:57-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>Make setBndrsDemandInfo work with only type variables

Fixes #19849

Co-authored-by: Krzysztof Gogolewski <krzysztof.gogolewski@tweag.io>
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/4b5de9542bc73b6b9fc14400e6cc77b0410f5f6f" style="color: #1068bf;">4b5de954</a></strong>
<div>
<span>by Matthew Pickering</span>
<i>at 2021-05-19T23:42:32-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>constant folding: Make shiftRule for Word8/16/32# types return correct type

Fixes #19851
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/82b097b3d43521f775edb560f97eb37862de7a43" style="color: #1068bf;">82b097b3</a></strong>
<div>
<span>by Sylvain Henry</span>
<i>at 2021-05-19T23:43:09-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>Remove wired-in names hs-boot check bypass (#19855)

The check bypass is no longer necessary and the check would have avoided #19638.
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/939a56e780b7cc55cf49b52c4222e0e8061e99b1" style="color: #1068bf;">939a56e7</a></strong>
<div>
<span>by Baldur Blöndal</span>
<i>at 2021-05-19T23:43:46-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>Added new regresion test for #18036 from ticket #19865.
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/43139064a95220cfa8b633840a76eb75d5affd0d" style="color: #1068bf;">43139064</a></strong>
<div>
<span>by Ben Gamari</span>
<i>at 2021-05-20T11:36:55-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>gitlab-ci: Add Alpine job linking against gmp integer backend

As requested by Michael Snoyman.
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/7c066734705048edb5b5b0afc30acea0805ec18d" style="color: #1068bf;">7c066734</a></strong>
<div>
<span>by Roland Senn</span>
<i>at 2021-05-20T11:37:32-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>Use pprSigmaType to print GHCi debugger Suspension Terms (Fix #19355)

In the GHCi debugger use the function `pprSigmaType` to print out
Suspension Terms. The function `pprSigmaType` respect the flag
`-f(no-)print-explicit-foralls` and so it fixes #19355.

Switch back output of existing tests to default mode (no explicit foralls).
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/aac87bd388547e28aca1c19e7436ff5fa9245f04" style="color: #1068bf;">aac87bd3</a></strong>
<div>
<span>by Alfredo Di Napoli</span>
<i>at 2021-05-20T18:08:37-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>Extensible Hints for diagnostic messages

This commit extends the GHC diagnostic hierarchy with a `GhcHint` type,
modelling helpful suggestions emitted by GHC which can be used to deal
with a particular warning or error.

As a direct consequence of this, the `Diagnostic` typeclass has been extended
with a `diagnosticHints` method, which returns a `[GhcHint]`. This means
that now we can clearly separate out the printing of the diagnostic
message with the suggested fixes.

This is done by extending the `printMessages` function in
`GHC.Driver.Errors`.

On top of that, the old `PsHint` type has been superseded by the new `GhcHint`
type, which de-duplicates some hints in favour of a general `SuggestExtension`
constructor that takes a `GHC.LanguageExtensions.Extension`.
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/649d63db1dc543b7cbba22e14375ff2766edd664" style="color: #1068bf;">649d63db</a></strong>
<div>
<span>by Divam</span>
<i>at 2021-05-20T18:09:13-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>Add tests for code generation options specified via OPTIONS_GHC in multi module compilation
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/5dcb8619f67b8f9a30bde0519a14d3b8c6b4ee1f" style="color: #1068bf;">5dcb8619</a></strong>
<div>
<span>by Matthías Páll Gissurarson</span>
<i>at 2021-05-20T18:09:50-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>Add exports to GHC.Tc.Errors.Hole (fixes #19864)
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/703c0c3c13cad700ae998de062134119bd33071f" style="color: #1068bf;">703c0c3c</a></strong>
<div>
<span>by Sylvain Henry</span>
<i>at 2021-05-20T18:10:31-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>Bump libffi submodule to libffi-3.3 (#16940)
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/d9eb8bbf38cda5b6c885fad8ae8addea3325ce42" style="color: #1068bf;">d9eb8bbf</a></strong>
<div>
<span>by Jakob Brünker</span>
<i>at 2021-05-21T06:22:47-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>Only suggest names that make sense (#19843)

* Don't show suggestions for similar variables when a data constructor
  in a pattern is not in scope.

* Only suggest record fields when a record field for record creation or
  updating is not in scope.

* Suggest similar record fields when a record field is not in scope with
  -XOverloadedRecordDot.

* Show suggestions for data constructors if a type constructor or type
  is not in scope, but only if -XDataKinds is enabled.

Fixes #19843.
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/ec10cc972ad685e8c2df519a5a300c229de67fd6" style="color: #1068bf;">ec10cc97</a></strong>
<div>
<span>by Matthew Pickering</span>
<i>at 2021-05-21T06:23:26-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>hadrian: Reduce verbosity on failed testsuite run

When the testsuite failed before it would print a big exception which
gave you the very long command line which was used to invoke the
testsuite. By capturing the exit code and rethrowing the exception, the
error is must less verbose:

```
Error when running Shake build system:
  at want, called at src/Main.hs:104:30 in main:Main
* Depends on: test
* Raised the exception:
user error (tests failed)
```
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/f5f741673079ea58d204acea8dd363dd300b157e" style="color: #1068bf;">f5f74167</a></strong>
<div>
<span>by Matthew Pickering</span>
<i>at 2021-05-21T06:24:02-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>Only run armv7-linux-deb10 build nightly
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/6eed426bf24fe4ddc4c4802ff44b949e74f9d7ee" style="color: #1068bf;">6eed426b</a></strong>
<div>
<span>by Sylvain Henry</span>
<i>at 2021-05-21T06:24:44-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>SysTools: make file copy more efficient
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/0da85d41ee6bc7f941cdbee8cebd5b57fa35396f" style="color: #1068bf;">0da85d41</a></strong>
<div>
<span>by Alan Zimmerman</span>
<i>at 2021-05-21T15:05:44-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>EPA: Fix explicit specificity and unicode linear arrow annotations

Closes #19839
Closes #19840
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/5ab174e4fa12740aecdcfe06ffb4ca16724a4bae" style="color: #1068bf;">5ab174e4</a></strong>
<div>
<span>by Alan Zimmerman</span>
<i>at 2021-05-21T15:06:20-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>Remove Maybe from Context in HsQualTy

Updates haddock submodule

Closes #19845
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/b4d240d3c0a238514db5b4750ba70b7569f1ed02" style="color: #1068bf;">b4d240d3</a></strong>
<div>
<span>by Matthew Pickering</span>
<i>at 2021-05-22T00:07:42-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>hadrian: Reorganise modules so KV parser can be used to define transformers
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/8c871c07f538045b9bb7bba5dad4896c8def535b" style="color: #1068bf;">8c871c07</a></strong>
<div>
<span>by Matthew Pickering</span>
<i>at 2021-05-22T00:07:42-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>hadrian: Add omit_pragmas transformer

This transformer builds stage2 GHC with -fomit-interface-pragmas which
can greatly reduce the amount of rebuilding but still allows most the
tests to pass.
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/c680691252660995c09bb953a7dd046056d030a2" style="color: #1068bf;">c6806912</a></strong>
<div>
<span>by Matthew Pickering</span>
<i>at 2021-05-22T00:08:18-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>Remove ANN pragmas in check-ppr and check-exact

This fixes the `devel2+werror` build combo as stage1 does not have TH
enabled.

```
utils/check-exact/Preprocess.hs:51:1: error: [-Werror]
    Ignoring ANN annotations, because this is a stage-1 compiler without -fexternal-interpreter or doesn't support GHCi
   |
51 | {-# ANN module ("HLint: ignore Reduce duplication" :: String) #-}
   | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
```
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/e2d4f241293347926e6fb764ff3fe362add7d40e" style="color: #1068bf;">e2d4f241</a></strong>
<div>
<span>by PHO</span>
<i>at 2021-05-22T00:08:55-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>Support NetBSD/aarch64 via LLVM codegen

Only adding "aarch64-unknown-netbsd" to gen-data-layout.sh was sufficient to get it working. No other changes were strictly required.
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/ef4d2999a200f22c864d7c1a2bdfbfd726a0f849" style="color: #1068bf;">ef4d2999</a></strong>
<div>
<span>by nineonine</span>
<i>at 2021-05-22T00:09:32-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>Add regression test for #19287
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/0b1eed74e8ad5194152ed656ac3e4a547726b70a" style="color: #1068bf;">0b1eed74</a></strong>
<div>
<span>by Shayne Fletcher</span>
<i>at 2021-05-23T08:02:58+10:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>Change representation of field selector occurences

- Change the names of the fields in in `data FieldOcc`
- Renames `HsRecFld` to `HsRecSel`
- Replace `AmbiguousFieldOcc p` in `HsRecSel` with `FieldOcc p`
- Contains a haddock submodule update

The primary motivation of this change is to remove
`AmbiguousFieldOcc`. This is one of a suite of changes improving how
record syntax (most notably record update syntax) is represented in
the AST.
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/406cd90b8863da640a9835d5d9972fff1c18dcd7" style="color: #1068bf;">406cd90b</a></strong>
<div>
<span>by Alan Zimmerman</span>
<i>at 2021-05-23T02:07:36-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>EPA: AnnAt missing for type application in patterns

Ensure that the exact print annotations accurately record the `@` for
code like

    tyApp :: Con k a -> Proxy a
    tyApp (Con @kx @ax (x :: Proxy ax)) = x :: Proxy (ax :: kx)

Closes #19850
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/82c6a9394b0457e77bc8b03e3594111b51508469" style="color: #1068bf;">82c6a939</a></strong>
<div>
<span>by Vladislav Zavialov</span>
<i>at 2021-05-23T18:53:13-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>Pre-add test case for #19156
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/d82d38239f232c3970a8641bb6d47d436e3cbc11" style="color: #1068bf;">d82d3823</a></strong>
<div>
<span>by Vladislav Zavialov</span>
<i>at 2021-05-23T18:53:13-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>Introduce Strict.Maybe, Strict.Pair (#19156)

This patch fixes a space leak related to the use of
Maybe in RealSrcSpan by introducing a strict variant
of Maybe.

In addition to that, it also introduces a strict pair
and uses the newly introduced strict data types in a few
other places (e.g. the lexer/parser state) to reduce
allocations.

Includes a regression test.
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/f8c6fce4a09762adea6009540e523c2b984b2978" style="color: #1068bf;">f8c6fce4</a></strong>
<div>
<span>by Vladislav Zavialov</span>
<i>at 2021-05-23T18:53:50-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>HsToken for HsPar, ParPat, HsCmdPar (#19523)

This patch is a first step towards a simpler design for exact printing.
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/fc23ae8958fdf197f1df4239d85682593e9f54c5" style="color: #1068bf;">fc23ae89</a></strong>
<div>
<span>by nineonine</span>
<i>at 2021-05-24T00:14:53-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>Add regression test for #9985
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/3e4ef4b2d05ce0bdd70abd96066f0376dc0e13d6" style="color: #1068bf;">3e4ef4b2</a></strong>
<div>
<span>by Sylvain Henry</span>
<i>at 2021-05-24T00:15:33-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>Move warning flag handling into Flags module

I need this to make the Logger independent of DynFlags.

Also fix copy-paste errors: Opt_WarnNonCanonicalMonadInstances
was associated to "noncanonical-monadfail-instances" (MonadFailInstances vs
MonadInstances).

In the process I've also made the default name for each flag more
explicit.
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/098c7794953ee11334b6a450e6eda598a7ee09dc" style="color: #1068bf;">098c7794</a></strong>
<div>
<span>by Matthew Pickering</span>
<i>at 2021-05-24T09:47:52-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>check-{ppr/exact}: Rewrite more directly to just parse files

There was quite a large amount of indirection in these tests, so I have
rewritten them to just directly parse the files rather than making a
module graph and entering other twisty packages.
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/a3665a7aa5db8a77809b8e2246b8cd7eee86935c" style="color: #1068bf;">a3665a7a</a></strong>
<div>
<span>by Matthew Pickering</span>
<i>at 2021-05-24T09:48:27-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>docs: Fix example in toIntegralSized

Thanks to Mathnerd3141 for the fixed example.

Fixes #19880
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/f243acf4d7322a15e9eb6e432c490a4d6db741df" style="color: #1068bf;">f243acf4</a></strong>
<div>
<span>by Divam</span>
<i>at 2021-05-25T05:50:51-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>Refactor driver code; de-duplicate and split APIs (#14095, !5555)

This commit does some de-duplication of logic between the one-shot and --make
modes, and splitting of some of the APIs so that its easier to do the
fine-grained parallelism implementation. This is the first part of the
implementation plan as described in #14095

* compileOne now uses the runPhase pipeline for most of the work.
  The Interpreter backend handling has been moved to the runPhase.

* hscIncrementalCompile has been broken down into multiple APIs.

* haddock submodule bump: Rename of variables in html-test ref:
  This is caused by a change in ModDetails in case of NoBackend.
  Now the initModDetails is used to recreate the ModDetails from interface and
  in-memory ModDetails is not used.
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/6ce8e68753da41a444021e84405c153eb3d70a67" style="color: #1068bf;">6ce8e687</a></strong>
<div>
<span>by Zubin Duggal</span>
<i>at 2021-05-25T05:51:26-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>Make tcIfaceCompleteMatch lazier.
Insufficient lazyness causes a loop while typechecking
COMPLETE pragmas from interfaces (#19744).
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/8f22af8cbd4365382555cb8db676d87d02256d8d" style="color: #1068bf;">8f22af8c</a></strong>
<div>
<span>by Moritz Angermann</span>
<i>at 2021-05-25T05:52:02-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>[ci] darwin uses hadrian

Make is bad, and really slow, and we should just stop using it
outright, or kill hadrian. Let's rather go for hadrian all the
way and phase out make.
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/4d100f68e6ab76fbfc45515828dcee4e66d924cb" style="color: #1068bf;">4d100f68</a></strong>
<div>
<span>by Moritz Angermann</span>
<i>at 2021-05-25T05:52:02-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>[ci] no more brew or pip

We pull dependencies (reliably) via nix, and open up nix where
needed.
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/c67c9e8239a767aa870c1b7aa2adf2a363205837" style="color: #1068bf;">c67c9e82</a></strong>
<div>
<span>by Moritz Angermann</span>
<i>at 2021-05-25T05:52:02-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>[bindist] inject xattr -c -r . into the darwin install phase

This is so awful, but at least it might get the job done.
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/544414ba604b13e0992ad87e90b8bdf45c43011c" style="color: #1068bf;">544414ba</a></strong>
<div>
<span>by Moritz Angermann</span>
<i>at 2021-05-25T05:52:02-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>[ci/darwin] use system provided iconv and curses

Also make sure to be able to build with non-apple-clang, while using apple's SDK on macOS
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/527543fc7c6eecd35573090ae64880bdf17c0812" style="color: #1068bf;">527543fc</a></strong>
<div>
<span>by Moritz Angermann</span>
<i>at 2021-05-25T05:52:02-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>[ci/darwin] cabal-cache dir can be specified per arch

Also while we are at it, run shellcheck on ci.sh
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/7b1eeabf5a2f27fc428b5154d5dbc81bcb6ea9e6" style="color: #1068bf;">7b1eeabf</a></strong>
<div>
<span>by Moritz Angermann</span>
<i>at 2021-05-25T05:52:02-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>[ci/darwin] set SH to /bin/bash

This should prevent some other `bash` to leak into the binary distributions.
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/f101e019bc2a73f14f9e9083f4210001c359c813" style="color: #1068bf;">f101e019</a></strong>
<div>
<span>by Moritz Angermann</span>
<i>at 2021-05-25T05:52:02-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>[hadrian] Do not add full tool paths

This prohuibits CC=clang to work generically and will always bake
in the clang that is found on the build machine in PATH, what ever
clang that might be. It might not even be on the final host.
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/c4b4b1d746a84f445a03da650f81683a527a319e" style="color: #1068bf;">c4b4b1d7</a></strong>
<div>
<span>by Moritz Angermann</span>
<i>at 2021-05-25T05:52:02-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>[ci] faster pipeline
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/50c3061db2d8f8a179519eba8c989f492dd5baa5" style="color: #1068bf;">50c3061d</a></strong>
<div>
<span>by Moritz Angermann</span>
<i>at 2021-05-25T05:52:02-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>[hadrian] Properly build hsc2hs wrapper
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/11bdf3cdd6efb406839a0ebe33455908a66df805" style="color: #1068bf;">11bdf3cd</a></strong>
<div>
<span>by Matthew Pickering</span>
<i>at 2021-05-25T05:52:02-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>Revert "hadrian: Don't always links against libffi"

This reverts commit 673ff667c98eafc89e6746d1ac69d33b8330d755.
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/2023b344a7567492881745609c494a9427dc8c30" style="color: #1068bf;">2023b344</a></strong>
<div>
<span>by Richard Eisenberg</span>
<i>at 2021-05-25T09:08:36-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>Add 9.2 release note about linear case

This is part of #18738

[skip ci]
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/cdbce8fc22448837e53515946f16e9571e06f412" style="color: #1068bf;">cdbce8fc</a></strong>
<div>
<span>by Alfredo Di Napoli</span>
<i>at 2021-05-26T16:03:15-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>Support new parser types in GHC

This commit converts the lexers and all the parser machinery to use the
new parser types and diagnostics infrastructure. Furthermore, it cleans
up the way the parser code was emitting hints.

As a result of this systematic approach, the test output of the
`InfixAppPatErr` and `T984` tests have been changed. Previously they
would emit a `SuggestMissingDo` hint, but this was not at all helpful in
resolving the error, and it was even confusing by just looking at the
original program that triggered the errors.

Update haddock submodule
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/9faafb0aaff04e86a58b9e108f84618b12f2057c" style="color: #1068bf;">9faafb0a</a></strong>
<div>
<span>by Pepe Iborra</span>
<i>at 2021-05-26T16:03:52-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>Avoid fingerprinting the absolute path to the source file

This change aims to make source files relocatable w.r.t. to the interface files produced by the compiler.
This is so that we can download interface files produced by a cloud build system and then reuse them in a local ghcide session

catch another case of implicit includes

actually use the implicit quote includes

add another missing case

recomp020

test that .hi files are reused even if .hs files are moved to a new location

Added recomp021 to record behaviour with non implicit includes

add a note

additional pointer to the note

Mention  #16956 in Note
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/03d69e4bb6b92ccd8238bebd9cff68da23741f49" style="color: #1068bf;">03d69e4b</a></strong>
<div>
<span>by Andreas Klebinger</span>
<i>at 2021-05-27T02:35:11-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>Enable strict dicts by default at -O2.

In the common case this is a straight performance win
at a compile time cost so we enable it at -O2.

In rare cases it can lead to compile time regressions
because of changed inlining behaviour. Which can very
rarely also affect runtime performance.

Increasing the inlining threshold can help to avoid this
which is documented in the user guide.

In terms of measured results this reduced instructions executed
for nofib by 1%.
However for some cases (e.g. Cabal) enabling this
by default increases compile time by 2-3% so we enable it only
at -O2 where it's clear that a user is willing to trade compile
time for runtime.

Most of the testsuite runs without -O2 so there are few
perf changes.

Increases:
T12545/T18698: We perform more WW work because dicts are now treated strict.
T9198: Also some more work because functions are now subject to W/W

Decreases:
T14697: Compiling empty modules. Probably because of changes inside ghc.
T9203:  I can't reproduce this improvement locally. Might be spurious.

-------------------------
Metric Decrease:
     T12227
     T14697
     T9203
Metric Increase:
     T9198
     T12545
     T18698a
     T18698b
-------------------------
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/9935e99c893b9d5eb0a879116144cf62cc986e7d" style="color: #1068bf;">9935e99c</a></strong>
<div>
<span>by Shayne Fletcher</span>
<i>at 2021-05-27T02:35:47-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>Change representation of HsGetField and HsProjection

Another change in a series improving record syntax in the AST. The key
change in this commit is the renaming of `HsFieldLabel` to `DotFieldOcc`.
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/ce1b8f4208530fe6449506ba22e3a05048f81564" style="color: #1068bf;">ce1b8f42</a></strong>
<div>
<span>by Andreas Klebinger</span>
<i>at 2021-05-27T02:36:23-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>Improve deriveConstants error message.

This fixes #19823
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/6de8ac892a8001d1a0f00c7b44a731f1f9f5c0b1" style="color: #1068bf;">6de8ac89</a></strong>
<div>
<span>by Alan Zimmerman</span>
<i>at 2021-05-27T19:25:24+01:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>[EPA] exact print linear arrows.

Closes #19903

Note: the normal ppr does not reproduce unicode linear arrows, so that
part of the normal printing test is ommented out in the Makefile for
this test. See #18846
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/f74204c4f6f3f386c9688ca45a893f68894ecacd" style="color: #1068bf;">f74204c4</a></strong>
<div>
<span>by Boris Lykah</span>
<i>at 2021-05-28T15:32:01-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>Document release when TypeApplications allowed declaring variables as inferred
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/df997fac54bbadd399593f49228b6292e71145f1" style="color: #1068bf;">df997fac</a></strong>
<div>
<span>by Sylvain Henry</span>
<i>at 2021-05-28T15:32:44-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>Use quotRemWord in showWord

Using the following high-quality benchmark (with -O2):

  main :: IO ()
  main = do
    let
      go 0         = ""
      go n@(W# n#) = showWord n# (go (n -1))
    print $ length (go 10000000)

I get the following performance results:

- remWord+quotRem: 0,76s user 0,00s system 99% cpu 0,762 total
- quotRemWord:     0,45s user 0,01s system 99% cpu 0,456 total

Note that showSignedInt already uses quotRemInt.
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/5ae070f168ba7f9679b045ea4b8f30917f47f800" style="color: #1068bf;">5ae070f1</a></strong>
<div>
<span>by Thomas Winant</span>
<i>at 2021-05-29T05:04:00-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>Add -Wmissing-exported-pattern-synonym-signatures

After !4741, it was no longer possible to silence a warning about a missing
pattern synonym signature if the `-Wmissing-signatures` flag was on.

Restore the previous semantics while still adhering to the principle "enabling
an additional warning flag should never make prior warnings disappear".

For more symmetry and granularity, introduce
`-Wmissing-exported-pattern-synonym-signatures`.

See Note [Missing signatures] for an overview of all flags involved.
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/28e0dca2e93dabee88f28ce38282dbcb8c62ab99" style="color: #1068bf;">28e0dca2</a></strong>
<div>
<span>by Luite Stegeman</span>
<i>at 2021-05-29T05:04:39-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>Work around LLVM backend overlapping register limitations

The stg_ctoi_t and stg_ret_t procedures which convert unboxed
tuples between the bytecode an native calling convention were
causing a panic when using the LLVM backend.

Fixes #19591
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/6412bf6e1e8c70ae96203190f460be243d961c59" style="color: #1068bf;">6412bf6e</a></strong>
<div>
<span>by parsonsmatt</span>
<i>at 2021-05-29T05:05:18-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>Add `newDeclarationGroup` and provide documentation in reifyInstances and isInstance
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/99b5cce97dd56dbf993b9a12ebc6c126a100a780" style="color: #1068bf;">99b5cce9</a></strong>
<div>
<span>by parsonsmatt</span>
<i>at 2021-05-29T05:05:18-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>Address review comments, export from TH
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/76902415a4758d627a9606e822ab7d1305554e0b" style="color: #1068bf;">76902415</a></strong>
<div>
<span>by parsonsmatt</span>
<i>at 2021-05-29T05:05:18-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>Apply 2 suggestion(s) to 1 file(s)</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/0c0e18558fb068cc38d48a4faba00cce8755727a" style="color: #1068bf;">0c0e1855</a></strong>
<div>
<span>by parsonsmatt</span>
<i>at 2021-05-29T05:05:18-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>sigh
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/10f48e2296a171dd3e8ad5df47dce67c25317b95" style="color: #1068bf;">10f48e22</a></strong>
<div>
<span>by Matthew Pickering</span>
<i>at 2021-05-29T05:05:55-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>ghci: Enable -fkeep-going by default

This also demotes the error message about -fkeep-going to a trace
message which matches the behaviour of other build systems (such as
cabal-install and nix) which don't print any message like this on a
failure.

We want to remove the stable module check in a future patch, which is an
approximation of `-fkeep-going`. At the moment this change shouldn't do
very much.
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/492b2dc53f3d0d61d78a31a749aa8b364bebb891" style="color: #1068bf;">492b2dc5</a></strong>
<div>
<span>by Zubin Duggal</span>
<i>at 2021-05-29T05:06:32-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>Fix Note [Positioning of forkM]
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/453877600b78fbb8d53ebc1754e79879456b8419" style="color: #1068bf;">45387760</a></strong>
<div>
<span>by Sylvain Henry</span>
<i>at 2021-05-29T10:18:01-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>Bignum: match on DataCon workers in rules (#19892)

We need to match on DataCon workers for the rules to be triggered.

T13701 ghc/alloc decreases by ~2.5% on some archs

Metric Decrease:
    T13701
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/0f8872ecac49b2e4075e64ac93269a4a78d69cff" style="color: #1068bf;">0f8872ec</a></strong>
<div>
<span>by Sylvain Henry</span>
<i>at 2021-05-29T10:18:01-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>Fix and slight improvement to datacon worker/wrapper notes
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/6db8a0f76ec45d47060e28bb303e9eef60bdb16b" style="color: #1068bf;">6db8a0f7</a></strong>
<div>
<span>by Richard Eisenberg</span>
<i>at 2021-05-29T10:18:37-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>Rip GHC.Tc.Solver.Monad asunder (only)

This creates new modules GHC.Tc.Solver.InertSet and
GHC.Tc.Solver.Types. The Monad module is still pretty
big, but this is an improvement. Moreover, it means
that GHC.HsToCore.Pmc.Solver.Types no longer depends
on the constraint solver (it now depends on GHC.Tc.Solver.InertSet),
making the error-messages work easier.

This patch thus contributes to #18516.
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/42c611cffb2387627f80e790f1d175ebad7d9992" style="color: #1068bf;">42c611cf</a></strong>
<div>
<span>by Ben Gamari</span>
<i>at 2021-05-29T11:57:51-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>Split GHC.Utils.Monad.State into .Strict and .Lazy
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/ec64624768735df24f1b6fe24a2b2e59172cc613" style="color: #1068bf;">ec646247</a></strong>
<div>
<span>by Ben Gamari</span>
<i>at 2021-05-29T11:58:45-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>Use GHC's State monad consistently

GHC's internal State monad benefits from oneShot annotations on its
state, allowing for more aggressive eta expansion.

We currently don't have monad transformers with the same optimisation,
so we only change uses of the pure State monad here.

See #19657 and 19380.

Metric Decrease:
    hie002
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/21bdd9b74bd4fb190785b75b76e6d1f5ec0ba157" style="color: #1068bf;">21bdd9b7</a></strong>
<div>
<span>by Ben Gamari</span>
<i>at 2021-05-29T11:58:52-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>StgM: Use ReaderT rather than StateT
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/6b6c4b9ab0f773011a04c19f3cd5131a1aab2a41" style="color: #1068bf;">6b6c4b9a</a></strong>
<div>
<span>by Viktor Dukhovni</span>
<i>at 2021-06-02T04:38:47-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>Improve wording of fold[lr]M documentation.

The sequencing of monadic effects in foldlM and foldrM was described as
respectively right-associative and left-associative, but this could be
confusing, as in essence we're just composing Kleisli arrows, whose
composition is simply associative.

What matters therefore is the order of sequencing of effects, which
can be described more clearly without dragging in associativity as
such.

This avoids describing these folds as being both left-to-right and
right-to-left depending on whether we're tracking effects or operator
application.  The new text should be easier to understand.
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/fcd124d5c7c1c4ea8488587f65112b7a66b7da83" style="color: #1068bf;">fcd124d5</a></strong>
<div>
<span>by Roland Senn</span>
<i>at 2021-06-02T04:39:23-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>Allow primops in a :print (and friends) command. Fix #19394

* For primops from `GHC.Prim` lookup the HValues in `GHC.PrimopWrappers`.
* Add short error messages if a user tries to use a *Non-Id* value or a
  `pseudoop` in a `:print`, `:sprint` or `force`command.
* Add additional test cases for `Magic Ids`.
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/adddf2484b2bef05ea8d7b17b926e874d9d2e833" style="color: #1068bf;">adddf248</a></strong>
<div>
<span>by Zubin Duggal</span>
<i>at 2021-06-02T04:39:58-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>Fail before checking instances in checkHsigIface if exports don't match (#19244)
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/c5a9e32ee0b372c2a044bce0e9009dcff21ee909" style="color: #1068bf;">c5a9e32e</a></strong>
<div>
<span>by Divam</span>
<i>at 2021-06-02T04:40:34-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>Specify the reason for import for the backpack's extra imports
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/7d8e1549b908ebb67bfa47d782914fe364e7015d" style="color: #1068bf;">7d8e1549</a></strong>
<div>
<span>by Vladislav Zavialov</span>
<i>at 2021-06-02T04:41:08-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>Disallow linear arrows in GADT records (#19928)

Before this patch, GHC used to silently accept programs such as the
following:

        data R where
          D1 :: { d1 :: Int } %1 -> R

The %1 annotation was completely ignored. Now it is a proper error.

One remaining issue is that in the error message (⊸) turns
into (%1 ->). This is to be corrected with upcoming exactprint updates.
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/437a6ccd68f3ecda5b6a6caeac6b8c39b51815db" style="color: #1068bf;">437a6ccd</a></strong>
<div>
<span>by Matthew Pickering</span>
<i>at 2021-06-02T16:23:53-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>hadrian: Speed up lint:base rule

The rule before decided to build the whole stage1 compiler, but this was
unecessary as we were just missing one header file which can be
generated directly by calling configure.

Before: 18 minutes
After: 54s
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/de33143cb0e38a91bd866470d5d4da9e91ee79f3" style="color: #1068bf;">de33143c</a></strong>
<div>
<span>by Matthew Pickering</span>
<i>at 2021-06-02T16:23:53-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>Run both lint jobs together
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/852a12c82830f25b2d7db5a4ab9d098c71203905" style="color: #1068bf;">852a12c8</a></strong>
<div>
<span>by Matthew Pickering</span>
<i>at 2021-06-02T16:23:53-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>CI: Don't explicitly build hadrian before using run_hadrian

This causes hadrian to be built twice because the second time uses a
different index state.
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/b66cf8ad218264593efc8bceddc86c53ce89bbeb" style="color: #1068bf;">b66cf8ad</a></strong>
<div>
<span>by Matthew Pickering</span>
<i>at 2021-06-02T16:24:27-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>Fix infinite looping in hptSomeModulesBelow

When compiling Agda we entered into an infinite loop as the stopping
condition was a bit wrong in hptSomeModulesBelow.

The bad situation was something like

* We would see module A (NotBoot) and follow it dependencies
* Later on we would encounter A (Boot) and follow it's dependencies,
  because the lookup would not match A (NotBoot) and A (IsBoot)
* Somewhere in A (Boot)s dependencies, A (Boot) would appear again and
  lead us into an infinite loop.

Now the state marks whether we have been both variants (IsBoot and
NotBoot) so we don't follow dependencies for A (Boot) many times.
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/b585aff0608f5c6db3219ff4832ee02ac9e9520b" style="color: #1068bf;">b585aff0</a></strong>
<div>
<span>by Sebastian Graf</span>
<i>at 2021-06-02T23:06:18-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>WW: Mark absent errors as diverging again

As the now historic part of `NOTE [aBSENT_ERROR_ID]` explains, we used to have
`exprIsHNF` respond True to `absentError` and give it a non-bottoming demand
signature, in order to perform case-to-let on certain `case`s we used to emit
that scrutinised `absentError` (Urgh).

What changed, why don't we emit these questionable absent errors anymore?
The absent errors in question filled in for binders that would end up in
strict fields after being seq'd. Apparently, the old strictness analyser would
give these binders an absent demand, but today we give them head-strict demand
`1A` and thus don't replace with absent errors at all.

This fixes items (1) and (2) of #19853.
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/79d12d34ad7177d33b191305f2c0157349f97355" style="color: #1068bf;">79d12d34</a></strong>
<div>
<span>by Shayne Fletcher</span>
<i>at 2021-06-02T23:06:52-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>CountDeps: print graph of module dependencies in dot format

The tests `CountParserDeps.hs` and `CountAstDeps.hs` are implemented
by calling `CountDeps`. In this MR, `CountDeps.printDeps` is updated
such tat by uncommenting a line, you can print a module's dependency
graph showing what includes what. The output is in a format suitable
for use with graphviz.
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/25977ab542a30df4ae71d9699d015bcdd1ab7cfb" style="color: #1068bf;">25977ab5</a></strong>
<div>
<span>by Matthew Pickering</span>
<i>at 2021-06-03T08:46:47+01:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>Driver Rework Patch

This patch comprises of four different but closely related ideas. The
net result is fixing a large number of open issues with the driver
whilst making it simpler to understand.

1. Use the hash of the source file to determine whether the source file
has changed or not. This makes the recompilation checking more robust to
modern build systems which are liable to copy files around changing
their modification times.

2. Remove the concept of a "stable module", a stable module was one
where the object file was older than the source file, and all transitive
dependencies were also stable. Now we don't rely on the modification
time of the source file, the notion of stability is moot.

3. Fix TH/plugin recompilation after the removal of stable modules. The
TH recompilation check used to rely on stable modules. Now there is a
uniform and simple way, we directly track the linkables which were
loaded into the interpreter whilst compiling a module. This is an
over-approximation but more robust wrt package dependencies changing.

4. Fix recompilation checking for dynamic object files. Now we actually
check if the dynamic object file exists when compiling with -dynamic-too

Fixes #19774 #19771 #19758 #17434 #11556 #9121 #8211 #16495 #7277 #16093
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/d5b89ed4d3c444e8bc4fe7cbbee38f9766574b84" style="color: #1068bf;">d5b89ed4</a></strong>
<div>
<span>by Alfredo Di Napoli</span>
<i>at 2021-06-03T15:58:33-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>Port HsToCore messages to new infrastructure

This commit converts a bunch of HsToCore (Ds) messages to use the new
GHC's diagnostic message infrastructure. In particular the DsMessage
type has been expanded with a lot of type constructors, each
encapsulating a particular error and warning emitted during desugaring.

Due to the fact that levity polymorphism checking can happen both at the
Ds and at the TcRn level, a new `TcLevityCheckDsMessage` constructor has
been added to the `TcRnMessage` type.
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/7a05185a2b73c1f1c37e003178ea49667f66a462" style="color: #1068bf;">7a05185a</a></strong>
<div>
<span>by Roland Senn</span>
<i>at 2021-06-03T15:59:10-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>Follow up #12449: Improve function `Inspect.hs:check2`

* Add a Note to clarify RttiTypes.
* Don't call `quantifyType` at all the call sites of `check2`.
* Simplyfy arguments of functions `Inspect.hs:check1` and `Inspect.hs:check2`.
  - `check1` only uses the two lists of type variables, but not the types.
  - `check2` only uses the two types, but not the lists of type variables.
* In `Inspect.hs:check2` send only the tau part of the type to `tcSplitTyConApp_maybe`.
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/1bb0565ce8a04cc1c9f247a9f1512af25c4b5b6a" style="color: #1068bf;">1bb0565c</a></strong>
<div>
<span>by Thomas Winant</span>
<i>at 2021-06-04T00:30:22-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>Fix incorrect mention of -Wprepositive-qualified-syntax in docs

The flag is called `-Wprepositive-qualified-module`, not
`-Wprepositive-qualified-syntax`.

Use the `:ghc-flag:` syntax, which would have caught the mistake in the first
place.
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/44d131af861e58b17f52c89da77a7ceeeba392c0" style="color: #1068bf;">44d131af</a></strong>
<div>
<span>by Takenobu Tani</span>
<i>at 2021-06-04T00:30:59-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>users-guide: Add OverloadedRecordDot and OverloadedRecordUpdate for ghc-9.2

This patch adds OverloadedRecordDot and OverloadedRecordUpdate in
9.2.1's release note.
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/f1b748b491dc49cfbe698cd790610ca21ae21ee7" style="color: #1068bf;">f1b748b4</a></strong>
<div>
<span>by Alfredo Di Napoli</span>
<i>at 2021-06-04T12:43:41-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>Add PsHeaderMessage diagnostic (fixes #19923)

This commit replaces the PsUnknownMessage diagnostics over at
`GHC.Parser.Header` with a new `PsHeaderMessage` type (part of
the more general `PsMessage`), so that we can throw parser header's
errors which can be correctly caught by `GHC.Driver.Pipeline.preprocess`
and rewrapped (correctly) as Driver messages (using the
`DriverPsHeaderMessage`).

This gets rid of the nasty compiler crash as part of #19923.
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/733757adb54eccdb4428e5ca4b2d896804bf5965" style="color: #1068bf;">733757ad</a></strong>
<div>
<span>by sheaf</span>
<i>at 2021-06-04T12:44:19-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>Make some simple primops levity-polymorphic

Fixes #17817
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/737b0ae194ca33f9bea9a150dada0c933fd75d4d" style="color: #1068bf;">737b0ae1</a></strong>
<div>
<span>by Sylvain Henry</span>
<i>at 2021-06-04T12:45:01-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>Fix Integral instances for Words

* ensure that division wrappers are INLINE

* make div/mod/divMod call quot/rem/quotRem (same code)

* this ensures that the quotRemWordN# primitive is used to implement
  divMod (it wasn't the case for sized Words)

* make first argument strict for Natural and Integer (similarly to other
  numeric types)
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/1713cbb038116c2d703238b47f78c4861232db8e" style="color: #1068bf;">1713cbb0</a></strong>
<div>
<span>by Shayne Fletcher</span>
<i>at 2021-06-05T03:47:48-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>Make 'count-deps' a ghc/util standalone program

- Move 'count-deps' into 'ghc/utils' so that it can be called standalone.
- Move 'testsuite/tests/parser/should_run/' tests 'CountParserDeps' and
'CountAstDeps' to 'testsuite/tests/count-deps' and reimplement in terms
of calling the utility
- Document how to use 'count-deps' in 'ghc/utils/count-deps/README'
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/9a28680d2e23e7b25dd7254a439aea31dfae32d5" style="color: #1068bf;">9a28680d</a></strong>
<div>
<span>by Sylvain Henry</span>
<i>at 2021-06-05T03:48:25-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>Put Unique related global variables in the RTS (#19940)
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/8c90e6c758769b068aea2891b26cc17577b6d36a" style="color: #1068bf;">8c90e6c7</a></strong>
<div>
<span>by Richard Eisenberg</span>
<i>at 2021-06-05T10:29:22-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>Fix #19682 by breaking cycles in Deriveds

This commit expands the old Note [Type variable cycles in Givens] to apply
as well to Deriveds. See the Note for details and examples. This fixes a
regression introduced by my earlier commit that killed off the flattener in
favor of the rewriter.

A few other things happened along the way:

* unifyTest was renamed to touchabilityTest, because that's what it does.

* isInsolubleOccursCheck was folded into checkTypeEq, which does much of the
  same work. To get this to work out, though, we need to keep more careful
  track of what errors we spot in checkTypeEq, and so CheckTyEqResult has
  become rather more glorious.

* A redundant Note or two was eliminated.

* Kill off occCheckForErrors; due to Note [Rewriting synonyms], the
  extra occCheckExpand here is always redundant.

* Store blocked equalities separately from other inerts; less stuff
  to look through when kicking out.

Close #19682.

test case: typecheck/should_compile/T19682{,b}
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/3b1aa7dba7c006b473855a6b199b15fa3a3d77a0" style="color: #1068bf;">3b1aa7db</a></strong>
<div>
<span>by Moritz Angermann</span>
<i>at 2021-06-05T10:29:57-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>Adds AArch64 Native Code Generator

In which we add a new code generator to the Glasgow Haskell
Compiler. This codegen supports ELF and Mach-O targets, thus covering
Linux, macOS, and BSDs in principle.  It was tested only on macOS and
Linux.  The NCG follows a similar structure as the other native code
generators we already have, and should therfore be realtively easy to
follow.

It supports most of the features required for a proper native code
generator, but does not claim to be perfect or fully optimised.  There
are still opportunities for optimisations.

Metric Decrease:
    ManyAlternatives
    ManyConstructors
    MultiLayerModules
    PmSeriesG
    PmSeriesS
    PmSeriesT
    PmSeriesV
    T10421
    T10421a
    T10858
    T11195
    T11276
    T11303b
    T11374
    T11822
    T12227
    T12545
    T12707
    T13035
    T13253
    T13253-spj
    T13379
    T13701
    T13719
    T14683
    T14697
    T15164
    T15630
    T16577
    T17096
    T17516
    T17836
    T17836b
    T17977
    T17977b
    T18140
    T18282
    T18304
    T18478
    T18698a
    T18698b
    T18923
    T1969
    T3064
    T5030
    T5321FD
    T5321Fun
    T5631
    T5642
    T5837
    T783
    T9198
    T9233
    T9630
    T9872d
    T9961
    WWRec
Metric Increase:
    T4801
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/db1e07f13a7ec6cde2918c435fa422062c49f536" style="color: #1068bf;">db1e07f1</a></strong>
<div>
<span>by Moritz Angermann</span>
<i>at 2021-06-05T10:29:57-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>[ci] -llvm with --way=llvm
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/1b2f894f47c54c6e921931351eba36842c345caf" style="color: #1068bf;">1b2f894f</a></strong>
<div>
<span>by Moritz Angermann</span>
<i>at 2021-06-05T10:29:57-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>[ci] no docs for aarch64-linux-llvm
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/a1fed3a51b9216ad072a0d57e32a0eaab44f9476" style="color: #1068bf;">a1fed3a5</a></strong>
<div>
<span>by Moritz Angermann</span>
<i>at 2021-06-05T10:29:57-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>[ci] force CC=clang for aarch64-linux
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/4db2d44ccbd0b615f41487bae082d1d14d37ecce" style="color: #1068bf;">4db2d44c</a></strong>
<div>
<span>by Moritz Angermann</span>
<i>at 2021-06-05T10:29:57-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>[testsuite] fix T13702 with clang
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/ecc3a405bb961cf45a4eaef36991a07321989474" style="color: #1068bf;">ecc3a405</a></strong>
<div>
<span>by Moritz Angermann</span>
<i>at 2021-06-05T10:29:57-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>[testsuite] fix T6132 when using the LLVM toolchain
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/cced9454c9dbe7148534bf68608bed6857482092" style="color: #1068bf;">cced9454</a></strong>
<div>
<span>by Shayne Fletcher</span>
<i>at 2021-06-05T19:23:11-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>Countdeps: Strictly documentation markup fixes

[ci skip]
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/ea9a4ef69a382cf3cee28b78eca390a6a06c6965" style="color: #1068bf;">ea9a4ef6</a></strong>
<div>
<span>by Simon Peyton Jones</span>
<i>at 2021-06-05T19:23:46-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>Avoid useless w/w split, take 2

This commit:

    commit c6faa42bfb954445c09c5680afd4fb875ef03758
    Author: Simon Peyton Jones <simonpj@microsoft.com>
    Date:   Mon Mar 9 10:20:42 2020 +0000

    Avoid useless w/w split

    This patch is just a tidy-up for the post-strictness-analysis
    worker wrapper split.  Consider

       f x = x

    Strictnesss analysis does not lead to a w/w split, so the
    obvious thing is to leave it 100% alone.  But actually, because
    the RHS is small, we ended up adding a StableUnfolding for it.

    There is some reason to do this if we choose /not/ do to w/w
    on the grounds that the function is small.  See
    Note [Don't w/w inline small non-loop-breaker things]

    But there is no reason if we would not have done w/w anyway.

    This patch just moves the conditional to later.  Easy.

turns out to have a bug in it.  Instead of /moving/ the conditional,
I /duplicated/ it.  Then in a subsequent unrelated tidy-up
(087ac4eb) I removed the second (redundant) test!

This patch does what I originally intended.

There is also a small refactoring in GHC.Core.Unfold, to make the
code clearer, but with no change in behaviour.

It does, however, have a generally good effect on compile times,
because we aren't dealing with so many silly stable unfoldings.
Here are the non-zero changes:

Metrics: compile_time/bytes allocated
-------------------------------------
                                         Baseline
                     Test    Metric         value     New value Change
---------------------------------------------------------------------------
 ManyAlternatives(normal) ghc/alloc   791969344.0   792665048.0  +0.1%
 ManyConstructors(normal) ghc/alloc  4351126824.0  4358303528.0  +0.2%
        PmSeriesG(normal) ghc/alloc    50362552.0    50482208.0  +0.2%
        PmSeriesS(normal) ghc/alloc    63733024.0    63619912.0  -0.2%
           T10421(normal) ghc/alloc   121224624.0   119695448.0  -1.3% GOOD
          T10421a(normal) ghc/alloc    85256392.0    83714224.0  -1.8%
           T10547(normal) ghc/alloc    29253072.0    29258256.0  +0.0%
           T10858(normal) ghc/alloc   189343152.0   187972328.0  -0.7%
           T11195(normal) ghc/alloc   281208248.0   279727584.0  -0.5%
           T11276(normal) ghc/alloc   141966952.0   142046224.0  +0.1%
          T11303b(normal) ghc/alloc    46228360.0    46259024.0  +0.1%
           T11545(normal) ghc/alloc  2663128768.0  2667412656.0  +0.2%
           T11822(normal) ghc/alloc   138686944.0   138760176.0  +0.1%
           T12227(normal) ghc/alloc   482836000.0   475421056.0  -1.5% GOOD
           T12234(optasm) ghc/alloc    60710520.0    60781808.0  +0.1%
           T12425(optasm) ghc/alloc   104089000.0   104022424.0  -0.1%
           T12545(normal) ghc/alloc  1711759416.0  1705711528.0  -0.4%
           T12707(normal) ghc/alloc   991541120.0   991921776.0  +0.0%
           T13035(normal) ghc/alloc   108199872.0   108370704.0  +0.2%
           T13056(optasm) ghc/alloc   414642544.0   412580384.0  -0.5%
           T13253(normal) ghc/alloc   361701272.0   355838624.0  -1.6%
       T13253-spj(normal) ghc/alloc   157710168.0   157397768.0  -0.2%
           T13379(normal) ghc/alloc   370984400.0   371345888.0  +0.1%
           T13701(normal) ghc/alloc  2439764144.0  2441351984.0  +0.1%
             T14052(ghci) ghc/alloc  2154090896.0  2156671400.0  +0.1%
           T15164(normal) ghc/alloc  1478517688.0  1440317696.0  -2.6% GOOD
           T15630(normal) ghc/alloc   178053912.0   172489808.0  -3.1%
           T16577(normal) ghc/alloc  7859948896.0  7854524080.0  -0.1%
           T17516(normal) ghc/alloc  1271520128.0  1202096488.0  -5.5% GOOD
           T17836(normal) ghc/alloc  1123320632.0  1123922480.0  +0.1%
          T17836b(normal) ghc/alloc    54526280.0    54576776.0  +0.1%
          T17977b(normal) ghc/alloc    42706752.0    42730544.0  +0.1%
           T18140(normal) ghc/alloc   108834568.0   108693816.0  -0.1%
           T18223(normal) ghc/alloc  5539629264.0  5579500872.0  +0.7%
           T18304(normal) ghc/alloc    97589720.0    97196944.0  -0.4%
           T18478(normal) ghc/alloc   770755472.0   771232888.0  +0.1%
          T18698a(normal) ghc/alloc   408691160.0   374364992.0  -8.4% GOOD
          T18698b(normal) ghc/alloc   492419768.0   458809408.0  -6.8% GOOD
           T18923(normal) ghc/alloc    72177032.0    71368824.0  -1.1%
            T1969(normal) ghc/alloc   803523496.0   804655112.0  +0.1%
            T3064(normal) ghc/alloc   198411784.0   198608512.0  +0.1%
            T4801(normal) ghc/alloc   312416688.0   312874976.0  +0.1%
         T5321Fun(normal) ghc/alloc   325230680.0   325474448.0  +0.1%
            T5631(normal) ghc/alloc   592064448.0   593518968.0  +0.2%
            T5837(normal) ghc/alloc    37691496.0    37710904.0  +0.1%
             T783(normal) ghc/alloc   404629536.0   405064432.0  +0.1%
            T9020(optasm) ghc/alloc   266004608.0   266375592.0  +0.1%
            T9198(normal) ghc/alloc    49221336.0    49268648.0  +0.1%
            T9233(normal) ghc/alloc   913464984.0   742680256.0 -18.7% GOOD
            T9675(optasm) ghc/alloc   552296608.0   466322000.0 -15.6% GOOD
           T9872a(normal) ghc/alloc  1789910616.0  1793924472.0  +0.2%
           T9872b(normal) ghc/alloc  2315141376.0  2310338056.0  -0.2%
           T9872c(normal) ghc/alloc  1840422424.0  1841567224.0  +0.1%
           T9872d(normal) ghc/alloc   556713248.0   556838432.0  +0.0%
            T9961(normal) ghc/alloc   383809160.0   384601600.0  +0.2%
            WWRec(normal) ghc/alloc   773751272.0   753949608.0  -2.6% GOOD

Residency goes down too:

Metrics: compile_time/max_bytes_used
------------------------------------
                             Baseline
           Test  Metric         value     New value Change
-----------------------------------------------------------
 T10370(optasm) ghc/max    42058448.0    39481672.0  -6.1%
 T11545(normal) ghc/max    43641392.0    43634752.0  -0.0%
 T15304(normal) ghc/max    29895824.0    29439032.0  -1.5%
 T15630(normal) ghc/max     8822568.0     8772328.0  -0.6%
T18698a(normal) ghc/max    13882536.0    13787112.0  -0.7%
T18698b(normal) ghc/max    14714112.0    13836408.0  -6.0%
  T1969(normal) ghc/max    24724128.0    24733496.0  +0.0%
  T3064(normal) ghc/max    14041152.0    14034768.0  -0.0%
  T3294(normal) ghc/max    32769248.0    32760312.0  -0.0%
  T9630(normal) ghc/max    41605120.0    41572184.0  -0.1%
  T9675(optasm) ghc/max    18652296.0    17253480.0  -7.5%

Metric Decrease:
    T10421
    T12227
    T15164
    T17516
    T18698a
    T18698b
    T9233
    T9675
    WWRec

Metric Increase:
    T12545
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/52a524f7c8c5701708a007a5946c27914703d045" style="color: #1068bf;">52a524f7</a></strong>
<div>
<span>by Simon Peyton Jones</span>
<i>at 2021-06-05T19:23:46-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>Re-do rubbish literals

As #19882 pointed out, we were simply doing rubbish literals wrong.
(I'll refrain from explaining the wrong-ness here -- see the ticket.)

This patch fixes it by adding a Type (of kind RuntimeRep) as field of
LitRubbish, rather than [PrimRep].

The Note [Rubbish literals] in GHC.Types.Literal explains the details.
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/34424b9d7baa3e4e493f9a6063e3460151e35345" style="color: #1068bf;">34424b9d</a></strong>
<div>
<span>by Simon Peyton Jones</span>
<i>at 2021-06-05T19:23:46-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>Drop absent bindings in worker/wrapper

Consider this (from #19824)
   let t = ...big...
   in ...(f t x)...

were `f` ignores its first argument.  With luck f's wrapper will inline
thereby dropping `t`, but maybe not: the arguments to f all look boring.

So we pre-empt the problem by replacing t's RHS with an absent filler
during w/w.  Simple and effective.

The main payload is the new `isAbsDmd` case in `tryWw`, but there are
some other minor refactorings:

* To implment this I had to refactor `mk_absent_let` to
  `mkAbsentFiller`, which can be called from `tryWW`.

* wwExpr took both WwOpts and DynFlags which seems silly.  I combined
  them into one.

* I renamed the historical mkInineRule to mkWrapperUnfolding
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/3e343292353764847a7cb624167a850ee467f9ce" style="color: #1068bf;">3e343292</a></strong>
<div>
<span>by Ben Gamari</span>
<i>at 2021-06-05T19:23:46-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>testsuite: Eliminate fragility of ioprof

As noted in #10037, the `ioprof` test would change its stderr output
(specifically the stacktrace produced by `error`) depending upon
optimisation level. As the `error` backtrace is not the point of this
test, we now ignore the `stderr` output.
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/5e1a224435fc6ebd34d02566f17fe1eaf5475bab" style="color: #1068bf;">5e1a2244</a></strong>
<div>
<span>by Ben Gamari</span>
<i>at 2021-06-05T19:23:46-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>testsuite: Fix Note style
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/4dc681c7c0345ee8ae268749d98b419dabf6a3bc" style="color: #1068bf;">4dc681c7</a></strong>
<div>
<span>by Sylvain Henry</span>
<i>at 2021-06-07T10:35:39+02:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>Make Logger independent of DynFlags

Introduce LogFlags as a independent subset of DynFlags used for logging.
As a consequence in many places we don't have to pass both Logger and
DynFlags anymore.

The main reason for this refactoring is that I want to refactor the
systools interfaces: for now many systools functions use DynFlags both
to use the Logger and to fetch their parameters (e.g. ldInputs for the
linker). I'm interested in refactoring the way they fetch their
parameters (i.e. use dedicated XxxOpts data types instead of DynFlags)
for #19877. But if I did this refactoring before refactoring the Logger,
we would have duplicate parameters (e.g. ldInputs from DynFlags and
linkerInputs from LinkerOpts). Hence this patch first.

Some flags don't really belong to LogFlags because they are subsystem
specific (e.g. most DumpFlags). For example -ddump-asm should better be
passed in NCGConfig somehow. This patch doesn't fix this tight coupling:
the dump flags are part of the UI but they are passed all the way down
for example to infer the file name for the dumps.

Because LogFlags are a subset of the DynFlags, we must update the former
when the latter changes (not so often). As a consequence we now use
accessors to read/write DynFlags in HscEnv instead of using `hsc_dflags`
directly.

In the process I've also made some subsystems less dependent on DynFlags:

- CmmToAsm: by passing some missing flags via NCGConfig (see new fields
  in GHC.CmmToAsm.Config)
- Core.Opt.*:
    - by passing -dinline-check value into UnfoldingOpts
    - by fixing some Core passes interfaces (e.g. CallArity, FloatIn)
      that took DynFlags argument for no good reason.
    - as a side-effect GHC.Core.Opt.Pipeline.doCorePass is much less
      convoluted.
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/3a90814fdf5800927ef404d46459223b2ba283ce" style="color: #1068bf;">3a90814f</a></strong>
<div>
<span>by Sylvain Henry</span>
<i>at 2021-06-07T11:19:35+02:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>Parser: make less DynFlags dependent

This is an attempt at reducing the number of dependencies of the Parser
(as reported by CountParserDeps). Modules in GHC.Parser.* don't import
GHC.Driver.Session directly anymore.

Sadly some GHC.Driver.* modules are still transitively imported and the
number of dependencies didn't decrease. But it's a step in the right
direction.
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/40c0f67fb557b8d0d02eb805eb94db378489d580" style="color: #1068bf;">40c0f67f</a></strong>
<div>
<span>by Sylvain Henry</span>
<i>at 2021-06-07T11:19:35+02:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>Bump haddock submodule
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/9e724f6e5bcb31abd270ea44fb01b1edb18f626f" style="color: #1068bf;">9e724f6e</a></strong>
<div>
<span>by Viktor Dukhovni</span>
<i>at 2021-06-07T15:35:22-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>Small ZipList optimisation

In (<|>) for ZipList, avoid processing the first argument twice (both as first
argument of (++) and for its length in drop count of the second argument).

Previously, the entire first argument was forced into memory, now (<|>) can run
in constant space even with long inputs.
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/7ea3b7eb37ac87917ab490c835e8405646891be3" style="color: #1068bf;">7ea3b7eb</a></strong>
<div>
<span>by Ryan Scott</span>
<i>at 2021-06-08T01:07:10+05:30</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>Introduce `hsExprType :: HsExpr GhcTc -> Type` in the new module
`GHC.Hs.Syn.Type`

The existing `hsPatType`, `hsLPatType` and `hsLitType` functions have also been
moved to this module

This is a less ambitious take on the same problem that !2182 and !3866
attempt to solve. Rather than have the `hsExprType` function attempt to
efficiently compute the `Type` of every subexpression in an `HsExpr`, this
simply computes the overall `Type` of a single `HsExpr`.

- Explicitly forbids the `SplicePat` `HsIPVar`, `HsBracket`, `HsRnBracketOut`
  and `HsTcBracketOut` constructors during the typechecking phase by using
  `Void` as the TTG extension field
- Also introduces `dataConCantHappen` as a domain specific alternative to `absurd`
  to handle cases where the TTG extension points forbid a constructor.
- Turns HIE file generation into a pure function that doesn't need access to the
  `DsM` monad to compute types, but uses `hsExprType` instead.
- Computes a few more types during HIE file generation
- Makes GHCi's `:set +c` command also use `hsExprType` instead of going through
  the desugarer to compute types.

Updates haddock submodule

Co-authored-by: Zubin Duggal <zubin.duggal@gmail.com>
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/378c0bba7d132a89dd9c35374b7b4bb5a4730bf7" style="color: #1068bf;">378c0bba</a></strong>
<div>
<span>by Tamar Christina</span>
<i>at 2021-06-08T15:40:50-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>winio: use synchronous access explicitly for handles that may not be asynchronous.
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/31bfafeca2f652a466f8a091f74393ab2e314176" style="color: #1068bf;">31bfafec</a></strong>
<div>
<span>by Baldur Blöndal</span>
<i>at 2021-06-09T09:46:17-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>Added a regression test, this would trigger a Core Lint error before GHC 9
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/d69067a1b920f1122f55dd9caa39cf9ed9ba1d9b" style="color: #1068bf;">d69067a1</a></strong>
<div>
<span>by Matthew Pickering</span>
<i>at 2021-06-09T09:46:51-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>FinderCache: Also cache file hashing in interface file checks

Now that we hash object files to decide when to recompile due to TH,
this can make a big difference as each interface file in a project will
contain reference to the object files of all package dependencies.
Especially when these are statically linked, hashing them can add up.

The cache is invalidated when `depanalPartial` is called, like the
normal finder cache.
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/f4a5e30e7b027894535872164df50c300d8e6b0f" style="color: #1068bf;">f4a5e30e</a></strong>
<div>
<span>by Simon Peyton Jones</span>
<i>at 2021-06-10T02:38:19-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>Do not add unfoldings to lambda-binders

For reasons described in GHC.Core.Opt.Simplify
Historical Note [Case binders and join points],
we used to keep a Core unfolding in one of the lambda-binders
for a join point.  But this was always a gross hack -- it's
very odd to have an unfolding in a lambda binder, that refers to
earlier lambda binders.

The hack bit us in various ways:
* Most seriously, it is incompatible with linear types in Core.
* It complicated demand analysis, and could worsen results
* It required extra care in the simplifier (simplLamBinder)
* It complicated !5641 (look for "join binder unfoldings")

So this patch just removes the hack.  Happily, doind so turned out to
have no effect on performance.
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/8baa8874935daae7d2b7c6f5a1215a379b8b85db" style="color: #1068bf;">8baa8874</a></strong>
<div>
<span>by Li-yao Xia</span>
<i>at 2021-06-10T02:38:54-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>User's Guide: reword and fix punctuation in description of PostfixOperators
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/fb6b6379efcc07c6b5fd00368310f204f4a5f7bc" style="color: #1068bf;">fb6b6379</a></strong>
<div>
<span>by Matthew Pickering</span>
<i>at 2021-06-10T02:39:29-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>Add (broken) test for #19966
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/61c51c00b6e12e309bc5643e89330b93d86f5449" style="color: #1068bf;">61c51c00</a></strong>
<div>
<span>by Sylvain Henry</span>
<i>at 2021-06-10T02:40:07-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>Fix redundant import
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/472c2bf003e9f3bb93b82265f2a0a7124f944421" style="color: #1068bf;">472c2bf0</a></strong>
<div>
<span>by sheaf</span>
<i>at 2021-06-10T13:54:05-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>Reword: representation instead of levity

fixes #19756, updates haddock submodule
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/3d5cb3352c1e1c20f0d5de427f4edbc765ce06d6" style="color: #1068bf;">3d5cb335</a></strong>
<div>
<span>by Simon Peyton Jones</span>
<i>at 2021-06-10T13:54:40-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>Fix INLINE pragmas in desugarer

In #19969 we discovered that GHC has has a bug *forever* that means it
sometimes essentially discarded INLINE pragams.  This happened when you have
* Two more more mutually recursive functions
* Some of which (presumably not all!) have an INLINE pragma
* Completely monomorphic.

This hits a particular case in GHC.HsToCore.Binds.dsAbsBinds, which was
simply wrong -- it put the INLINE pragma on the wrong binder.

This patch fixes the bug, rather easily, by adjusting the
no-tyvar, no-dict case of GHC.HsToCore.Binds.dsAbsBinds.

I also discovered that the GHC.Core.Opt.Pipeline.shortOutIndirections
was not doing a good job for

    {-# INLINE lcl_id #-}
    lcl_id = BIG

    gbl_id = lcl_id

Here we want to transfer the stable unfolding to gbl_id (we do), but
we also want to remove it from lcl_id (we were not doing that).
Otherwise both Ids have large stable unfoldings.  Easily fixed.
Note [Transferring IdInfo] explains.
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/2a7e29e5303058473484b10ed57d3c579d78fe83" style="color: #1068bf;">2a7e29e5</a></strong>
<div>
<span>by Ben Gamari</span>
<i>at 2021-06-16T16:58:37+00:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>gitlab-ci: Bump ci-images</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/6c131ba04ab1455827d985704e4411aa19185f5f" style="color: #1068bf;">6c131ba0</a></strong>
<div>
<span>by Baldur Blöndal</span>
<i>at 2021-06-16T20:18:35-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>DerivingVia for Hsc instances. GND for NonDetFastString and LexicalFastString.
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/a2e4cb80db1b63ea2c5e0ab501acec7fb1b116e3" style="color: #1068bf;">a2e4cb80</a></strong>
<div>
<span>by Vladislav Zavialov</span>
<i>at 2021-06-16T20:19:10-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>HsUniToken and HsToken for HsArrow (#19623)

Another step towards a simpler design for exact printing.

Updates the haddock submodule.
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/01fd26178f2c7ccbddbd66387e21f339cf9cda96" style="color: #1068bf;">01fd2617</a></strong>
<div>
<span>by Matthew Pickering</span>
<i>at 2021-06-16T20:19:45-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>profiling: Look in RHS of rules for cost centre ticks

There are some obscure situations where the RHS of a rule can contain a
tick which is not mentioned anywhere else in the program. If this
happens you end up with an obscure linker error. The solution is quite
simple, traverse the RHS of rules to also look for ticks. It turned out
to be easier to implement if the traversal was moved into CoreTidy
rather than at the start of code generation because there we still had
easy access to the rules.

./StreamD.o(.text+0x1b9f2): error: undefined reference to 'StreamK_mkStreamFromStream_HPC_cc'
./MArray.o(.text+0xbe83): error: undefined reference to 'StreamK_mkStreamFromStream_HPC_cc'
Main.o(.text+0x6fdb): error: undefined reference to 'StreamK_mkStreamFromStream_HPC_cc'
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/d8bfebec6340ee5e1aa6f1731d5c4b91d8377fdb" style="color: #1068bf;">d8bfebec</a></strong>
<div>
<span>by AriFordsham</span>
<i>at 2021-06-16T20:20:22-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>Corrected typo</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/34484c89ac1a5f037ec7f423c72d3cb4b830b831" style="color: #1068bf;">34484c89</a></strong>
<div>
<span>by Divam</span>
<i>at 2021-06-16T20:20:59-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>Remove the backend correction logic, as it is already been fixed at this point
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/e25772a0a95fc9b606044e1afae31ff84790838a" style="color: #1068bf;">e25772a0</a></strong>
<div>
<span>by Peter Trommler</span>
<i>at 2021-06-16T20:21:34-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>PPC NCG: Fix panic in linear register allocator
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/a83d29995d096cca1ceff7042b73080db69219cf" style="color: #1068bf;">a83d2999</a></strong>
<div>
<span>by Krzysztof Gogolewski</span>
<i>at 2021-06-16T20:22:09-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>Fix error message for record updates, #19972

Fix found by Adam Gundry.
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/a0622459f1d9a7068e81b8a707ffc63e153444f8" style="color: #1068bf;">a0622459</a></strong>
<div>
<span>by Matthew Pickering</span>
<i>at 2021-06-17T11:55:17+01:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>Move validate-x86_64-linux-deb9-hadrian back to quick-build

This increases the critical path length but in practice will reduce
pressure on runners because less jobs overall will be spawned.

See #20003

[skip ci]
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/3b783496aa6b74cdca767347916de963b34ca718" style="color: #1068bf;">3b783496</a></strong>
<div>
<span>by Simon Peyton Jones</span>
<i>at 2021-06-18T12:27:33-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>Enhance cast worker/wrapper for INLINABLE

In #19890 we realised that cast worker/wrapper didn't really work
properly for functions with an INLINABLE pragma, and hence a stable
unfolding. This patch fixes the problem.

Instead of disabling cast w/w when there is a stable unfolding (as
we did before), we now tranfer the stable unfolding to the worker.

It turned out that it was easier to do that if I moved the cast
w/w stuff from prepareBinding to completeBind.

No chnages at all in nofib results:
--------------------------------------------------------------------------------
        Program           Size    Allocs   Runtime   Elapsed  TotalMem
--------------------------------------------------------------------------------
            Min          -0.0%      0.0%    -63.8%    -78.2%      0.0%
            Max          -0.0%      0.0%    +11.8%    +11.7%      0.0%
 Geometric Mean          -0.0%     -0.0%    -26.6%    -33.4%     -0.0%

Small decreases in compile-time allocation for two tests (below)
of around 2%.

T12545 increased in compile-time alloc by 4%, but it's not
reproducible on my machine, and is a known-wobbly test.

Metric Increase:
    T12545

Metric Decrease:
    T18698a
    T18698b
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/c6a00c15b2e98d82aa279ede4100030b462ef629" style="color: #1068bf;">c6a00c15</a></strong>
<div>
<span>by Simon Peyton Jones</span>
<i>at 2021-06-18T12:27:33-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>Improve abstractVars quantification ordering

When floating a binding out past some type-variable binders,
don't gratuitiously change the order of the binders.

This small change gives code that is simpler, has less risk of
non-determinism, and does not gratuitiously change type-variable
order.

See Note [Which type variables to abstract over] in
GHC.Core.Opt.Simplify.Utils.

This is really just refactoring; no change in behaviour.
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/db7e6dc5e510a132e256674d0ba4b9e7a55afaf6" style="color: #1068bf;">db7e6dc5</a></strong>
<div>
<span>by Simon Peyton Jones</span>
<i>at 2021-06-18T12:27:33-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>Improve pretty-printing of coercions

With -dsuppress-coercions, it's still good to be able to see the
type of the coercion. This patch prints the type.  Maybe we should
have a flag to control this too.
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/5d3d9925d54988f3d2475de656c695289e5f0082" style="color: #1068bf;">5d3d9925</a></strong>
<div>
<span>by Gleb Popov</span>
<i>at 2021-06-18T12:27:36-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>Pass -DLIBICONV_PLUG when building base library on FreeBSD.

If libiconv is installed from packages on the build machine, there is a high
chance that the build system will pick up /usr/local/include/iconv.h instead
of base /usr/include/iconv.h

This additional preprocessor define makes package's libiconv header compatible
with system one, fixing the build.

Closes issue #19958
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/1e2ba8a44b9193d572a98c17f1b22c54db544400" style="color: #1068bf;">1e2ba8a4</a></strong>
<div>
<span>by Matthew Pickering</span>
<i>at 2021-06-19T12:22:27-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>CI: Keep the value of PERF_NOTE_KEY in darwin environments

This fixes the performance test tracking for all darwin environments.
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/028b947490cd8ce433889561b0e298286e963024" style="color: #1068bf;">028b9474</a></strong>
<div>
<span>by Simon Peyton Jones</span>
<i>at 2021-06-19T12:23:02-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>Add comments explaining why #19833 is wrong

I realised that the suggestion in #19833 doesn't work, and
documented why in Note [Zapping Used Once info in WorkWrap]
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/6b2952cfab2dff6eafa0bd5c5a5f4e75e757b392" style="color: #1068bf;">6b2952cf</a></strong>
<div>
<span>by Sylvain Henry</span>
<i>at 2021-06-19T12:23:39-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>RTS: fix indentation warning
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/a6548a667229594e6156b31d156dbca20a44f8ff" style="color: #1068bf;">a6548a66</a></strong>
<div>
<span>by David</span>
<i>at 2021-06-19T12:24:15-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>Correct haddock annotations in GetOpt</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/23bb09c919a56768953a71cbbecf735a4bff608b" style="color: #1068bf;">23bb09c9</a></strong>
<div>
<span>by Sylvain Henry</span>
<i>at 2021-06-19T12:24:52-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>Perf: fix appendFS

To append 2 FastString we don't need to convert them into ByteString: use ShortByteString's Semigroup instance instead.
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/1c79ddc8c566a23cf1a77a6a68c65e508fe8ee4d" style="color: #1068bf;">1c79ddc8</a></strong>
<div>
<span>by Matthew Pickering</span>
<i>at 2021-06-19T12:25:26-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>RTS: Fix flag parsing for --eventlog-flush-interval

Fixes #20006
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/fc8ad5f35a8ec314c801b226a9165b5354363a72" style="color: #1068bf;">fc8ad5f3</a></strong>
<div>
<span>by Simon Peyton Jones</span>
<i>at 2021-06-19T12:26:01-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>Fix type and strictness signature of fork#

When working eta-expansion and reduction, I found that fork# had a
weaker strictness signature than it should have (#19992).  In
particular, it didn't record that it applies its argument exactly
once. To this I needed to give it a proper type (its first argument is
always a function, which in turn entailed a small change to the call
in GHC.Conc.Sync

This patch fixes it.
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/217b4dcc004faffd3c7f5d15ba002dcfb0d1027e" style="color: #1068bf;">217b4dcc</a></strong>
<div>
<span>by Krzysztof Gogolewski</span>
<i>at 2021-06-19T12:26:35-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>Deprecate -Wmissing-monadfail-instances (#17875)

Also document deprecation of Wnoncanonical-monadfail-instances
and -Wimplicit-kind-vars
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/8838241f7d672a58522b902c89c9149d6197bb72" style="color: #1068bf;">8838241f</a></strong>
<div>
<span>by Sylvain Henry</span>
<i>at 2021-06-19T12:27:12-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>Fix naturalToFloat/Double

* move naturalToFloat/Double from ghc-bignum to base:GHC.Float and make
  them wired-in (as their integerToFloat/Double counterparts)

* use the same rounding method as integerToFloat/Double. This is an
  oversight of 540fa6b2cff3802877ff56a47ab3611e33a9ac86

* add passthrough rules for intToFloat, intToDouble, wordToFloat,
  wordToDouble.
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/3f60a7e59dc5e067a3c764799478645dbc37700d" style="color: #1068bf;">3f60a7e5</a></strong>
<div>
<span>by Vladislav Zavialov</span>
<i>at 2021-06-19T22:58:33-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>Do not reassociate lexical negation (#19838)
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/4c87a3d1d14f9e28c8aa0f6062e9c4201f469ad7" style="color: #1068bf;">4c87a3d1</a></strong>
<div>
<span>by Ryan Scott</span>
<i>at 2021-06-19T22:59:08-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>Simplify pprLHsContext

This removes an _ad hoc_ special case for empty `LHsContext`s in
`pprLHsContext`, fixing #20011. To avoid regressions in
pretty-printing data types and classes constructed via TH, we now
apply a heuristic where we convert empty datatype contexts and superclasses
to a `Nothing` (rather than `Just` an empty context). This will, for instance,
avoid pretty-printing every TH-constructed data type as `data () => Blah ...`.
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/a6a8d3f57294f6319d778821e52d5dbef867b360" style="color: #1068bf;">a6a8d3f5</a></strong>
<div>
<span>by Moritz Angermann</span>
<i>at 2021-06-20T07:11:58-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>Guard Allocate Exec via LIBFFI by LIBFFI

We now have two darwin flavours. AArch64-Darwin, and
x86_64-darwin, the latter one which has proper custom
adjustor support, the former though relies on libffi.

Mixing both leads to odd crashes, as the closures might
not fit the size of the libffi closures. Hence this
needs to be guarded by the USE_LBFFI_FOR_ADJUSTORS guard.

Original patch by Hamish Mackenzie
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/689016dc1547386766cd0694c9b61a841471ffb9" style="color: #1068bf;">689016dc</a></strong>
<div>
<span>by Matthew Pickering</span>
<i>at 2021-06-20T07:12:32-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>Darwin CI: Don't explicitly pass ncurses/iconv paths

Passing --with-ncurses-libraries means the path which gets backed in
progagate into the built binaries. This is incorrect when we want to
distribute the binaries because the user might not have the library in
that specific place. It's the user's reponsibility to direct the dynamic
linker to the right place.

Fixes #19968
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/4a65c0f88060785a8bcb25bb13bc53c20948633b" style="color: #1068bf;">4a65c0f8</a></strong>
<div>
<span>by Matthew Pickering</span>
<i>at 2021-06-20T07:12:32-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>rts: Pass -Wl,_U,___darwin_check_fd_set_overflow on Darwin

Note [fd_set_overflow]
~~~~~~~~~~~~~~~~~~~~~~
In this note is the very sad tale of __darwin_fd_set_overflow.
The 8.10.5 release was broken because it was built in an environment
where the libraries were provided by XCode 12.*, these libraries introduced
a reference to __darwin_fd_set_overflow via the FD_SET macro which is used in
Select.c. Unfortunately, this symbol is not available with XCode 11.* which
led to a linker error when trying to link anything. This is almost certainly
a bug in XCode but we still have to work around it.

Undefined symbols for architecture x86_64:
 "___darwin_check_fd_set_overflow", referenced from:
     _awaitEvent in libHSrts.a(Select.o)
ld: symbol(s) not found for architecture x86_64

One way to fix this is to upgrade your version of xcode, but this would
force the upgrade on users prematurely. Fortunately it also seems safe to pass
the linker option "-Wl,-U,___darwin_check_fd_set_overflow" because the usage of
the symbol is guarded by a guard to check if it's defined.

__header_always_inline int
__darwin_check_fd_set(int _a, const void *_b)
{
   if ((uintptr_t)&__darwin_check_fd_set_overflow != (uintptr_t) 0) {
       return __darwin_check_fd_set_overflow(_a, _b, 1);
       return __darwin_check_fd_set_overflow(_a, _b, 0);
   } else {
       return 1;
   }

Across the internet there are many other reports of this issue
 See: https://github.com/mono/mono/issues/19393
    , https://github.com/sitsofe/fio/commit/b6a1e63a1ff607692a3caf3c2db2c3d575ba2320

The issue was originally reported in #19950

Fixes #19950
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/6c783817ef089e85642c3383937117cff9d15f67" style="color: #1068bf;">6c783817</a></strong>
<div>
<span>by Zubin Duggal</span>
<i>at 2021-06-20T07:13:07-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>Set min LLVM version to 9 and make version checking use a non-inclusive upper
bound.

We use a non-inclusive upper bound so that setting the upper bound to 13 for
example means that all 12.x versions are accepted.
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/6281a333303a4dbe75a97a87c17c0fbace5268f5" style="color: #1068bf;">6281a333</a></strong>
<div>
<span>by Matthew Pickering</span>
<i>at 2021-06-20T07:13:41-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>Linker/darwin: Properly honour -fno-use-rpaths

The specification is now simple

* On linux, use `-Xlinker -rpath -Xlinker` to set the rpath of the
executable
* On darwin, never use `-Xlinker -rpath -Xlinker`, always inject
the rpath afterwards, see `runInjectRPaths`.
* If `-fno-use-rpaths` is passed then *never* inject anything into the
rpath.

Fixes #20004
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/5abf59976c7335df760e5d8609d9488489478173" style="color: #1068bf;">5abf5997</a></strong>
<div>
<span>by Fraser Tweedale</span>
<i>at 2021-06-20T07:14:18-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>hadrian/README.md: update bignum options</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/65bad0de6fd1431f0670002d68974adce3e9fc4a" style="color: #1068bf;">65bad0de</a></strong>
<div>
<span>by Matthew Pickering</span>
<i>at 2021-06-22T02:33:00-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>CI: Don't set EXTRA_HC_OPTS in head.hackage job

Upstream environment variables take precedance over downstream
variables. It is more consistent (and easier to modify) if the variables are all set in the
head.hackage CI file rather than setting this here.

[skip ci]
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/14956cb89d8548e531c99821ad504b4f35b5509a" style="color: #1068bf;">14956cb8</a></strong>
<div>
<span>by Sylvain Henry</span>
<i>at 2021-06-22T02:33:38-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>Put tracing functions into their own module

Now that Outputable is independent of DynFlags, we can put tracing
functions using SDocs into their own module that doesn't transitively
depend on any GHC.Driver.* module.

A few modules needed to be moved to avoid loops in DEBUG mode.
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/595dfbb02fc8c15126140886150c99206d57906c" style="color: #1068bf;">595dfbb0</a></strong>
<div>
<span>by Matthew Pickering</span>
<i>at 2021-06-22T02:34:13-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>rts: Document --eventlog-flush-interval in RtsFlags

Fixes #19995
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/362f078ef980c735d29bfa037d2a907f0002aece" style="color: #1068bf;">362f078e</a></strong>
<div>
<span>by Krzysztof Gogolewski</span>
<i>at 2021-06-22T02:34:49-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>Typos, minor comment fixes

- Remove fstName, sndName, fstIdKey, sndIdKey - no longer used,
  removed from basicKnownKeyNames
- Remove breakpointId, breakpointCondId, opaqueTyCon, unknownTyCon -
  they were used in the old implementation of the GHCi debugger
- Fix typos in comments
- Remove outdated comment in Lint.hs
- Use 'LitRubbish' instead of 'RubbishLit' for consistency
- Remove comment about subkinding - superseded by
  Note [Kind Constraint and kind Type]
- Mention ticket ID in a linear types error message
- Fix formatting in using-warnings.rst and linear-types.rst
- Remove comment about 'Any' in Dynamic.hs - Dynamic
  now uses Typeable + existential instead of Any
- Remove codeGen/should_compile/T13233.hs
  This was added by accident, it is not used and T13233 is already in
  should_fail
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/f7e41d78d1f788290bee745d4d6532f7448caf8d" style="color: #1068bf;">f7e41d78</a></strong>
<div>
<span>by Matthew Pickering</span>
<i>at 2021-06-22T02:35:24-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>ghc-bignum: trimed ~> trimmed

Just a small typo which propagated through ghc-bignum
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/62d720db4f6a53014400a608baf5c56555258eee" style="color: #1068bf;">62d720db</a></strong>
<div>
<span>by Potato Hatsue</span>
<i>at 2021-06-22T02:36:00-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>Fix a typo in pattern synonyms doc</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/87f57ecf2523e83d8dd9cad919a6f2010f630ad0" style="color: #1068bf;">87f57ecf</a></strong>
<div>
<span>by Adam Sandberg Ericsson</span>
<i>at 2021-06-23T02:58:00-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>ci: fix ci.sh by creating build.mk in one place

Previously `prepare_build_mk` created a build.mk that was overwritten right
after.

This makes the BIGNUM_BACKEND choice take effect, fixing #19953, and
causing the metric increase below in the integer-simple job.

Metric Increase:
    space_leak_001
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/7f6454fb8cd92b2b2ad4e88fa6d81e34d43edb9a" style="color: #1068bf;">7f6454fb</a></strong>
<div>
<span>by Matthew Pickering</span>
<i>at 2021-06-23T02:58:35-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>Optimiser: Correctly deal with strings starting with unicode characters in exprConApp_maybe

For example:

"\0" is encoded to "C0 80", then the rule would correct use a decoding
function to work out the first character was "C0 80" but then just used
BS.tail so the rest of the string was "80". This resulted in

"\0" being transformed into '\C0\80' : unpackCStringUTF8# "80"

Which is obviously bogus.

I rewrote the function to call utf8UnconsByteString directly and avoid
the roundtrip through Faststring so now the head/tail is computed by the
same call.

Fixes #19976
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/e14b893a7fcf4760327484d39a5023510a394f7e" style="color: #1068bf;">e14b893a</a></strong>
<div>
<span>by Matthew Pickering</span>
<i>at 2021-06-23T02:59:09-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>testsuite: Don't try to run tests with missing libraries

As noticed by sgraf, we were still running reqlib tests, even if the
library was not available. The reasons for this were not clear to me as
they would never work and it was causing some issues with empty stderr
files being generated if you used --test-accept.

Now if the required library is not there, the test is just skipped, and
a counter increased to mark the fact.

Perhaps in the future it would be nicer to explicitly record why certain
tests are skipped. Missing libraries causing a skip is a special case
at the moment.

Fixes #20005
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/aa1d0eb3629bd9d8fda3605c0b7b4dd52ee3d583" style="color: #1068bf;">aa1d0eb3</a></strong>
<div>
<span>by sheaf</span>
<i>at 2021-06-23T02:59:48-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>Enable TcPlugin tests on Windows
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/d8e5b274dd258f85867e874a35fa719922a758f0" style="color: #1068bf;">d8e5b274</a></strong>
<div>
<span>by Matthew Pickering</span>
<i>at 2021-06-23T03:00:23-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>ghci: Correct free variable calculation in StgToByteCode

Fixes #20019
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/6bf823168f22a3779b7f8d10b41216c411890c63" style="color: #1068bf;">6bf82316</a></strong>
<div>
<span>by Matthew Pickering</span>
<i>at 2021-06-23T03:00:57-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>hadrian: Pass correct leading_underscore configuration to tests
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/8fba28ec51f9aaaa396b8afb2a3ba8984eabe38e" style="color: #1068bf;">8fba28ec</a></strong>
<div>
<span>by Moritz Angermann</span>
<i>at 2021-06-23T03:01:32-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>[testsuite] mark T3007 broken on darwin.

Cabal explicitly passes options to set the rpath, which we then also try
to set using install_name_tool. Cabal should also pass `-fno-use-rpaths`
to suppress the setting of the rpath from within GHC.
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/633bbc1fd4762a2bb73ba1c5b9e0c279f1dd3c40" style="color: #1068bf;">633bbc1f</a></strong>
<div>
<span>by Douglas Wilson</span>
<i>at 2021-06-23T08:52:26+01:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>ci: Don't allow the nightly pipeline to be interrupted.

Since 58cfcc65 the default for jobs has been "interruptible", this means
that when new commits are pushed to a branch which already has a running
pipeline then the old pipelines for this branch are cancelled.

This includes the master branch, and in particular, new commits merged
to the master branch will cancel the nightly job.

The semantics of pipeline cancelling are actually a bit more complicated
though. The interruptible flag is *per job*, but once a pipeline has run
*any* non-interruptible job, then the whole pipeline is considered
non-interruptible (ref
https://gitlab.com/gitlab-org/gitlab/-/issues/32837). This leads to the
hack in this MR where by default all jobs are `interruptible: True`, but
for pipelines we definitely want to run, there is a dummy job which
happens first, which is `interreuptible: False`. This has the effect of
dirtying the whole pipeline and preventing another push to master from
cancelling it.

For now, this patch solves the immediate problem of making sure nightly
jobs are not cancelled.
In the future, we may want to enable this job also for the master
branch, making that change might mean we need more CI capacity than
currently available.

[skip ci]

Ticket: #19554

Co-authored-by: Matthew Pickering <matthewtpickering@gmail.com>
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/8191785ed7a28ed7a797990ce8851034162d68bd" style="color: #1068bf;">8191785e</a></strong>
<div>
<span>by Aaron Allen</span>
<i>at 2021-06-23T20:33:48-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>Converts diagnostics for two errors in Ghc.Tc.Module (#19926)

This adds constructors to TcRnMessage to replace use of
TcRnUnknownMessage in Ghc.Tc.Module.
Adds a test case for the UnsafeDueToPlugin warning.

Closes #19926
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/e2d8023dfe1f2f981fc77fe3decd907352592f26" style="color: #1068bf;">e2d8023d</a></strong>
<div>
<span>by Sylvain Henry</span>
<i>at 2021-06-23T20:34:23-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>Add some tests for sized primops
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/d79530d17bc9de61a8bda58308c0377d1c3c697b" style="color: #1068bf;">d79530d1</a></strong>
<div>
<span>by Moritz Angermann</span>
<i>at 2021-06-23T20:34:23-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>[aarch64 NCG] Add better support for sub-word primops

During the intial NCG development, GHC did not have support for
anything below Words.  As such the NCG didn't support any of this
either.  AArch64-Darwin however needs support for subword, as
arguments in excess of the first eight (8) passed via registers
are passed on the stack, and there in a packed fashion.  Thus
ghc learned about subword sizes.  This than lead us to gain
subword primops, and these subsequently highlighted deficiencies
in the AArch64 NCG.

This patch rectifies the ones I found through via the test-suite.
I do not claim this to be exhaustive.

Fixes: #19993

Metric Increase:
    T10421
    T13035
    T13719
    T14697
    T1969
    T9203
    T9872a
    T9872b
    T9872c
    T9872d
    T9961
    haddock.Cabal
    haddock.base
    parsing001
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/38a6d8b8ce838d09a918a536ac80427d5555ca6d" style="color: #1068bf;">38a6d8b8</a></strong>
<div>
<span>by Viktor Dukhovni</span>
<i>at 2021-06-23T20:34:58-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>Fix typo in Note [Quick Look for particular Ids]

Fixes #20029
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/74c874148fbea996cadf1d9fa50f2a44488dd82b" style="color: #1068bf;">74c87414</a></strong>
<div>
<span>by Tamar Christina</span>
<i>at 2021-06-24T12:01:58-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>rts: move xxxHash out of the user namespace
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/4023d4d96a9492eb686883539153b2be7d23e1c7" style="color: #1068bf;">4023d4d9</a></strong>
<div>
<span>by Krzysztof Gogolewski</span>
<i>at 2021-06-24T12:02:33-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>Fix desugaring with unboxed types (#19883)
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/4c6af6be9bd1d2646c88fad4dc10f02c666a01ac" style="color: #1068bf;">4c6af6be</a></strong>
<div>
<span>by Alan Zimmerman</span>
<i>at 2021-06-24T12:03:10-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>EPA: Bringing over tests and updates from ghc-exactprint
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/d6ab9c60288369ec991826b158d751dd4cb3319e" style="color: #1068bf;">d6ab9c60</a></strong>
<div>
<span>by Moritz Angermann</span>
<i>at 2021-06-24T12:03:45-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>[aarch64-macho] Fix off-by-one error in the linker

We need to be careful about the sign bit for BR26 relocation
otherwise we end up encoding a large positive number and reading
back a large negative number.
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/4817183392a6268a485f8060734f9b661ff265cb" style="color: #1068bf;">48171833</a></strong>
<div>
<span>by Matthew Pickering</span>
<i>at 2021-06-24T12:04:19-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>CI: Fix the cabal_test job to compile the Distribution.Simple target

The "Cabal test" was previously testing the compilation of the very
advanced Setup.hs file. Now we compile the whole library, as the test
intended.
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/171413c6789dea02305c34c12407b815449d69be" style="color: #1068bf;">171413c6</a></strong>
<div>
<span>by Matthew Pickering</span>
<i>at 2021-06-24T12:04:19-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>cabal_test: Make output more like head.hackage output

This helps with the import of the results into the performance database.
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/138b7a5775251c330ade870a0b8d1f5c4659e669" style="color: #1068bf;">138b7a57</a></strong>
<div>
<span>by Viktor Dukhovni</span>
<i>at 2021-06-24T12:04:54-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>There's no "errorWithCallStack", just use "error".

There's no `errorWithCallStack`, only `errorWithStackTrace`, but the latter is
now deprecated, since `error` now defaults to returning a stack strace.

So rather than change this to the intended deprecated function we replace
`errorWithCallStack` with `error` instead.
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/4d5967b5148d5502d7c53a5a321919779c3165e4" style="color: #1068bf;">4d5967b5</a></strong>
<div>
<span>by Krzysztof Gogolewski</span>
<i>at 2021-06-24T20:35:56-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>Fixes around incomplete guards (#20023, #20024)

- Fix linearity error with incomplete MultiWayIf (#20023)
- Fix partial pattern binding error message (#20024)
- Remove obsolete test LinearPolyTest
  It tested the special typing rule for ($), which was removed
  during the implementation of Quick Look 97cff9190d3.
- Fix ticket numbers in linear/*/all.T, they referred to linear types
  issue tracker
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/c1c29808e32c95e2843ae6d57931ceca892db6fd" style="color: #1068bf;">c1c29808</a></strong>
<div>
<span>by Christian Takle</span>
<i>at 2021-06-24T20:36:32-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>Update quantified_constraints.rst</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/1c811959187626f33d9b6c9f04f5768155388876" style="color: #1068bf;">1c811959</a></strong>
<div>
<span>by Moritz Angermann</span>
<i>at 2021-06-24T20:37:07-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>[iserv] learn -wait cli flag

Often times when attaching a debugger to iserv it's helpful to have
iserv wait a few seconds for the debugger to attach. -wait can be
passed via -opti-wait if needed.
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/f926ecfdcdf5468b8539bc8f4aad87404f1e397e" style="color: #1068bf;">f926ecfd</a></strong>
<div>
<span>by Matthew Pickering</span>
<i>at 2021-06-24T20:37:42-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>linker: Replace one missed usage of Opt_RPath with useXLinkerRPath

Thanks to @wz1000 for spotting this oversight.
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/fa6451b70faf0aaeb849dfeccb2c24e5d4c16fa6" style="color: #1068bf;">fa6451b7</a></strong>
<div>
<span>by Luite Stegeman</span>
<i>at 2021-06-24T20:38:18-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>fix sdist for base library

config.sub and config.guess aren't used anymore, so they should
be removed from the base.cabal file
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/d1f59540e8b7be96b55ab4b286539a70bc75416c" style="color: #1068bf;">d1f59540</a></strong>
<div>
<span>by sheaf</span>
<i>at 2021-06-25T05:19:18-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>Make reallyUnsafePtrEquality# levity-polymorphic

fixes #17126, updates containers submodule
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/30afb381f380149eb98f80d96c9bfb082c9fac0e" style="color: #1068bf;">30afb381</a></strong>
<div>
<span>by Matthew Pickering</span>
<i>at 2021-06-25T05:19:53-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>ghci: Add test for #18330

This test was fixed by 25977ab542a30df4ae71d9699d015bcdd1ab7cfb

Fixes #18330
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/f43a11d77720bfa38345f8d76938ec4ac34ec0b2" style="color: #1068bf;">f43a11d7</a></strong>
<div>
<span>by Matthew Pickering</span>
<i>at 2021-06-25T05:19:53-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>driver: Add test for #17481

Fixed in 25977ab542a30df4ae71d9699d015bcdd1ab7cfb

Fixes #17481
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/eb39981aa22f9a9e827c53103b813842928e5883" style="color: #1068bf;">eb39981a</a></strong>
<div>
<span>by Matthew Pickering</span>
<i>at 2021-06-25T05:19:53-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>driver: Add test for T14923
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/83dce402043532d43635b305eca76a6f1cf4deff" style="color: #1068bf;">83dce402</a></strong>
<div>
<span>by Zubin Duggal</span>
<i>at 2021-06-25T05:20:27-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>Add regression test for #19921
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/0bb78838e213467b9b5bd2b38767b39b46a294c5" style="color: #1068bf;">0bb78838</a></strong>
<div>
<span>by Vladislav Zavialov</span>
<i>at 2021-06-25T15:41:24-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>Suggest similar names when reporting types in terms (#19978)

This fixes an error message regression.
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/6cc8076684db27e9bb3e320421e844a7cbcb2545" style="color: #1068bf;">6cc80766</a></strong>
<div>
<span>by Matthew Pickering</span>
<i>at 2021-06-25T15:41:58-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>driver: Add implicit package dependencies for template-haskell package

When TemplateHaskellQuotes is enabled, we also generate programs which
mention symbols from the template-haskell module. So that package is
added conditionally if the extension is turned on.

We should really do the same for other wired-in packages:

* base
* ghc-bignum
* ghc-prim
* rts

When we link an executable, we must also link against these
libraries. In accordance with every other package, these dependencies
should  be added into the direct dependencies for a module automatically
and end up in the interface file to record the fact the object file was
created by linking against these packages.

Unfortunately it is not so easy to work out when symbols from each of
these libraries ends up in the generated program. You might think that
`base` would always be used but the `ghc-prim` package doesn't depend
on `base`, so you have to be a bit careful and this futher enhancement
is left to a future patch.
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/221a104f44fdf58e4514d41ae827747c2bf938c8" style="color: #1068bf;">221a104f</a></strong>
<div>
<span>by GHC GitLab CI</span>
<i>at 2021-06-26T22:42:03-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>codeGen: Fix header size for array write barriers

Previously the code generator's logic for invoking the nonmoving write
barrier was inconsistent with the write barrier itself. Namely, the code
generator treated the header size argument as being in words whereas the
barrier expected bytes. This was the cause of #19715.

Fixes #19715.
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/30f233fe8a0342abbafa2b785a32615bace9492f" style="color: #1068bf;">30f233fe</a></strong>
<div>
<span>by GHC GitLab CI</span>
<i>at 2021-06-26T22:42:03-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>rts: Eliminate redundant branch

Previously we branched unnecessarily on
IF_NONMOVING_WRITE_BARRIER_ENABLED on every trip through the array
barrier push loop.
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/9b776cbb1dbc351f7ee5d6d5ef84dd7fa4e4c893" style="color: #1068bf;">9b776cbb</a></strong>
<div>
<span>by sheaf</span>
<i>at 2021-06-26T22:42:39-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>Re-export UnliftedRep and UnliftedType from GHC.Exts
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/b1792fefaf61099541157aaf77a6835ab7a09958" style="color: #1068bf;">b1792fef</a></strong>
<div>
<span>by Zubin Duggal</span>
<i>at 2021-06-27T06:14:36-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>user-guide: Improve documentation of NumDecimals
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/3e71874b32725cb0bd95f6a7effc77190a860b3e" style="color: #1068bf;">3e71874b</a></strong>
<div>
<span>by Jakob Brünker</span>
<i>at 2021-06-27T06:15:11-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>Tc: Allow Typeable in quantified constraints

Previously, when using Typeable in a quantified constraint, GHC would
complain that user-specified instances of Typeable aren't allowed. This
was because checking for SigmaCtxt was missing from a check for whether
an instance head is a hand-written binding.

Fixes #20033
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/d7758da490db3cc662dbebdac4397b4b2c38d0f0" style="color: #1068bf;">d7758da4</a></strong>
<div>
<span>by Sebastian Graf</span>
<i>at 2021-06-27T14:57:39-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>Simplifier: Do Cast W/W for INLINE strong loop-breakers

Strong loop-breakers never inline, INLINE pragma or not.
Hence they should be treated as if there was no INLINE pragma on them.

Also not doing Cast W/W for INLINE strong loop-breakers will trip up Strictness
W/W, because it treats them as if there was no INLINE pragma. Subsequently,
that will lead to a panic once Strictness W/W will no longer do eta-expansion,
as we discovered while implementing !5814.

I also renamed to `unfoldingInfo` to `realUnfoldingInfo` and redefined
`unfoldingInfo` to zap the unfolding it returns in case of a strong loop-breaker.
Now the naming and semantics is symmetrical to `idUnfolding`/`realIdUnfolding`.

Now there was no more reason for `hasInlineUnfolding` to operate on `Id`,
because the zapping of strong loop-breaker unfoldings moved from `idUnfolding`
to `unfoldingInfo`, so I refactored it to take `IdInfo` and call it both from
the Simplifier and WorkWrap, making it utterly clear that both checks are
equivalent.
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/eee498bfce3cce03ba1017b65d559c79d5c2eb60" style="color: #1068bf;">eee498bf</a></strong>
<div>
<span>by Sebastian Graf</span>
<i>at 2021-06-27T14:57:39-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>WorkWrap: Remove mkWWargs (#19874)

`mkWWargs`'s job was pushing casts inwards and doing eta expansion to match
the arity with the number of argument demands we w/w for.

Nowadays, we use the Simplifier to eta expand to arity. In fact, in recent years
we have even seen the eta expansion done by w/w as harmful, see Note [Don't eta
expand in w/w]. If a function hasn't enough manifest lambdas, don't w/w it!

What purpose does `mkWWargs` serve in this world? Not a great one, it turns out!
I could remove it by pulling some important bits,
notably Note [Freshen WW arguments] and Note [Join points and beta-redexes].
Result: We reuse the freshened binder names of the wrapper in the
worker where possible (see testuite changes), much nicer!

In order to avoid scoping errors due to lambda-bound unfoldings in worker
arguments, we zap those unfoldings now. In doing so, we fix #19766.

Fixes #19874.
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/37472a10da1ab39d22f1ab25b08fd6ef799cd0a7" style="color: #1068bf;">37472a10</a></strong>
<div>
<span>by Sebastian Graf</span>
<i>at 2021-06-27T14:57:39-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>WorkWrap: Make mkWWstr and mkWWcpr generate fewer let bindings

In https://gitlab.haskell.org/ghc/ghc/-/merge_requests/5814#note_355144,
Simon noted that `mkWWstr` and `mkWWcpr` could generate fewer let bindings and
be implemented less indirectly by returning the rebuilt expressions directly, e.g. instead of

```
f :: (Int, Int) -> Int
f (x, y) = x+y

==>

f :: (Int, Int) -> Int
f p = case p of (x, y) ->
      case x of I# x' ->
      case y of I# y' ->
      case $wf x' y' of r' ->
      let r = I# r' -- immediately returned
      in r

f :: Int# -> Int# -> Int#
$wf x' y' = let x = I# x' in   -- only used in p
            let y = I# y' in   -- only used in p
            let p = (x, y) in  -- only used in the App below
            case (\(x,y) -> x+y) p of I# r' ->
            r'
```

we know generate

```
f :: (Int, Int) -> Int
f p = case p of (x, y) ->
      case x of I# x' ->
      case y of I# y' ->
      case $wf x' y' of r' ->
      I# r' -- 1 fewer let

f :: Int# -> Int# -> Int#
$wf x' y' = case (\(x,y) -> x+y) (I# x, I# y) of I# r' -> -- 3 fewer lets
            r'
```

Which is much nicer and makes it easier to comprehend the output of
worker-wrapper pre-Simplification as well as puts less strain on the Simplifier.

I had to drop support for #18983, but we found that it's broken anyway.
Simon is working on a patch that provides a bit more justification.
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/e69d070b85a4e911b1245e733e4b95d7d7cd9224" style="color: #1068bf;">e69d070b</a></strong>
<div>
<span>by Sebastian Graf</span>
<i>at 2021-06-27T14:57:39-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>Add regression test for #17819

The only item left in #17819. Fixes #17819.
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/b92479f9e367413cd69ff0877579033ab86cde36" style="color: #1068bf;">b92479f9</a></strong>
<div>
<span>by Sebastian Graf</span>
<i>at 2021-06-27T14:57:39-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>Inliner: Regard LitRubbish as TrivArg and not ConLike

Part of fixing #19766 required the emission of `LitRubbish` as absent filler in
places where we used `absentError` before. In WWRec we have the situation that
such bindings occur in the argument to functions. With `LitRubbish` we inlined
those functions, because

 1. The absent binding was regarded as ConLike. So I fixed `exprIsHNFLike` to
    respond `False` to `LitRubbish`.
 2. The other source of inlining was that after inlining such an absent
    binding, `LitRubbish` itself was regarded `ValueArg` by `interestingArg`,
    leading to more inlining. It now responds `TrivArg` to `LitRubbish`.

Fixes #20035.

There's one slight 1.6% ghc/alloc regression left in T15164 that is due to an
additional specialisation `$s$cget`. I've no idea why that happens; the Core
output before is identical and has the call site that we specialise for.

Metric Decrease:
    WWRec
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/43bbf4b22190dd01bf5261b24bd3ef41da6a6407" style="color: #1068bf;">43bbf4b2</a></strong>
<div>
<span>by Sebastian Graf</span>
<i>at 2021-06-27T14:57:39-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>testsuite: Widen acceptance window of T12545 (#19414)

In a sequel of #19414, I wrote a script that measures min and max allocation
bounds of T12545 based on randomly modifying -dunique-increment. I got a spread
of as much as 4.8%. But instead of widening the acceptance window further (to
5%), I committed the script as part of this commit, so that false positive
increases can easily be diagnosed by comparing min and max bounds to HEAD.

Indeed, for !5814 we have seen T12545 go from -0.3% to 3.3% after a rebase.
I made sure that the min and max bounds actually stayed the same.
In the future, this kind of check can very easily be done in a matter of a
minute. Maybe we should increase the acceptance threshold if we need to check
often (leave a comment on #19414 if you had to check), but I've not been bitten
by it for half a year, which seems OK.

Metric Increase:
    T12545
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/469126b3cef2936d9831283a77d54330d0ff1ba8" style="color: #1068bf;">469126b3</a></strong>
<div>
<span>by Matthew Pickering</span>
<i>at 2021-06-27T14:58:14-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>Revert "Make reallyUnsafePtrEquality# levity-polymorphic"

This reverts commit d1f59540e8b7be96b55ab4b286539a70bc75416c.

This commit breaks the build of unordered-containers

```
[3 of 9] Compiling Data.HashMap.Internal.Array ( Data/HashMap/Internal/Array.hs, dist/build/Data/HashMap/Internal/Array.o, dist/build/Data/HashMap/Internal/Array.dyn_o )
*** Parser [Data.HashMap.Internal.Array]:
Parser [Data.HashMap.Internal.Array]: alloc=21043544 time=13.621
*** Renamer/typechecker [Data.HashMap.Internal.Array]:
Renamer/typechecker [Data.HashMap.Internal.Array]: alloc=151218672 time=187.083
*** Desugar [Data.HashMap.Internal.Array]:
ghc: panic! (the 'impossible' happened)
  GHC version 9.3.20210625:
        expectJust splitFunTy
CallStack (from HasCallStack):
  error, called at compiler/GHC/Data/Maybe.hs:68:27 in ghc:GHC.Data.Maybe
  expectJust, called at compiler/GHC/Core/Type.hs:1247:14 in ghc:GHC.Core.Type
```

Revert containers submodule update
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/46c2d0b0ef4f2f2e43facdb84346f36a9d3169ec" style="color: #1068bf;">46c2d0b0</a></strong>
<div>
<span>by Peter Trommler</span>
<i>at 2021-06-28T10:45:54-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>Fix libffi on PowerPC

Update submodule libffi-tarballs to upstream commit 4f9e20a.

Remove C compiler flags that suppress warnings in the RTS. Those
warnings have been fixed by libffi upstream.

Fixes #19885
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/d4c43df13d428b1acee2149618f8503580303486" style="color: #1068bf;">d4c43df1</a></strong>
<div>
<span>by Zubin Duggal</span>
<i>at 2021-06-28T10:46:29-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>Update docs for change in parsing behaviour of infix operators like  in GHC 9
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/755cb2b0c161d306497b7581b984f62ca23bca15" style="color: #1068bf;">755cb2b0</a></strong>
<div>
<span>by Alfredo Di Napoli</span>
<i>at 2021-06-28T16:57:28-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>Try to simplify zoo of functions in `Tc.Utils.Monad`

This commit tries to untangle the zoo of diagnostic-related functions
in `Tc.Utils.Monad` so that we can have the interfaces mentions only
`TcRnMessage`s while we push the creation of these messages upstream.

It also ports TcRnMessage diagnostics to use the new API, in particular
this commit switch to use TcRnMessage in the external interfaces
of the diagnostic functions, and port the old SDoc to be wrapped
into TcRnUnknownMessage.
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/a7f9670e899bcbc87276446a1aac2304cade2b2f" style="color: #1068bf;">a7f9670e</a></strong>
<div>
<span>by Ryan Scott</span>
<i>at 2021-06-28T16:58:03-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>Fix type and strictness signature of forkOn#

This is a follow-up to #19992, which fixes the type and strictness signature
for `fork#`. The `forkOn#` primop also needs analogous changes, which this
patch accomplishes.
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/b760c1f743ddb496886f095baa920740b38c9ce0" style="color: #1068bf;">b760c1f7</a></strong>
<div>
<span>by Sebastian Graf</span>
<i>at 2021-06-29T15:35:29-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>Demand: Better representation (#19050)

In #19050, we identified several ways in which we could make more illegal
states irrepresentable. This patch introduces a few representation changes
around `Demand` and `Card` with a better and earlier-failing API exported
through pattern synonyms. Specifically,

1. The old enum definition of `Card` led to severely bloated code of operations
   on it. I switched to a bit vector representation; much nicer overall IMO.
   See Note [Bit vector representation for Card].

Most of the gripes with the old representation were related to where which kind
of `Card` was allowed and the fact that it doesn't make sense for an absent or
bottoming demand to carry a `SubDemand` that describes an evaluation context
that is never realised.

2. So I refactored the `Demand` representation so that it has two new data
   constructors for `AbsDmd` and `BotDmd`. The old `(:*)` data constructor
   becomes a pattern synonym which expands absent demands as needed, so that
   it still forms a complete match and a versatile builder. The new `Demand`
   data constructor now carries a `CardNonAbs` and only occurs in a very limited
   number of internal call sites.
3. Wherever a full-blown `Card` might end up in a `CardNonAbs` field (like that
   of `D` or `Call`), I assert the consistency. When the smart builder of `(:*)`
   is called with an absent `Card`, I assert that the `SubDemand` is the same
   that we would expand to in the matcher.
4. `Poly` now takes a `CardNonOnce` and encodes the previously noticed invariant
   that we never produce `Poly C_11` or `Poly C_01`. I made sure that we never
   construct a `Poly` with `C_11` or `C_01`.

Fixes #19050.

We lose a tiny bit of anal perf overall, probably because the new `Demand`
definition can't be unboxed. The biggest loser is WWRec, where allocations go
from 16MB to 26MB in DmdAnal, making up for a total increase of (merely) 1.6%.
It's all within acceptance thresholds.
There are even two ghc/alloc metric decreases. T11545 decreases by *67%*!

Metric Decrease:
    T11545
    T18304
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/4e9f58c759f16a3a20c338799a5b83d334c2778d" style="color: #1068bf;">4e9f58c7</a></strong>
<div>
<span>by sheaf</span>
<i>at 2021-06-29T15:36:08-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>Use HsExpansion for overloaded list patterns

Fixes #14380, #19997
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/2ce7c5153f36dc254f65f766d73ef92251b5aaf7" style="color: #1068bf;">2ce7c515</a></strong>
<div>
<span>by Matthew Pickering</span>
<i>at 2021-06-29T15:36:42-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>ci: Don't allow aarch64-darwin to fail

Part way to #20013
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/f79615d2df9327cde8aae66c6ec211031b69b83c" style="color: #1068bf;">f79615d2</a></strong>
<div>
<span>by Roland Senn</span>
<i>at 2021-07-01T03:29:58-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>Add testcase for #19460

Avoid an other regression.
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/b51b4b9777d49bef5f0a1f6dcbf12ddbcfd9ef59" style="color: #1068bf;">b51b4b97</a></strong>
<div>
<span>by Sylvain Henry</span>
<i>at 2021-07-01T03:30:36-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>Make withException use SDocContext instead of DynFlags
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/6f097a8161dfc97be007b83fccbdb71350d786b1" style="color: #1068bf;">6f097a81</a></strong>
<div>
<span>by Sylvain Henry</span>
<i>at 2021-07-01T03:30:36-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>Remove useless .hs-boot
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/6d712150f8f9400397368b45a152a694ba9d5af4" style="color: #1068bf;">6d712150</a></strong>
<div>
<span>by Sylvain Henry</span>
<i>at 2021-07-01T03:30:36-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>Dynflags: introduce DiagOpts

Use DiagOpts for diagnostic options instead of directly querying
DynFlags (#17957).

Surprising performance improvements on CI:

  T4801(normal) ghc/alloc   313236344.0   306515216.0  -2.1% GOOD
  T9961(normal) ghc/alloc   384502736.0   380584384.0  -1.0% GOOD
  ManyAlternatives(normal) ghc/alloc   797356128.0   786644928.0  -1.3%
  ManyConstructors(normal) ghc/alloc  4389732432.0  4317740880.0  -1.6%
  T783(normal) ghc/alloc   408142680.0   402812176.0  -1.3%

Metric Decrease:
    T4801
    T9961
    T783
    ManyAlternatives
    ManyConstructors

Bump haddock submodule
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/d455c39e93881dc3810ecc16a2f1bfd6c4e2fcdd" style="color: #1068bf;">d455c39e</a></strong>
<div>
<span>by Emily Martins</span>
<i>at 2021-07-01T03:31:13-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>Unify primary and secondary GHCi prompt

Fixes #20042

Signed-off-by: Emily Martins <emily.flakeheart@gmail.com>
Signed-off-by: Hécate Moonlight <hecate@glitchbra.in>
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/05ae47721d05cd35b7a67dac054f0ab483a4ca28" style="color: #1068bf;">05ae4772</a></strong>
<div>
<span>by Emily Martins</span>
<i>at 2021-07-01T03:31:13-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>Unify remaining GHCi prompt example

Signed-off-by: Emily Martins <emily.flakeheart@gmail.com>
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/c22761fa4d53388dba8a96e128a0c85c961e5dc0" style="color: #1068bf;">c22761fa</a></strong>
<div>
<span>by Moritz Angermann</span>
<i>at 2021-07-01T03:31:48-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>[ci] don't allow aarch64-linux (ncg) to fail

by accepting the current state of metrics (and the NCG is new, so this seems
prudent to do), we can require aarch64-linux (ncg) to build without permitting
failure.

Metric Increase:
    T13035
    T13719
    T14697
    T1969
    T9203
    T9872a
    T9872b
    T9872c
    T9872d
    T9961
    WWRec
    haddock.Cabal
    haddock.base
    parsing001
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/82e6a4d20d94df2954f3a180d36d11dc1a40e3fc" style="color: #1068bf;">82e6a4d2</a></strong>
<div>
<span>by Moritz Angermann</span>
<i>at 2021-07-01T03:31:48-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>[ci] Separate llvm and NCG test metrics for aarch64-linux
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/e8192ae4bf6299839bfc72b1ac2fe42a080253ef" style="color: #1068bf;">e8192ae4</a></strong>
<div>
<span>by Moritz Angermann</span>
<i>at 2021-07-01T03:31:48-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>[Parser: Lexer] Fix !6132

clang's cpp injects spaces prior to #!/.
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/66bd59319a6506125758a1c876eba874bf4f1c86" style="color: #1068bf;">66bd5931</a></strong>
<div>
<span>by Moritz Angermann</span>
<i>at 2021-07-01T03:31:48-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>[ci] Enable T6132 across all targets

We should have fixed clangs mess now.
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/66834286d0950a0ea9b907891346dfac0ff0ad55" style="color: #1068bf;">66834286</a></strong>
<div>
<span>by Marco Zocca</span>
<i>at 2021-07-01T10:23:52+00:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>float out some docstrings and comment some function parameters
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/a3c451beefadc8018c1987f8f66c760671bb66ff" style="color: #1068bf;">a3c451be</a></strong>
<div>
<span>by Roland Senn</span>
<i>at 2021-07-01T16:05:21-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>Remove redundant test case print036.

The test case `print036` was marked `broken` by #9046. Issue #9046 is a duplicate of #12449.
However the test case `T12449` contains several test that are similar to those in `print036`.
Hence test case `print036` is redundant and can be deleted.
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/6ac9ea86c339489e692730e849a88e86da730837" style="color: #1068bf;">6ac9ea86</a></strong>
<div>
<span>by Simon Peyton Jones</span>
<i>at 2021-07-02T00:27:04-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>One-shot changes (#20008)

I discovered that GHC.Core.Unify.bindTv was getting arity 2,
rather than 3, in one of my builds.  In HEAD it does get the right
arity, but only because CallArity (just) manages to spot it. In my
situation it (just) failed to discover this.

Best to make it robust, which this patch does.  See
Note [INLINE pragmas and (>>)] in GHC.Utils.Monad.

There a bunch of other modules that probably should have the same
treatment:
  GHC.CmmToAsm.Reg.Linear.State
  GHC.Tc.Solver.Monad
  GHC.Tc.Solver.Rewrite
  GHC.Utils.Monad.State.Lazy
  GHC.Utils.Monad.State.Strict
but doing so is not part of this patch
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/a820f9002d8f75385aaaa141ac3c6f001e8a9874" style="color: #1068bf;">a820f900</a></strong>
<div>
<span>by Sylvain Henry</span>
<i>at 2021-07-02T00:27:42-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>Detect underflow in fromIntegral/Int->Natural rule

Fix #20066
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/bb716a93f6505e5851c0716e4b2f4b52d72dc7c7" style="color: #1068bf;">bb716a93</a></strong>
<div>
<span>by Viktor Dukhovni</span>
<i>at 2021-07-02T04:28:34-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>Fix cut/paste typo foldrM should be foldlM
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/39d665e448c6598a1c12b7e20a13e8094779cd93" style="color: #1068bf;">39d665e4</a></strong>
<div>
<span>by Moritz Angermann</span>
<i>at 2021-07-02T04:29:09-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>Revert "Move validate-x86_64-linux-deb9-hadrian back to quick-build"

This reverts commit a0622459f1d9a7068e81b8a707ffc63e153444f8.
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/c1c9880097ee72985ce39e36f6a9ba114f4aa65d" style="color: #1068bf;">c1c98800</a></strong>
<div>
<span>by Moritz Angermann</span>
<i>at 2021-07-02T04:29:09-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>Move aarch64-linux-llvm to nightly

This job takes by far the longest time on its own, we now have a NCG.
Once we have fast aarch64 machines, we can consider putting
this one back.
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/5e30451db2ef1720910abfe69870c3e8255a4b7d" style="color: #1068bf;">5e30451d</a></strong>
<div>
<span>by Luite Stegeman</span>
<i>at 2021-07-02T23:24:38-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>Support unlifted datatypes in GHCi

fixes #19628
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/9b1d9cbfa7a1beecc4125e35562f542b30ee4f2e" style="color: #1068bf;">9b1d9cbf</a></strong>
<div>
<span>by Sebastian Graf</span>
<i>at 2021-07-02T23:25:13-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>Arity: Handle shadowing properly

In #20070, we noticed that `findRhsArity` copes badly with shadowing.
A simple function like `g_123 x_123 = x_123`, where the labmda binder shadows,
already regressed badly.
Indeed, the whole `arityType` function wasn't thinking about shadowing *at all*.

I rectified that and established the invariant that `ae_join` and `am_sigs`
should always be disjoint. That entails deleting bindings from `ae_join`
whenever we add something to `am_sigs` and vice versa, which would otherwise be
a bug in the making.

That *should* fix (but I don't want to close it) #20070.
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/4b4c5e43ab40d277f18af86db049223fdf55fa59" style="color: #1068bf;">4b4c5e43</a></strong>
<div>
<span>by Fraser Tweedale</span>
<i>at 2021-07-06T13:36:46-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>Implement improved "get executable path" query

System.Environment.getExecutablePath has some problems:

- Some system-specific implementations throw an exception in some
  scenarios, e.g. when the executable file has been deleted

- The Linux implementation succeeds but returns an invalid FilePath
  when the file has been deleted.

- The fallback implementation returns argv[0] which is not
  necessarily an absolute path, and is subject to manipulation.

- The documentation does not explain any of this.

Breaking the getExecutablePath API or changing its behaviour is not
an appealing direction.  So we will provide a new API.

There are two facets to the problem of querying the executable path:

1. Does the platform provide a reliable way to do it?  This is
   statically known.

2. If so, is there a valid answer, and what is it?  This may vary,
   even over the runtime of a single process.

Accordingly, the type of the new mechanism is:

  Maybe (IO (Maybe FilePath))

This commit implements this mechanism, defining the query action for
FreeBSD, Linux, macOS and Windows.

Fixes: #10957
Fixes: #12377
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/a4e742c5157f268781761553496e8e37e3f00ab5" style="color: #1068bf;">a4e742c5</a></strong>
<div>
<span>by Fraser Tweedale</span>
<i>at 2021-07-06T13:36:46-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>Add test for executablePath
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/4002bd1dcee0d05927abc669d6848c43b124c253" style="color: #1068bf;">4002bd1d</a></strong>
<div>
<span>by Ethan Kiang</span>
<i>at 2021-07-06T13:37:24-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>Pass '-x c++' and '-std=c++11' to `cc` for cpp files, in Hadrian

'-x c++' was found to be required on Darwin Clang 11 and 12.
'-std=c++' was found to be needed on Clang 12 but not 11.
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/354ac99de09ce2b08bf81a704a304c25957ad5c4" style="color: #1068bf;">354ac99d</a></strong>
<div>
<span>by Sylvain Henry</span>
<i>at 2021-07-06T13:38:06-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>Use target platform in guessOutputFile
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/1709111472f966f6e571227b035e749f953535a2" style="color: #1068bf;">17091114</a></strong>
<div>
<span>by Edward</span>
<i>at 2021-07-06T13:38:42-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>Fix issue 20038 - Change 'variable' -> 'variables'
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/6618008b5338ae43d8a362c31c5d5e820ff2d61c" style="color: #1068bf;">6618008b</a></strong>
<div>
<span>by Andreas Klebinger</span>
<i>at 2021-07-06T21:17:37+00:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>Fix #19889 - Invalid BMI2 instructions generated.

When arguments are 8 *or 16* bits wide, then truncate before/after
and use the 32bit operation.
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/421beb3f93d1986f0fabeaad6947e3ac4b5304ea" style="color: #1068bf;">421beb3f</a></strong>
<div>
<span>by Matthew Pickering</span>
<i>at 2021-07-07T11:56:36-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>driver: Convert runPipeline to use a free monad

This patch converts the runPipeline function to be implemented in terms
of a free monad rather than the previous CompPipeline.

The advantages of this are three-fold:

1. Different parts of the pipeline can return different results, the
limits of runPipeline were being pushed already by !5555, this opens up
futher fine-grainedism of the pipeline.
2. The same mechanism can be extended to build-plan at the module level
so the whole build plan can be expressed in terms of one computation
which can then be treated uniformly.
3. The pipeline monad can now be interpreted in different ways, for
example, you may want to interpret the `TPhase` action into the monad
for your own build system (such as shake). That bit will probably
require a bit more work, but this is a step in the right directin.

There are a few more modules containing useful functions for interacting
with the pipelines.

* GHC.Driver.Pipeline: Functions for building pipelines at a high-level
* GHC.Driver.Pipeline.Execute: Functions for providing the default
interpretation of TPhase, in terms of normal IO.
* GHC.Driver.Pipeline.Phases: The home for TPhase, the typed phase data
type which dictates what the phases are.
* GHC.Driver.Pipeline.Monad: Definitions to do with the TPipelineClass
and MonadUse class.

Hooks consumers may notice the type of the `phaseHook` has got
slightly more restrictive, you can now no longer control the
continuation of the pipeline by returning the next phase to execute but
only override individual phases. If this is a problem then please open
an issue and we will work out a solution.

-------------------------
Metric Decrease:
    T4029
-------------------------
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/5a31abe3544c21d0b45d264ea68f89bbb108251d" style="color: #1068bf;">5a31abe3</a></strong>
<div>
<span>by Matthew Pickering</span>
<i>at 2021-07-07T11:56:36-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>driver: Add test for #12983

This test has worked since 8.10.2 at least but was recently broken and
is now working again after this patch.

Closes #12983
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/56eb57a6b348d44370fc84f6a35caabd1c548b5e" style="color: #1068bf;">56eb57a6</a></strong>
<div>
<span>by Alfredo Di Napoli</span>
<i>at 2021-07-08T08:13:23+02:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>Rename getErrorMessages and getMessages function in parser code

This commit renames the `getErrorMessages` and
`getMessages` function in the parser code to `getPsErrorMessages` and
`getPsMessages`, to avoid import conflicts, as we have already
`getErrorMessages` and `getMessages` defined in `GHC.Types.Error`.

Fixes #19920.

Update haddock submodule
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/82284ba19a588516a49905762b0352cb198a3948" style="color: #1068bf;">82284ba1</a></strong>
<div>
<span>by Matthew Pickering</span>
<i>at 2021-07-09T08:46:09-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>Remove reqlib from cgrun025 test
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/bc38286c57dd9d0e80ef442edc338acdd60e38a3" style="color: #1068bf;">bc38286c</a></strong>
<div>
<span>by Matthew Pickering</span>
<i>at 2021-07-09T08:46:09-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>Make throwto002 a normal (not reqlib) test
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/573012c7be49e24ec09a88e078fd22f62f9a4b1d" style="color: #1068bf;">573012c7</a></strong>
<div>
<span>by Alfredo Di Napoli</span>
<i>at 2021-07-09T08:46:44-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>Add the TcRnShadowedName constructor to TcRnMessage

This commit adds the TcRnShadowedName to the TcRnMessage type and it
uses it in GHC.Rename.Utils.
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/558724237b978ab2293a62ee48fe2b2f603a6791" style="color: #1068bf;">55872423</a></strong>
<div>
<span>by Alfredo Di Napoli</span>
<i>at 2021-07-09T08:46:44-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>Add the TcRnDuplicateWarningDecls to TcRnMessage
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/1e8055175cbb63e06540610a0452906981584e6b" style="color: #1068bf;">1e805517</a></strong>
<div>
<span>by Alfredo Di Napoli</span>
<i>at 2021-07-09T08:46:44-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>Add TcRnSimplifierTooManyIterations to TcRnMessage
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/bc2c00dd7c4313d3aa10d1d1a8258e1bb360ad2d" style="color: #1068bf;">bc2c00dd</a></strong>
<div>
<span>by Alfredo Di Napoli</span>
<i>at 2021-07-09T08:46:44-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>Add TcRnIllegalPatSynDecl to TcRnMessage
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/52353476eeac58870bb9053af58ca35b473141a7" style="color: #1068bf;">52353476</a></strong>
<div>
<span>by Alfredo Di Napoli</span>
<i>at 2021-07-09T08:46:44-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>Add TcRnEmptyRecordUpdate to TcRnMessage
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/f0a02dcc7517452246cd2f3f874b48d91bd68a68" style="color: #1068bf;">f0a02dcc</a></strong>
<div>
<span>by Alfredo Di Napoli</span>
<i>at 2021-07-09T08:46:44-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>Add TcRnIllegalFieldPunning to TcRnMessage
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/5193bd06c09009ebd2797a6674b458ec4b70248b" style="color: #1068bf;">5193bd06</a></strong>
<div>
<span>by Alfredo Di Napoli</span>
<i>at 2021-07-09T08:46:44-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>Add TcRnIllegalWildCardsInRecord to TcRnMessage
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/e17850c4b9b988809dafbd6a35c7b3c3bf050dd5" style="color: #1068bf;">e17850c4</a></strong>
<div>
<span>by Alfredo Di Napoli</span>
<i>at 2021-07-09T08:46:44-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>Add TcRnDuplicateFieldName to TcRnMessage
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/6b4f3a99f1e04943ca5a43490284c5774a346bbb" style="color: #1068bf;">6b4f3a99</a></strong>
<div>
<span>by Alfredo Di Napoli</span>
<i>at 2021-07-09T08:46:44-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>Add TcRnIllegalViewPattern to TcRnMessage
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/8d28b481098742f4fded2ae465a3f49516e2a95c" style="color: #1068bf;">8d28b481</a></strong>
<div>
<span>by Alfredo Di Napoli</span>
<i>at 2021-07-09T08:46:44-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>Add TcRnCharLiteralOutOfRange to TcRnMessage
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/64e205219fe70a724bcf4558839beaaeb41b2780" style="color: #1068bf;">64e20521</a></strong>
<div>
<span>by Alfredo Di Napoli</span>
<i>at 2021-07-09T08:46:44-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>Remove redundant patSigErr
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/60fabd7eb3e3450636673d818075da19074ddad0" style="color: #1068bf;">60fabd7e</a></strong>
<div>
<span>by Alfredo Di Napoli</span>
<i>at 2021-07-09T08:46:44-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>Add TcRnIllegalWildcardsInConstructor to TcRnMessage
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/2d4cdfda6a7f068fe4a1cf586ccb2866b35e0250" style="color: #1068bf;">2d4cdfda</a></strong>
<div>
<span>by Sylvain Henry</span>
<i>at 2021-07-09T08:47:22-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>Avoid unsafePerformIO for getProgName

getProgName was used to append the name of the program (e.g. "ghc") to
printed error messages in the Show instance of GhcException. It doesn't
belong here as GHCi and GHC API users may want to override this behavior
by setting a different error handler. So we now call it in the
defaultErrorHandler instead.
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/901f0e1b38730401a3e74d25a0b041ce551797c9" style="color: #1068bf;">901f0e1b</a></strong>
<div>
<span>by sheaf</span>
<i>at 2021-07-10T13:29:03+02:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>Don't return unitExpr in dsWhenNoErrs

  - fixes #18149 and #14765

dsWhenNoErrs now returns "runtimeError @ty" when disallowed
representation polymorphism is detected, where ty is the type of the
result CoreExpr. "ty" is passed as an additional argument to
dsWhenNoErrs, and is used only in the case of such an error.

The calls to dsWhenNoErrs must now compute the type of the
CoreExpr they are trying to build, so that an error of the right type
can be used in case of a representation polymorphism failure.
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/c38bce737f532cec1d863d3e15bed4a8addbffd1" style="color: #1068bf;">c38bce73</a></strong>
<div>
<span>by Matthew Pickering</span>
<i>at 2021-07-10T19:59:34-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>ci: Copy the cache from inside the nix-shell where $HOME is different on darwin

Hopefully fixes the flaky CI failures we have seen recently.

Co-authored-by: Moritz Angerman <moritz.angermann@gmail.com>
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/a181313e9205fe289bedf6c8931eb2933490625c" style="color: #1068bf;">a181313e</a></strong>
<div>
<span>by Alfredo Di Napoli</span>
<i>at 2021-07-12T14:19:22+02:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>Add proper GHCHints for most PsMessage constructors

This commit adds proper hints to most diagnostic types in the
`GHC.Parser.Errors.Types` module. By "proper" we mean that previous to
this commit the hints were bundled together with the diagnostic message,
whereas now we moved most of them as proper `[GhcHint]` in the
implementation of `diagnosticHints`.

More specifically, this is the list of constructors which now has
proper hints:

* PsErrIllegalBangPattern
* PsWarnOperatorWhitespaceExtConflict
* PsErrLambdaCase
* PsErrIllegalPatSynExport
* PsWarnOperatorWhitespace
* PsErrMultiWayIf
* PsErrIllegalQualifiedDo
* PsErrNumUnderscores
* PsErrLinearFunction
* PsErrIllegalTraditionalRecordSyntax
* PsErrIllegalExplicitNamespace
* PsErrOverloadedRecordUpdateNotEnabled
* PsErrIllegalDataTypeContext
* PsErrSemiColonsInCondExpr
* PsErrSemiColonsInCondCmd
* PsWarnStarIsType
* PsWarnImportPreQualified
* PsErrImportPostQualified
* PsErrEmptyDoubleQuotes
* PsErrIllegalRoleName
* PsWarnStarBinder

For some reason, this patch increases the peak_megabyte_allocated of
the T11545 test to 90 (from a baseline of 80) but that particular test
doesn't emit any parsing diagnostic or hint and the metric increase
happens only for the `aarch64-linux-deb10`.

Metric Increase:
    T11545
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/aef7d51350feebfb29a011361d03b249049a2a0b" style="color: #1068bf;">aef7d513</a></strong>
<div>
<span>by Matthew Pickering</span>
<i>at 2021-07-13T15:16:19-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>driver: Fix interaction of -Wunused-packages and reexported-modules

Spurious warnings were previously emitted if an import came from a
reexport due to how -Wunused-packages were implemented. Removing the
dependency would cause compilation to fail.

The fix is to reimplement the warning a bit more directly, by searching
for which package each import comes from using the normal module finding
functions rather than consulting the EPS. This has the advantage that
the check could be performed at any time after downsweep rather than
also relying on a populated EPS.

Fixes #19518 and #19777
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/bb8e0df8f4187a4f4d0788dd3da3ef6f9268d378" style="color: #1068bf;">bb8e0df8</a></strong>
<div>
<span>by Adrien</span>
<i>at 2021-07-13T15:16:56-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>Added a hopefully clarificatory sentence about the notion of "atomicity" presupposed in the documentation on MVar.
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/9992159318d0f0c3fcf1c1ae060bb15d0b5fc1a8" style="color: #1068bf;">99921593</a></strong>
<div>
<span>by Zubin Duggal</span>
<i>at 2021-07-13T20:45:44+00:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>Don't panic on 'no skolem info' and add failing tests
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/de98a0ce8f184c9653477ee41602f999c7a381e1" style="color: #1068bf;">de98a0ce</a></strong>
<div>
<span>by Sylvain Henry</span>
<i>at 2021-07-15T23:29:09-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>Additional constant-folding rule for binary AND/OR

Add a constant folding rule allowing the subsumption of an application
if the same argument is applied twice, e.g.

  (v .&. 0xFF) .&. 0xFF ~~> v .&. 0xFF
  (v .|. 0xFF) .|. 0xFF ~~> v .|. 0xFF
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/41d6cfc4d36ba93d82f16f9a83ea69f4e02c3810" style="color: #1068bf;">41d6cfc4</a></strong>
<div>
<span>by Sylvain Henry</span>
<i>at 2021-07-15T23:29:09-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>Add Word64#/Int64# primops

Word64#/Int64# are only used on 32-bit architectures. Before this patch,
operations on these types were directly using the FFI. Now we use real
primops that are then lowered into ccalls.

The advantage of doing this is that we can now perform constant folding on
Word64#/Int64# (#19024).

Most of this work was done by John Ericson in !3658. However this patch
doesn't go as far as e.g. changing Word64 to always be using Word64#.

Noticeable performance improvements

          T9203(normal) run/alloc    89870808.0    66662456.0 -25.8% GOOD
  haddock.Cabal(normal) run/alloc 14215777340.8 12780374172.0 -10.1% GOOD
   haddock.base(normal) run/alloc 15420020877.6 13643834480.0 -11.5% GOOD

Metric Decrease:
    T9203
    haddock.Cabal
    haddock.base
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/5b187575dac64e0a202f0700bdb7a1d1604f9438" style="color: #1068bf;">5b187575</a></strong>
<div>
<span>by Simon Peyton Jones</span>
<i>at 2021-07-19T10:59:38+01:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>Better sharing of join points (#19996)

This patch, provoked by regressions in the text package
(#19557), improves sharing of join points.  This also fixes
the terrible behaviour in #20049.

See Note [Duplicating join points] in GHC.Core.Opt.Simplify.

* In the StrictArg case of mkDupableContWithDmds, don't
  use Plan A for data constructors

* In postInlineUnconditionally, don't inline JoinIds
  Avoids inlining  join $j x = Just x
                   in case blah of
                         A -> $j x1
                         B -> $j x2
                         C -> $j x3

* In mkDupableStrictBind and mkDupableStrictAlt, create
  join points (much) more often: exprIsTrivial rather than
  exprIsDupable.  This may be much, but we'll see.

Metric Decrease:
    T12545
    T13253-spj
    T13719
    T18140
    T18282
    T18304
    T18698a
    T18698b
Metric Increase:
    T16577
    T18923
    T9961
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/e5a4cfa51899e67db8fb17409660107b821d252d" style="color: #1068bf;">e5a4cfa5</a></strong>
<div>
<span>by Sylvain Henry</span>
<i>at 2021-07-19T19:36:37-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>Bignum: don't allocate in bignat_mul (#20028)

We allocated the recursively entered `mul` helper function because it
captures some args.
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/952ba18e596f406d08003a9ff07f95a5a94a2ede" style="color: #1068bf;">952ba18e</a></strong>
<div>
<span>by Matthew Pickering</span>
<i>at 2021-07-19T19:37:12-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>th: Weaken return type of myCoreToStgExpr

The previous code assumed properties of the CoreToStg translation,
namely that a core let expression which be translated to a single
non-recursive top-level STG binding. This assumption was false, as
evidenced by #20060.

The consequence of this was the need to modify the call sites of
`myCoreToStgExpr`, the main one being in hscCompileCoreExpr', which
the meant we had to use byteCodeGen instead of stgExprToBCOs to convert
the returned value to bytecode.

I removed the `stgExprToBCOs` function as it is no longer
used in the compiler.

There is still some partiallity with this patch (the lookup in
hscCompileCoreExpr') but this should be more robust that before.

Fixes #20060
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/3e8b39eaf098769d33c9a46657c18a277397424c" style="color: #1068bf;">3e8b39ea</a></strong>
<div>
<span>by Alfredo Di Napoli</span>
<i>at 2021-07-19T19:37:47-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>Rename RecordPuns to NamedFieldPuns in LangExt.Extension

This commit renames the `RecordPuns` type constructor inside
`GHC.LanguageExtensions.Type.hs` to `NamedFieldPuns`.

The rationale is that the `RecordPuns` language extension was deprecated
a long time ago, but it was still present in the AST, introducing an
annoying mismatch between what GHC suggested (i.e. "use NamedFieldPuns")
and what that translated into in terms of Haskell types.
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/535123e4f6505a148ccaa536c21282a87c42669c" style="color: #1068bf;">535123e4</a></strong>
<div>
<span>by Simon Peyton Jones</span>
<i>at 2021-07-19T19:38:21-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>Don't duplicate constructors in the simplifier

Ticket #20125 showed that the Simplifier could sometimes duplicate a
constructor binding.  CSE would often eliminate it later, but doing it
in the first place was utterly wrong.

See Note [Do not duplicate constructor applications] in Simplify.hs

I also added a short-cut to Simplify.simplNonRecX for the case
when the RHS is trivial.  I don't think this will change anything,
just make the compiler run a tiny bit faster.
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/58b960d2af0ebfc37104ec68a4df377a074951dd" style="color: #1068bf;">58b960d2</a></strong>
<div>
<span>by Sylvain Henry</span>
<i>at 2021-07-19T19:38:59-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>Make TmpFs independent of DynFlags

This is small step towards #19877. We want to make the Loader/Linker
interface more abstract to be easily reused (i.e. don't pass it
DynFlags) but the system linker uses TmpFs which required a DynFlags
value to get its temp directory. We explicitly pass the temp directory
now. Similarly TmpFs was consulting the DynFlags to decide whether to
clean or: this is now done by the caller in the driver code.
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/d706fd0432925caf62673a55237a005e22bc4450" style="color: #1068bf;">d706fd04</a></strong>
<div>
<span>by Matthew Pickering</span>
<i>at 2021-07-20T09:22:46+01:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>hadrian: Update docs targets documentation [skip ci]

The README had got a little out of sync with the current state of
affairs.
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/9eb1641e0ef10a7887e794d4d114c9a18a2fd265" style="color: #1068bf;">9eb1641e</a></strong>
<div>
<span>by Matthew Pickering</span>
<i>at 2021-07-21T02:45:39-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>driver: Fix recompilation for modules importing GHC.Prim

The GHC.Prim module is quite special as there is no interface file,
therefore it doesn't appear in ms_textual_imports, but the ghc-prim
package does appear in the direct package dependencies. This confused
the recompilation checking which couldn't find any modules from ghc-prim
and concluded that the package was no longer a dependency.

The fix is to keep track of whether GHC.Prim is imported separately in
the relevant places.

Fixes #20084
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/06d1ca856d3374bf8dac952740cfe4cef76a350d" style="color: #1068bf;">06d1ca85</a></strong>
<div>
<span>by Alfredo Di Napoli</span>
<i>at 2021-07-21T02:46:13-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>Refactor SuggestExtension constructor in GhcHint

This commit refactors the SuggestExtension type constructor of the
GhcHint to be more powerful and flexible. In particular, we can now
embed extra user information (essentially "sugar") to help clarifying
the suggestion. This makes the following possible:

Suggested fix: Perhaps you intended to use GADTs
               or a similar language extension to enable syntax: data T where

We can still give to IDEs and tools a `LangExt.Extension` they can use,
but in the pretty-printed message we can tell the user a bit more on why
such extension is needed.

On top of that, we now have the ability to express conjuctions and
disjunctons, for those cases where GHC suggests to enable "X or Y" and
for the cases where we need "X and Y".
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/5b157eb2bea7fc4ad654c83258cf1ab6ad0f85f0" style="color: #1068bf;">5b157eb2</a></strong>
<div>
<span>by Fendor</span>
<i>at 2021-07-21T02:46:50-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>Use Ways API instead of Set specific functions
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/10124b16538091806953d732e24ca485a0664895" style="color: #1068bf;">10124b16</a></strong>
<div>
<span>by Mario Blažević</span>
<i>at 2021-07-21T02:47:25-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>template-haskell: Add support for default declarations

Fixes #19373
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/e8f7734d8a052f99b03e1123466dc9f47b48c311" style="color: #1068bf;">e8f7734d</a></strong>
<div>
<span>by John Ericson</span>
<i>at 2021-07-21T22:51:41+00:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>Fix #19931

The issue was the renderer for x86 addressing modes assumes native size
registers, but we were passing in a possibly-smaller index in
conjunction with a native-sized base pointer.

The easist thing to do is just extend the register first.

I also changed the other NGC backends implementing jump tables
accordingly. On one hand, I think PowerPC and Sparc don't have the small
sub-registers anyways so there is less to worry about. On the other
hand, to the extent that's true the zero extension can become a no-op.

I should give credit where it's due: @hsyl20 really did all the work for
me in
https://gitlab.haskell.org/ghc/ghc/-/merge_requests/4717#note_355874,
but I was daft and missed the "Oops" and so ended up spending a silly
amount of time putting it all back together myself.

The unregisterised backend change is a bit different, because here we
are translating the actual case not a jump table, and the fix is to
handle right-sized literals not addressing modes. But it makes sense to
include here too because it's the same change in the subsequent commit
that exposes both bugs.
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/024020c38126f3ce326ff56906d53525bc71690c" style="color: #1068bf;">024020c3</a></strong>
<div>
<span>by John Ericson</span>
<i>at 2021-07-21T22:52:52+00:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>Use fix-sized equality primops for fixed size boxed types

These are the last to be converted.
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/fd7e272eab1c0a107e9f2d03287699b65c609b9b" style="color: #1068bf;">fd7e272e</a></strong>
<div>
<span>by Sylvain Henry</span>
<i>at 2021-07-23T21:05:41-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>Perf: fix strictness in OccurAnal

This patch enhances OccurAnal perf by using a dedicated WithUsageDetails
datatype instead of a tuple (similarly to what has been done in
demand-analysis) with strict fields.

OccEnv is also passed strictly with more strict fields as it improves
results even more.

T9198 flukes isn't reproducible locally (cf
https://gitlab.haskell.org/ghc/ghc/-/merge_requests/5667#note_364358)

Metric Decrease:
    ManyConstructors
    T10421
    T12150
    T12425
    T12707
    T13056
    T13253
    T13253-spj
    T15164
    T16577
    T18282
    T18698a
    T18698b
    T1969
    T4801
    T5642
    T9020
    T9233
    T9630
    T9675
    T9961
    WWRec
    T12227
    T13035
    T18304
    T6048
    T12234
    T783
    T20049
Metric Increase:
    T9198
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/ba3028778942f63e888142e5b4d036423049006c" style="color: #1068bf;">ba302877</a></strong>
<div>
<span>by sheaf</span>
<i>at 2021-07-23T21:06:18-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>Add nontrivial type-checking plugin tests

  Three new tests for type-checking plugins:

    - TcPlugin_Nullary, solving a nullary class constraint
    - TcPlugin_Args, providing evidence for a (unary) class constraint
      using arguments supplied to the plugin
    - TcPlugin_TyFam, solving an equality constraint to rewrite
      a type-family application

  More extensive descriptions of the plugins can be found in their
  respective defining modules.
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/5d670abd1c2c53a6c0918b1fe52b8ff581b9a394" style="color: #1068bf;">5d670abd</a></strong>
<div>
<span>by sheaf</span>
<i>at 2021-07-23T21:06:56-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>Generalise reallyUnsafePtrEquality# and use it

fixes #9192 and #17126
updates containers submodule

1. Changes the type of the primop `reallyUnsafePtrEquality#` to the most
general version possible (heterogeneous as well as levity-polymorphic):

> reallyUnsafePtrEquality#
>   :: forall {l :: Levity} {k :: Levity}
>        (a :: TYPE (BoxedRep l)) (b :: TYPE (BoxedRep k))
>   . a -> b -> Int#

2. Adds a new internal module, `GHC.Ext.PtrEq`, which contains pointer
equality operations that are now subsumed by `reallyUnsafePtrEquality#`.
These functions are then re-exported by `GHC.Exts` (so that no function
goes missing from the export list of `GHC.Exts`, which is user-facing).
More specifically, `GHC.Ext.PtrEq` defines:

  - A new function:
    * reallyUnsafePtrEquality :: forall (a :: Type). a -> a -> Int#

  - Library definitions of ex-primops:
     * `sameMutableArray#`
     * `sameSmallMutableArray`
     * `sameMutableByteArray#`
     * `sameMutableArrayArray#`
     * `sameMutVar#`
     * `sameTVar#`
     * `sameMVar#`
     * `sameIOPort#`
     * `eqStableName#`

  - New functions for comparing non-mutable arrays:
     * `sameArray#`
     * `sameSmallArray#`
     * `sameByteArray#`
     * `sameArrayArray#`

  These were requested in #9192.

Generally speaking, existing libraries that
use `reallyUnsafePtrEquality#` will continue to work with the new,
levity-polymorphic version. But not all!
Some (`containers`, `unordered-containers`, `dependent-map`) contain
the following:

> unsafeCoerce# reallyUnsafePtrEquality# a b

If we make `reallyUnsafePtrEquality#` levity-polymorphic, this code
fails the current GHC representation-polymorphism checks.
We agreed that the right solution here is to modify the library;
in this case by deleting the call to `unsafeCoerce#`,
since `reallyUnsafePtrEquality#` is now type-heterogeneous too.
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/4beb12dbc4a7c42c3967dd51da769a3346192a1b" style="color: #1068bf;">4beb12db</a></strong>
<div>
<span>by Matthew Pickering</span>
<i>at 2021-07-23T21:07:31-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>Add test for #13157

Closes #13157
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/509445b5947ce85499672399f5e88b6196af4c5a" style="color: #1068bf;">509445b5</a></strong>
<div>
<span>by Matthew Pickering</span>
<i>at 2021-07-23T21:08:05-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>Check the buffer size *before* calling the continuation in withEncodedCString

This fixes a very subtle bug in withEncodedCString where a reference would
be kept to the whole continuation until the continuation had finished
executing. This was because the call to tryFillBufferAndCall could fail,
if the buffer was already full and so the `go` helper would be
recursively called on failure which necessitated keeping a reference to
`act`.

The failure could only happen during the initial checking phase of the
function but not during the call to the continuation. Therefore the fix
is to first perform the size check, potentially recursively and then
finally calling tail calling the continuation.

In the real world, this broke writing lazy bytestrings because a
reference to the head of the bytestring would be retained in the
continuation until the whole string had been written to a file.

Fixes #20107
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/6c79981e646a9983e959ccbf67f6c11b86bdbc6f" style="color: #1068bf;">6c79981e</a></strong>
<div>
<span>by Fendor</span>
<i>at 2021-07-23T21:08:42-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>Introduce FinderLocations for decoupling Finder from DynFlags
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/b26a7065cec7ade894b8318aae66610e345b7e78" style="color: #1068bf;">b26a7065</a></strong>
<div>
<span>by Matthew Pickering</span>
<i>at 2021-07-23T21:09:17-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>Fix a few retainer leaks of TcGblEnv

Methodology: Create a -hi profile and then search for TcGblEnv
then use ghc-debug to work out why they are being retained and remove
the reason.

Retaining TcGblEnv is dangerous because it contains pointers to things
such as a TypeEnv which is updated throughout compilation. I found two
places which were retaining a TcGblEnv unecessarily.

Also fix a few places where an OccName was retaining an Id.
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/efaad7add092c88eab46e00a9f349d4675bbee06" style="color: #1068bf;">efaad7ad</a></strong>
<div>
<span>by Matthew Pickering</span>
<i>at 2021-07-23T21:09:17-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>Stop ug_boring_info retaining a chain of old CoreExpr

It was noticed in #20134 that each simplifier iteration used an
increasing amount of memory and that a certain portion of memory was not
released until the simplfier had completely finished.

I profiled the program using `-hi` profiling and observed that there was
a thunk arising in the computation of `ug_boring_ok`. On each iteration
`ug_boring_ok` would be updated, but not forced, which would leave a
thunk in the shape of

ug_boring_ok = inlineBoringOk expr0 || inlineBoringOk expr2 || inlineBoringOk expr3 || ...

which would retain all previous `expr` until `ug_boring_ok` was forced
or discarded.

Forcing this accumulator eagerly results in a flat profile over multiple
simplifier runs.

This reduces the maximum residency when compiling the test in #20134
from 2GB to 1.3G.

-------------------------
Metric Decrease:
    T11545
-------------------------
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/b6434ed3f90f322bacc586ee08004bf4915002f9" style="color: #1068bf;">b6434ed3</a></strong>
<div>
<span>by Ben Gamari</span>
<i>at 2021-07-23T21:09:52-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>Cmm.Opt: Fix type of shift amount in constant folding

Previously the `MO_S_Quot` constant folding rule would incorrectly pass
the shift amount of the same width as the shifted value. However, the
machop's type expects the shift amount to be a Word.

Fixes #20142.
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/a31aa2716b80e617c36db816460faa94ee952b64" style="color: #1068bf;">a31aa271</a></strong>
<div>
<span>by Ben Gamari</span>
<i>at 2021-07-23T21:09:52-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>testsuite: Add test for #20142
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/3801b35a4c479b07275a61df11d0107c242a4e43" style="color: #1068bf;">3801b35a</a></strong>
<div>
<span>by Moritz Angermann</span>
<i>at 2021-07-25T09:41:46-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>[CI] absolutely no caching on darwin

We failed at doing caching properly, so for now we won't do any
caching at all.  This is not safe in a concurrent setting, however
all our darwin builders run with concurrency 1, and -j8, on 8 core
m1 mac minis.
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/1832676aba0a5d75ac934a62eff55e35f95587d5" style="color: #1068bf;">1832676a</a></strong>
<div>
<span>by Moritz Angermann</span>
<i>at 2021-07-25T09:41:46-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>[rts] Untag bq->bh prior to reading the info table

In `checkBlockingQueues` we must always untag the `bh` field of an `StgBlockingQueue`.
While at first glance it might seem a sensible assumption that `bh` will
always be a blackhole and therefore never be tagged, the GC could
shortcut the indirection and put a tagged pointer into the indirection.

This blew up on aarch64-darwin with a misaligned access. `bh` pointed
to an address that always ended in 0xa. On architectures that
are a little less strict about alignment, this would have read
a garbage info table pointer, which very, very unlikely would have been equal to
`stg_BLACKHOLE_info` and therefore things accidentally worked. However,
on AArch64, the read of the info table pointer resulted in a SIGBUS due
to misaligned read.

Fixes #20093.
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/5b39a10781da9d428bf98d934d0f82eb55054183" style="color: #1068bf;">5b39a107</a></strong>
<div>
<span>by Ben Gamari</span>
<i>at 2021-07-25T17:30:52+00:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>hadrian: Don't add empty -I arguments

Previously hadrian would add a -I$FfiIncludeDir flag to compiler
invocations even if FfiIncludeDir was null, resulting in compilation
errors.
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/5f3991c7cab8ccc9ab8daeebbfce57afbd9acc33" style="color: #1068bf;">5f3991c7</a></strong>
<div>
<span>by Sylvain Henry</span>
<i>at 2021-07-26T04:55:03-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>RTS: try to fix timer races

* Pthread based timer was initialized started while some other parts of
  the RTS assume it is initialized stopped, e.g. in hs_init_ghc:

     /* Start the "ticker" and profiling timer but don't start until the
     * scheduler is up. However, the ticker itself needs to be initialized
     * before the scheduler to ensure that the ticker mutex is initialized as
     * moreCapabilities will attempt to acquire it.
     */

* after a fork, don't start the timer before the IOManager is
  initialized: the timer handler (handle_tick) might call wakeUpRts to
  perform an idle GC, which calls wakeupIOManager/ioManagerWakeup

Found while debugging #18033/#20132 but I couldn't confirm if it fixes
them.
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/0462750fa475537b817bdcec1a94d924a3489d36" style="color: #1068bf;">0462750f</a></strong>
<div>
<span>by Fendor</span>
<i>at 2021-07-27T04:46:42-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>Remove unused module GHC.Rename.Doc
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/51ff03655850cf73a0bfd0ff9d974b184d9aac17" style="color: #1068bf;">51ff0365</a></strong>
<div>
<span>by Ben Gamari</span>
<i>at 2021-07-27T04:47:16-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>rename: Avoid unnecessary map lookup

Previously the -Wcompat-unqualified-imports warning would first check
whether an import is of a covered module, incurring an map lookup,
before checking the simple boolean predicate of whether it is qualified.
This is more expensive than strictly necessary (although at the moment
the warning is unused, so this will make little difference).
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/167a01f7680633eae52105fe19c69590eabfa330" style="color: #1068bf;">167a01f7</a></strong>
<div>
<span>by Ben Gamari</span>
<i>at 2021-07-27T04:47:51-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>rts: Document CPP guards
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/246f08ac032392f808c7aa53dd78a96d9b43e63f" style="color: #1068bf;">246f08ac</a></strong>
<div>
<span>by Ben Gamari</span>
<i>at 2021-07-27T04:47:51-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>rts: Move libffi interfaces all to Adjustor

Previously the libffi Adjustor implementation would use allocateExec to
create executable mappings. However, allocateExec is also used elsewhere
in GHC to allocate things other than ffi_closure, which is a use-case
which libffi does not support.
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/2ce48fe9d1334dadf6fa1411238e52d65b66ba41" style="color: #1068bf;">2ce48fe9</a></strong>
<div>
<span>by Ben Gamari</span>
<i>at 2021-07-27T04:47:51-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>rts: Break up adjustor logic
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/3b07d8270341725c862230d8aec213fe34bd9fb6" style="color: #1068bf;">3b07d827</a></strong>
<div>
<span>by Ben Gamari</span>
<i>at 2021-07-27T04:47:51-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>rts/adjustor: Drop redundant commments
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/0e875c3f1d7373812ddae9962edfc9538465d2ed" style="color: #1068bf;">0e875c3f</a></strong>
<div>
<span>by Ben Gamari</span>
<i>at 2021-07-27T04:47:51-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>rts: Introduce and use ExecPage abstraction

Here we introduce a very thin abstraction for allocating, filling, and
freezing executable pages to replace allocateExec.
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/f6e366c058b136f0789a42222b8189510a3693d1" style="color: #1068bf;">f6e366c0</a></strong>
<div>
<span>by Ben Gamari</span>
<i>at 2021-07-27T04:47:51-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>rts: Drop allocateExec and friends

All uses of these now use ExecPage.
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/dd3c9602fdb0d408509d166cc0bf05777753ca43" style="color: #1068bf;">dd3c9602</a></strong>
<div>
<span>by Ben Gamari</span>
<i>at 2021-07-27T04:47:51-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>hadrian: Always specify flag values explicitly

Previously we would often allow cabal flags to default, making it harder
than necessary to reason about the effective build configuration.
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/63184a71277aa15608659ad20f45b7b0fe9746bc" style="color: #1068bf;">63184a71</a></strong>
<div>
<span>by Ben Gamari</span>
<i>at 2021-07-27T04:47:51-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>rts: Don't declare libCffi as bundled when using system libffi

Previously the rts's cabal file would claim that it bundled libffi, even
if we are using the system's libffi. Fixes #19869.
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/8c5c27f11ea2832fd2870551f4bff22a8faaa87a" style="color: #1068bf;">8c5c27f1</a></strong>
<div>
<span>by Andreas Klebinger</span>
<i>at 2021-07-27T04:48:26-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>Rename itimer to ticker in rts/posix for consistency.
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/5457a1249fe0ccaf31d1d96478ce606041b41e9f" style="color: #1068bf;">5457a124</a></strong>
<div>
<span>by Andreas Klebinger</span>
<i>at 2021-07-27T04:48:26-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>Use pthread if available on linux
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/b19f1a6a541645b735e01aa2658f5493fb1cc97d" style="color: #1068bf;">b19f1a6a</a></strong>
<div>
<span>by Ben Gamari</span>
<i>at 2021-07-27T04:49:00-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>rts/OSThreads: Ensure that we catch failures from pthread_mutex_lock

Previously we would only catch EDEADLK errors.
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/0090517a8fccc0d6605e4b6d3d95568d91201d72" style="color: #1068bf;">0090517a</a></strong>
<div>
<span>by Ben Gamari</span>
<i>at 2021-07-27T04:49:00-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>rts/OSThreads: Improve error handling consistency

Previously we relied on the caller to check the return value from
broadcastCondition and friends, most of whom neglected to do so. Given
that these functions should not fail anyways, I've opted to drop the
return value entirely and rather move the result check into the
OSThreads functions.

This slightly changes the semantics of timedWaitCondition which now
returns false only in the case of timeout, rather than any error as
previously done.
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/229b4e51bae070058e8ec30415955f7cec47c798" style="color: #1068bf;">229b4e51</a></strong>
<div>
<span>by Ben Gamari</span>
<i>at 2021-07-27T04:49:36-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>rts: Fix inconsistent signatures for collect_pointers

Fixes #20160.
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/c28933610a02e59c3e9ea41020627791a4af7028" style="color: #1068bf;">c2893361</a></strong>
<div>
<span>by Fraser Tweedale</span>
<i>at 2021-07-27T04:50:13-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>doc: fix copy/paste error

The `divInt#` implementation note has heading:

    See Note [divInt# implementation]

This seems to be a copy/paste mistake.  Remove "See" from the
heading.
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/4816d9b7e534a59bbf3fd0f28646884e3c2d8bfd" style="color: #1068bf;">4816d9b7</a></strong>
<div>
<span>by Alina Banerjee</span>
<i>at 2021-07-27T12:01:15-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>validate: fix #18477, improve syntax & add if-else checks for test outcomes/validation paths

ShellCheck(https://github.com/koalaman/shellcheck/wiki) has been used to check
the script.
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/575f1f2f9d9c38b1b93c32e9aca72e5bdf5b4826" style="color: #1068bf;">575f1f2f</a></strong>
<div>
<span>by Alina Banerjee</span>
<i>at 2021-07-27T12:01:15-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>validate: add flags using Hadrian's user settings for ignoring changes in performance tests
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/421110b53cde0f0bd6372ea72d1472e1179bd882" style="color: #1068bf;">421110b5</a></strong>
<div>
<span>by Alina Banerjee</span>
<i>at 2021-07-27T12:01:15-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>validate: add a debug flag (in both Hadrian and legacy Make) for running tests
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/9d8cb93ebda1ace9f0d736248dcb0436c9871b65" style="color: #1068bf;">9d8cb93e</a></strong>
<div>
<span>by Alina Banerjee</span>
<i>at 2021-07-27T12:01:15-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>validate: update quick-validate flavour for validation with --fast
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/07696269824b78d7c9355a4897239e9ec0110c1e" style="color: #1068bf;">07696269</a></strong>
<div>
<span>by Alina Banerjee</span>
<i>at 2021-07-27T12:01:15-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>validate: change test ghc based on BINDIST value (YES/NO)
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/83a88988a99d37b850cb4658456f4850832c4272" style="color: #1068bf;">83a88988</a></strong>
<div>
<span>by Alina Banerjee</span>
<i>at 2021-07-27T12:01:15-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>validate: run stage1 tests using stage1 compiler when BINSTIST is false
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/64b6bc2396f797b66bb3697c4144774bb6039149" style="color: #1068bf;">64b6bc23</a></strong>
<div>
<span>by Alina Banerjee</span>
<i>at 2021-07-27T12:01:15-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>validate: check both stage1, stage2 test failures for deciding success of entire test run
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/74b791915bb5fa19a196bc5dd8b71ed8026c948f" style="color: #1068bf;">74b79191</a></strong>
<div>
<span>by Alina Banerjee</span>
<i>at 2021-07-27T12:01:15-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>validate: Add note for BINDIST variable, GitLab validation; clean up comments
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/888eadb9eb8350ffac348f34ae805e11061cc980" style="color: #1068bf;">888eadb9</a></strong>
<div>
<span>by Matthew Pickering</span>
<i>at 2021-07-27T12:01:51-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>packaging: Be more precise about which executables to copy and wrappers to create

Exes
----
Before: The whole bin/ folder was copied which could contain random old/stale/testsuite executables
After: Be precise

Wrappers
--------
Before: Wrappers were created for everything in the bin folder,
including internal executables such as "unlit"
After: Only create wrappers for the specific things which we want to
include in the user's path.

This makes the hadrian bindists match up more closely with the make
bindists.
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/e4c252619ebb0b10db9061b052ddce6f8f2b5c72" style="color: #1068bf;">e4c25261</a></strong>
<div>
<span>by Matthew Pickering</span>
<i>at 2021-07-27T12:01:51-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>packaging: Give ghc-pkg the same version as ProjectVersion
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/8e43dc90e775f18b6c3d4e6630936ecdbb352e78" style="color: #1068bf;">8e43dc90</a></strong>
<div>
<span>by Matthew Pickering</span>
<i>at 2021-07-27T12:01:51-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>hadrian: Update hsc2hs wrapper to match current master
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/172fd5d1b2a88ce77a6d75ca0d96e5b28ad59f7c" style="color: #1068bf;">172fd5d1</a></strong>
<div>
<span>by Matthew Pickering</span>
<i>at 2021-07-27T12:01:51-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>hadrian: Remove special haddock copying rule
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/f481c1890066b4dac78d981ca680fb01cfff9a11" style="color: #1068bf;">f481c189</a></strong>
<div>
<span>by Matthew Pickering</span>
<i>at 2021-07-27T12:01:51-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>packaging: Create both versioned and unversioned executables

Before we would just copy the unversioned executable into the bindist.
Now the actual executable is copied into the bindist and a version
suffix is added. Then a wrapper or symlink is added which points to the
versioned executable.

Fixes #20074
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/acc47bd2d05c36e13fd0e27dfa8a698b34fa58e6" style="color: #1068bf;">acc47bd2</a></strong>
<div>
<span>by Matthew Pickering</span>
<i>at 2021-07-27T12:01:51-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>packaging: Add note about wrappers
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/5412730e009dd30e54d13d2b1e86f7e9b9bc085f" style="color: #1068bf;">5412730e</a></strong>
<div>
<span>by Matthew Pickering</span>
<i>at 2021-07-27T12:01:51-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>packaging: Don't include configure scripts in windows bindist

Fixes #19868
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/22a16b0fc0b1d6a257027cfc1881e94ae188a1cd" style="color: #1068bf;">22a16b0f</a></strong>
<div>
<span>by Matthew Pickering</span>
<i>at 2021-07-27T12:01:51-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>hadrian: Install windows bindist by copying in test_hadrian
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/45f0555455f7384727d959954dc359d491f32ebf" style="color: #1068bf;">45f05554</a></strong>
<div>
<span>by Matthew Pickering</span>
<i>at 2021-07-27T12:01:51-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>hadrian: Add exe suffix to executables in testsuite
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/957fe3596e8a184ab6c4fe41be5c2f07c516fcbe" style="color: #1068bf;">957fe359</a></strong>
<div>
<span>by Matthew Pickering</span>
<i>at 2021-07-27T12:01:51-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>hadrian: Call ghc-pkg recache after copying package database into bindist

The package.cache needs to have a later mod-time than all of the .conf
files. This invariant can be destroyed by `cp -r` and so we run `ghc-pkg
recache` to ensure the package database which is distributed is
consistent.

If you are installing a relocatable bindist, for example, on windows,
you should preserve mtimes by using cp -a or run ghc-pkg recache after
installing.
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/7b0ceafbc7f20ed1b53952bae90403cb4f08feda" style="color: #1068bf;">7b0ceafb</a></strong>
<div>
<span>by Matthew Pickering</span>
<i>at 2021-07-27T12:01:51-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>testsuite: Add more debug output on failure to call ghc-pkg
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/0c4a0c3ba11db852d4d99bcff5162dae76c382d1" style="color: #1068bf;">0c4a0c3b</a></strong>
<div>
<span>by Simon Peyton Jones</span>
<i>at 2021-07-27T12:02:25-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>Make CallStacks work better with RebindableSyntax

As #19918 pointed out, the CallStack mechanism didn't work well with
RebindableSyntax.

This patch improves matters.  See GHC.Tc.Types.Evidence
     Note [Overview of implicit CallStacks]

* New predicate isPushCallStackOrigin distinguishes when a CallStack
  constraint should be solved "directly" or by pushing an item on the
  stack.

* The constructor EvCsPushCall now has a FastString, which can
  describe not only a function call site, but also things like
  "the literal 42" or "an if-then-else expression".

* I also fixed #20126 thus:
     exprCtOrigin (HsIf {}) = IfThenElseOrigin
  (Previously it was "can't happen".)
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/6d2846f7e58ca4d78743b5735a8c34447694a5c5" style="color: #1068bf;">6d2846f7</a></strong>
<div>
<span>by Simon Peyton Jones</span>
<i>at 2021-07-27T12:02:25-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>Eta expand through CallStacks

This patch fixes #20103, by treating HasCallStack constraints as
cheap when eta-expanding.

See Note [Eta expanding through CallStacks] in GHC.Core.Opt.Arity
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/9bf8d53012be8a36525e0917c67dc4b3deb033ee" style="color: #1068bf;">9bf8d530</a></strong>
<div>
<span>by Simon Peyton Jones</span>
<i>at 2021-07-27T12:03:00-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>Eliminate unnecessary unsafeEqualityProof

This patch addresses #20143, which wants to discard unused calls to
unsafeEqualityProof.

There are two parts:

* In exprOkForSideEffects, we want to know that unsafeEqualityProof
  indeed terminates, without any exceptions etc

* But we can only discard the case if we know that the coercion
  variable is not used, which means we have to gather accurate
  occurrence info for CoVars.  Previously OccurAnal only did a half
  hearted job of doing so; this patch finishes the job.

  See Note [Gather occurrences of coercion variables] in OccurAnal.

Because the occurrence analyser does more work, there is a small
compile-time cost but it's pretty small.  The compiler perf tests
are usually 0.0% but occasionally up to 0.3% increase.  I'm just
going to accept this -- gathering accurate occurrence information
really seems like the Right Thing to do.

There is an increase in `compile_time/peak_megabytes_allocated`, for
T11545, or around 14%; but I can't reproduce it on my machine (it's
the same before and after), and the peak-usage stats are vulnerable to
when exactly the GC takes place, so I'm just going to accept it.

Metric Increase:
    T11545
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/cca08c2ca27881a94e875656fee882b9bf99d145" style="color: #1068bf;">cca08c2c</a></strong>
<div>
<span>by Krzysztof Gogolewski</span>
<i>at 2021-07-27T12:03:35-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>Parser: suggest TemplateHaskell on $$(...) (#20157)
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/20b352eb4a8f8112cf914bce99bc57c1d47c9966" style="color: #1068bf;">20b352eb</a></strong>
<div>
<span>by Andreas Abel</span>
<i>at 2021-07-27T12:04:12-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>Doc: tabs to spaces
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/ebcdf3fa6e94127e95d0fce75a36989e0e2bf7ee" style="color: #1068bf;">ebcdf3fa</a></strong>
<div>
<span>by Andreas Abel</span>
<i>at 2021-07-27T12:04:12-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>Doc: warnings: since: remove minor version number for uniformity

New warnings are only released in major versions, it seems.
One way or the other, a .1 minor version can always be dropped.
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/0b4033197c7f98aaf772025d7900ac3f9f8d958f" style="color: #1068bf;">0b403319</a></strong>
<div>
<span>by Andreas Abel</span>
<i>at 2021-07-27T12:04:12-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>Issue #18087: :since: for warnings of ghc 6/7/8

Added :since: fields to users_guide on warning, for warnings
introduced starting GHC 6.0.

The data was extracted from the HTML docs on warnings, see

  https://gitlab.haskell.org/ghc/ghc/-/issues/18087

and partially verified by consulting the change logs.
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/f27dba8bac144e5a4ac9bbe91833de1870e02c47" style="color: #1068bf;">f27dba8b</a></strong>
<div>
<span>by Andreas Abel</span>
<i>at 2021-07-27T12:04:12-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>Re #18087 !6238 Empty line in front of :since:

Ack. @monoidal
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/c7c0964c4fbc2ced23779a88ff9c2609fcaeb4b1" style="color: #1068bf;">c7c0964c</a></strong>
<div>
<span>by Krzysztof Gogolewski</span>
<i>at 2021-07-27T21:35:17-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>Simplify FFI code

Remains of the dotnet FFI, see a7d8f43718 and 1fede4bc95
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/97e0837d15bfdfb5bffb561e155f6b523718c773" style="color: #1068bf;">97e0837d</a></strong>
<div>
<span>by Krzysztof Gogolewski</span>
<i>at 2021-07-27T21:35:17-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>Remove some unused names

The comment about 'parError' was obsolete.
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/cab890f73b534375135d372ba9f7eb8f5f523e16" style="color: #1068bf;">cab890f7</a></strong>
<div>
<span>by Krzysztof Gogolewski</span>
<i>at 2021-07-27T21:35:17-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>Add a regression test for #17697
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/9da20e3de5513ccccf8144c69f5e63dd4eaae6f4" style="color: #1068bf;">9da20e3d</a></strong>
<div>
<span>by Krzysztof Gogolewski</span>
<i>at 2021-07-27T21:35:17-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>Don't abort on representation polymorphism check

This is reverting a change introduced in linear types commit 40fa237e1da.
Previously, we had to abort early, but thanks to later changes,
this is no longer needed.

There's no test, but the behavior should be better.
The plan is to remove levity polymorphism checking in the desugarer anyway.
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/cddafcf6a968f454aebc4dd65aa64bf42870b6e9" style="color: #1068bf;">cddafcf6</a></strong>
<div>
<span>by Sylvain Henry</span>
<i>at 2021-07-27T21:35:55-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>PIC: test for cross-module references
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/323473e86d40988883062e5aeaef97bee943b901" style="color: #1068bf;">323473e8</a></strong>
<div>
<span>by Sylvain Henry</span>
<i>at 2021-07-28T06:16:58-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>Hadrian: disable profiled RTS with no_profiled_libs flavour transformer

Hadrian uses the RTS ways to determine which iserv programs to embed
into bindist. But profiled iserv program (and any other code) can't be
built without profiling libs and Hadrian fails. So we disable the
profiling RTS way with the no_profiled_libs flavour transformer.
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/10678945c1d3261273a1d7a389d14a69f4e28567" style="color: #1068bf;">10678945</a></strong>
<div>
<span>by Ben Gamari</span>
<i>at 2021-07-28T06:17:32-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>rts: Don't rely on configuration when CLEANING=YES

The make build system doesn't source config.mk when CLEANING=YES,
consequently we previously failed to identify an appropriate
adjustor implementation to use during cleaning.

Fixes #20166.
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/f325676956df650368c6ebbbbd53c69971551cd4" style="color: #1068bf;">f3256769</a></strong>
<div>
<span>by Krzysztof Gogolewski</span>
<i>at 2021-07-28T13:18:31-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>Docs: use :default: and :ghc-ticket:
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/dabe61138a561e9a82961f81dbe276f9d909c1a7" style="color: #1068bf;">dabe6113</a></strong>
<div>
<span>by Krzysztof Gogolewski</span>
<i>at 2021-07-28T13:18:31-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>Document DerivingVia unsafety (#19786)
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/2625d48efb6dc19506f1404cc5b0ec0e1b476a17" style="color: #1068bf;">2625d48e</a></strong>
<div>
<span>by Krzysztof Gogolewski</span>
<i>at 2021-07-28T13:18:31-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>Improve docs of bang patterns (#19068)
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/a57e4a972ac45c8214acd29e9511cc8bea841914" style="color: #1068bf;">a57e4a97</a></strong>
<div>
<span>by Krzysztof Gogolewski</span>
<i>at 2021-07-28T13:18:31-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>Functor docs: link to free theorem explanation (#19300)
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/d43a90295a0e90daf23edd30324c2e5834e8bab2" style="color: #1068bf;">d43a9029</a></strong>
<div>
<span>by Simon Peyton Jones</span>
<i>at 2021-07-28T13:19:06-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>Fix smallEnoughToInline

I noticed that smallEnoughToInline said "no" to UnfWhen guidance,
which seems quite wrong -- those functions are particularly small.
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/4e4ca28cd947d90fc1b9423b680d7b96722dc823" style="color: #1068bf;">4e4ca28c</a></strong>
<div>
<span>by Simon Peyton Jones</span>
<i>at 2021-07-28T13:19:06-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>Print out module name in "bailing out" message
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/9dbab4fd5315569ad58d333fc0dd9312fd8512ac" style="color: #1068bf;">9dbab4fd</a></strong>
<div>
<span>by Simon Peyton Jones</span>
<i>at 2021-07-28T13:19:06-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>Improve postInlineUnconditionally

See Note [Use occ-anald RHS in postInlineUnconditionally].
This explains how to eliminate an extra round of simplification,
which can happen if postInlineUnconditionally uses a RHS
that is no occurrence-analysed.

This opportunity has been there for ages; I discovered it
when looking at a compile-time perf regression that happened
because the opportunity wasn't exploited.
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/25ca0b5aef54281d161288d9d951a6325d0ab53f" style="color: #1068bf;">25ca0b5a</a></strong>
<div>
<span>by Simon Peyton Jones</span>
<i>at 2021-07-28T13:19:06-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>Extend the in-scope set to silence substExpr warnings

substExpr warns if it finds a LocalId that isn't in the in-scope set.
This patch extends the in-scope set to silence the warnings.  (It has
no effect on behaviour.)
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/a67e681496ed662bfaabeccb8c584adcb8a97971" style="color: #1068bf;">a67e6814</a></strong>
<div>
<span>by Simon Peyton Jones</span>
<i>at 2021-07-28T13:19:06-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>White space, spelling, and a tiny refactor

No change in behaviour
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/05f54bb4f2fd0d8d4e0029ed795bfe1a534ce304" style="color: #1068bf;">05f54bb4</a></strong>
<div>
<span>by Simon Peyton Jones</span>
<i>at 2021-07-28T13:19:06-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>Make the occurrence analyser a bit stricter

occAnalArgs and occAnalApp are very heavily used functions, so it pays
to make them rather strict: fewer thunks constructed.  All these
thunks are ultimately evaluated anyway.

This patch gives a welcome reduction compile time allocation of around
0.5% across the board. For T9961 it's a 2.2% reduction.

Metric Decrease:
    T9961
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/2567d13b923946a49ae15c51933a2cc348826c9a" style="color: #1068bf;">2567d13b</a></strong>
<div>
<span>by Simon Peyton Jones</span>
<i>at 2021-07-28T13:19:06-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>Inline less logging code

When eyeballing calls of GHC.Core.Opt.Simplify.Monad.traceSmpl,
I saw that lots of cold-path logging code was getting inlined
into the main Simplifier module.

So in GHC.Utils.Logger I added a NOINLINE on logDumpFile'.

For logging, the "hot" path, up to and including the conditional,
should be inlined, but after that we should inline as little as
possible, to reduce code size in the caller.
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/a199d653a621fdc96e811c8ae076414965dc25dc" style="color: #1068bf;">a199d653</a></strong>
<div>
<span>by Simon Peyton Jones</span>
<i>at 2021-07-28T13:19:40-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>Simplify and improve the eta expansion mechanism

Previously the eta-expansion would return lambdas interspersed with
casts; now the cast is just pushed to the outside: #20153.

This actually simplifies the code.

I also improved mkNthCo to account for SymCo, so that
   mkNthCo n (SymCo (TyConAppCo tc cos))
would work well.
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/299b7436d140a5f43ce75a2a1d022572f23fb3f9" style="color: #1068bf;">299b7436</a></strong>
<div>
<span>by Simon Peyton Jones</span>
<i>at 2021-07-28T13:19:41-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>Improve performance of eta expansion

Eta expansion was taking ages on T18223.  This patch

* Aggressively squash reflexive casts in etaInfoApp.
  See Note [Check for reflexive casts in eta expansion]
  These changes decreased compile-time allocation by 80%!

* Passes the Simplifier's in-scope set to etaExpandAT, so we
  don't need to recompute it.  (This alone saved 10% of compile
  time.)

  Annoyingly several functions in the Simplifier (namely
  makeTrivialBinding and friends) need to get SimplEnv, rather
  than SimplMode, but that is no big deal.

Lots of small changes in compile-time allocation, less than 1%
and in both directions.  A couple of bigger changes, including
the rather delicate T18223

T12425(optasm) ghc/alloc    98448216.0    97121224.0  -1.3% GOOD
T18223(normal) ghc/alloc  5454689676.0  1138238008.0 -79.1% GOOD

Metric Decrease:
    T12425
    T18223
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/91eb18570fae4e1982e660f6dcb4f7b69de58cf2" style="color: #1068bf;">91eb1857</a></strong>
<div>
<span>by Simon Peyton Jones</span>
<i>at 2021-07-28T13:19:41-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>Fix a subtle scoping error in simplLazyBind

In the call to prepareBinding (in simplLazyBind), I had failed to
extend the in-scope set with the binders from body_floats1. As as
result, when eta-expanding deep inside prepareBinding we made up
an eta-binder that shadowed a variable free in body1.  Yikes.

It's hard to trigger this bug.  It showed up when I was working
on !5658, and I started using the in-scope set for eta-expansion,
rather than taking free variables afresh.  But even then it only
showed up when compiling a module in Haddock
   utils/haddock/haddock-api/src/Haddock/Interface/Rename.hs

Sadly Haddock is compiled without Core Lint, so we ultimately got
a seg-fault.  Lint nailed it fast once I realised that it was off.

There is some other tiny refactoring in this patch.
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/7dc0dc9962e90ca8dcd01c547adab4f7c43d6090" style="color: #1068bf;">7dc0dc99</a></strong>
<div>
<span>by CarrieMY</span>
<i>at 2021-07-28T13:20:17-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>Fix type check error message grammar (fixes #20122)

Remove trailing spaces
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/3382b3d6f9a818d0afe62112dd368ae04778d16e" style="color: #1068bf;">3382b3d6</a></strong>
<div>
<span>by CarrieMY</span>
<i>at 2021-07-28T13:20:17-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>Update expected stderr for affected tests, which are not under Tc directory
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/4a2ef3dd38adf613f425bb1ef8a8614bea558ff0" style="color: #1068bf;">4a2ef3dd</a></strong>
<div>
<span>by Alfredo Di Napoli</span>
<i>at 2021-07-28T13:20:52-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>Port more DriverUnknownMessage into richer DriverMessage constructors

In order:

* Introduce the `PsErrUnknownOptionsPragma` diagnostic message

  This commit changes the diagnostic emitted inside
  `GHC.Parser.Header.checkProcessArgsResult` from an (erroneous) and
  unstructured `DriverUnknownMessage` to a `PsErrUnknownOPtionsPragma`,
  i.e. a new data constructor of a `PsHeaderMessage`.

* Add the `DriverUserDefinedRuleIgnored` diagnostic message

* Add `DriverUserDefinedRuleIgnored` data constructor

  This commit adds (and use) a new data constructor to the `DriverMessage`
  type, replacing a `DriverUnknownMessage` with it.

* Add and use `DriverCannotLoadInterfaceFile` constructor

  This commit introduces the DriverCannotLoadInterfaceFile constructor for
  the `DriverMessage` type and it uses it to replace and occurrence of
  `DriverUnknownMessage`.

* Add and use the `DriverInferredSafeImport` constructor

  This commit adds a new `DriverInferredSafeImport` constructor to the
  `DriverMessage` type, and uses it in `GHC.Driver.Main` to replace one
  occurrence of `DriverUnknownMessage`.

* Add and use `DriverCannotImportUnsafeModule` constructor

  This commit adds the `DriverCannotImportUnsafeModule` constructor
  to the `DriverMessage` type, and later using it to replace one usage of
  `DriverUnknownMessage` in the `GHC.Driver.Main` module.

* Add and use `DriverMissingSafeHaskellMode` constructor

* Add and use `DriverPackageNotTrusted` constructor

* Introduce and use `DriverInferredSafeModule` constructor

* Add and use `DriverMarkedTrustworthyButInferredSafe` constructor

* Add and use `DriverCannotImportFromUntrustedPackage`
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/de2629304aa2df1783f099e1da2cd04ce0423790" style="color: #1068bf;">de262930</a></strong>
<div>
<span>by Peter Trommler</span>
<i>at 2021-07-29T13:12:10-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>Delete ToDo about incorrect optimisation [skip ci]

On big-endian systems a narrow after a load cannot be replaced with
a narrow load.
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/296ed7395c9a45352cf2e03ef9ff0b3b1f5a1a80" style="color: #1068bf;">296ed739</a></strong>
<div>
<span>by Daniel Gröber</span>
<i>at 2021-07-29T13:12:47-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>rts: Allow building with ASSERTs on in non-DEBUG way

We have a couple of places where the conditions in asserts depend on code
ifdefed out when DEBUG is off. I'd like to allow compiling assertions into
non-DEBUG RTSen so that won't do.

Currently if we remove the conditional around the definition of ASSERT()
the build will not actually work due to a deadlock caused by initMutex not
initializing mutexes with PTHREAD_MUTEX_ERRORCHECK because DEBUG is off.
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/e6731578246b6e6959026d4a9da9971b097c83aa" style="color: #1068bf;">e6731578</a></strong>
<div>
<span>by Daniel Gröber</span>
<i>at 2021-07-29T13:12:47-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>Add configure flag to enable ASSERTs in all ways

Running the test suite with asserts enabled is somewhat tricky at the
moment as running it with a GHC compiled the DEBUG way has some hundred
failures from the start. These seem to be unrelated to assertions
though. So this provides a toggle to make it easier to debug failing
assertions using the test suite.
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/4d5b4ed24ef8cecd7b74d1a3d54f443e1216b22d" style="color: #1068bf;">4d5b4ed2</a></strong>
<div>
<span>by Ben Gamari</span>
<i>at 2021-07-29T13:13:21-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>compiler: Name generated locals more descriptively

Previously `GHC.Types.Id.Make.newLocal` would name all locals `dt`,
making it unnecessarily difficult to determine their origin.
Noticed while looking at #19557.
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/20173629aab24b4caad9b2aa533f870a92e96b23" style="color: #1068bf;">20173629</a></strong>
<div>
<span>by Sergei Trofimovich</span>
<i>at 2021-07-29T13:13:59-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>UNREG: implement 64-bit mach ops for 32-bit targets

Noticed build failures like
```
ghc-stage1: panic! (the 'impossible' happened)
  GHC version 9.3.20210721:
        pprCallishMachOp_for_C: MO_x64_Ne not supported!
```
on `--tagget=hppa2.0-unknown-linux-gnu`.

The change does not fix all 32-bit unreg target problems,
but at least allows linking final ghc binaries.

Signed-off-by: Sergei Trofimovich <slyfox@gentoo.org>
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/9b916e81234fa71ffde85d17c7e6d96302518cd7" style="color: #1068bf;">9b916e81</a></strong>
<div>
<span>by Matthew Pickering</span>
<i>at 2021-07-29T13:14:33-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>Add test for #18567

Closes #18567
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/f4aea1a20d522091286ce429b3aae278ee35d75e" style="color: #1068bf;">f4aea1a2</a></strong>
<div>
<span>by Krzysztof Gogolewski</span>
<i>at 2021-07-29T13:15:09-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>Reject pattern synonyms with linear types (#18806)
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/54d6b20192fe6fc244248c7766533a768c591bae" style="color: #1068bf;">54d6b201</a></strong>
<div>
<span>by Shayne Fletcher</span>
<i>at 2021-07-29T13:15:43-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>Improve preprocessor error message
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/266a74528a2550a03d66f3d726d65b47df612446" style="color: #1068bf;">266a7452</a></strong>
<div>
<span>by Ben Gamari</span>
<i>at 2021-08-02T04:10:18-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>ghc: Introduce --run mode

As described in #18011, this mode provides similar functionality to the
`runhaskell` command, but doesn't require that the user know the path of
yet another executable, simplifying interactions with upstream tools.
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/7e8c578ed9d3469d6a5c1481f9482982c42f10ea" style="color: #1068bf;">7e8c578e</a></strong>
<div>
<span>by Simon Jakobi</span>
<i>at 2021-08-02T04:10:52-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>base: Document overflow behaviour of genericLength
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/b4d39adbb5884c764c6c11b2614a340c78cc078e" style="color: #1068bf;">b4d39adb</a></strong>
<div>
<span>by Peter Trommler</span>
<i>at 2021-08-02T04:11:27-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>PrimOps: Add CAS op for all int sizes

PPC NCG: Implement CAS inline for 32 and 64 bit
testsuite: Add tests for smaller atomic CAS
X86 NCG: Catch calls to CAS C fallback
Primops: Add atomicCasWord[8|16|32|64]Addr#
Add tests for atomicCasWord[8|16|32|64]Addr#
Add changelog entry for new primops
X86 NCG: Fix MO-Cmpxchg W64 on 32-bit arch
ghc-prim: 64-bit CAS C fallback on all archs
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/a4ca6caaa2f61d1ef62db824dd2116b753cf24ee" style="color: #1068bf;">a4ca6caa</a></strong>
<div>
<span>by Baldur Blöndal</span>
<i>at 2021-08-02T04:12:04-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>Add Generically (generic Semigroup, Monoid instances) and Generically1 (generic Functor, Applicative, Alternative, Eq1, Ord1 instances) to GHC.Generics.
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/2114a8ac26c303137931ad400b952afd131b691d" style="color: #1068bf;">2114a8ac</a></strong>
<div>
<span>by Julian Ospald</span>
<i>at 2021-08-02T04:12:41-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>Improve documentation of openTempFile args

https://docs.microsoft.com/en-us/windows/win32/api/fileapi/nf-fileapi-gettempfilenamew

Specifically:

> The null-terminated prefix string. The function uses up to the first
> three characters of this string as the prefix of the file name. This
> string must consist of characters in the OEM-defined character set.
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/4ae1e53c49f9e10db7aa21dc58ef5e8f6c3c28fb" style="color: #1068bf;">4ae1e53c</a></strong>
<div>
<span>by Sylvain Henry</span>
<i>at 2021-08-02T04:12:41-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>Fix spelling</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/022c794564bf81a20bfe4dc3329090aa8ca7ad63" style="color: #1068bf;">022c7945</a></strong>
<div>
<span>by Moritz Angermann</span>
<i>at 2021-08-02T04:13:15-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>[AArch64/Darwin] fix packed calling conv alignment

Apparently we need some padding as well.

Fixes #20137
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/2de8f031e7f81745c23656f6a8cfb43199ce337c" style="color: #1068bf;">2de8f031</a></strong>
<div>
<span>by Ben Gamari</span>
<i>at 2021-08-02T04:13:15-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>testsuite: Add test for #20137
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/2e0f4ca128d17a7161fa41ee9e82315a1cddffb7" style="color: #1068bf;">2e0f4ca1</a></strong>
<div>
<span>by Adam Sandberg Ericsson</span>
<i>at 2021-08-02T04:13:50-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>docs: rename the "Running a compiled program" section in the users guide

This hopefully makes it easier to find the right section when scanning
the table of contents.
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/f454c0ea2e7de32786635a987885706fcd7cb01a" style="color: #1068bf;">f454c0ea</a></strong>
<div>
<span>by Ben Gamari</span>
<i>at 2021-08-02T04:14:25-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>rts/OSThreads: Fix reference clock of timedWaitCondition

Previously `timedWaitCondition` assumed that timeouts were referenced
against `CLOCK_MONOTONIC`. This is wrong; by default
`pthread_cond_timedwait` references against `CLOCK_REALTIME`, although
this can be overridden using `pthread_condattr_setclock`.

Fix this and add support for using `CLOCK_MONOTONIC` whenever possible
as it is more robust against system time changes and is likely cheaper
to query. Unfortunately, this is complicated by the fact that older
versions of Darwin did not provide `clock_gettime`, which means we also
need to introduce a fallback path using `gettimeofday`.

Fixes #20144.
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/7bad93a286694c1cc63f781ac0c20e6319c1ae89" style="color: #1068bf;">7bad93a2</a></strong>
<div>
<span>by Sylvain Henry</span>
<i>at 2021-08-02T04:15:03-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>Only create callstack in DEBUG builds
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/3968cd0c9282ea88b3952133f1c0ceb29bb23e03" style="color: #1068bf;">3968cd0c</a></strong>
<div>
<span>by Sylvain Henry</span>
<i>at 2021-08-02T04:15:41-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>Constant-fold unpackAppendCString (fix #20174)

Minor renaming: since 1ed0409010afeaa318676e351b833aea659bf93a rules get
an InScopeEnv arg (containing an IdUnfoldingFun) instead of an
IdUnfoldingFun directly, hence I've renamed the parameter from "id_unf"
to "env" for clarity.
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/901c79d8de49dee9562845e846e9aa3665acd6c4" style="color: #1068bf;">901c79d8</a></strong>
<div>
<span>by Sylvain Henry</span>
<i>at 2021-08-02T04:15:41-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>Lookup string literals in top-level thunks (fix #16373)
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/3e93a3708ae2d5f58ce68b30323bb8d76b2fc0e9" style="color: #1068bf;">3e93a370</a></strong>
<div>
<span>by Ben Gamari</span>
<i>at 2021-08-02T04:16:16-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>validate: Look for python3 executable in python detection

Previously we would only look for a `python` executable, but in general
we should prefer `python3` and sometimes `python` doesn't exist.
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/8631ccf2ad221dfc04b66d1ad137bf4057dd2c06" style="color: #1068bf;">8631ccf2</a></strong>
<div>
<span>by Krzysztof Gogolewski</span>
<i>at 2021-08-02T04:16:51-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>Remove Semigroup instance for UniqDFM (#19654)

The (<>) operator was not associative.

Fortunately, the instance is not used anywhere, except to derive
another unused instance for UniqDSet.
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/20ef67a3776e3d2737dc385f67cb89c90199b20f" style="color: #1068bf;">20ef67a3</a></strong>
<div>
<span>by Ben Gamari</span>
<i>at 2021-08-02T04:17:26-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>hadrian: Drop --configure support

Hadrian's `--configure` support has long been a point of contention.
While it's convenient, it also introduces a fair bit of implementation
complexity and quite a few non-trivial failure modes
(see #19804, 17883, and #15948). Moreover, the feature is actively
misleading to the user: `./configure` is the primary means for the user
to inform the build system about the system environment and in general
will require input from the user.

This commits removes the feature, replacing the flag with a stub
message informing the user of the deprecation.

Closes #20167.
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/13af2feeca20e10d7dda675ad0634689a1931f17" style="color: #1068bf;">13af2fee</a></strong>
<div>
<span>by Krzysztof Gogolewski</span>
<i>at 2021-08-02T04:18:00-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>Disallow nonlinear fields in Template Haskell (#18378)
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/e15381842d41a79a40a64d34ae0798aff8e6a989" style="color: #1068bf;">e1538184</a></strong>
<div>
<span>by Shayne Fletcher</span>
<i>at 2021-08-02T04:18:35-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>Supply missing case for '.' in
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/34e352173dd1fc3cd86c49380fda5a4eb5dd7aef" style="color: #1068bf;">34e35217</a></strong>
<div>
<span>by Simon Peyton Jones</span>
<i>at 2021-08-02T04:19:09-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>Catch type-checker exceptions when splicing

In GHC.Tc.Gen.Splice.tcTopSpliceExpr we were forgetting to
catch exceptions. As a result we missed the kind error
in the unsolved constraints.

This patch has an easy fix, which cures #20179
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/c248e7cc19b27130542a4ff3227ec99d9d50b8d1" style="color: #1068bf;">c248e7cc</a></strong>
<div>
<span>by Jens Petersen</span>
<i>at 2021-08-03T10:14:36-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>include README in hadrian.cabal

[skip ci]</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/bbee89ddfe4b5df14e76d70d92b40648bd5d88b1" style="color: #1068bf;">bbee89dd</a></strong>
<div>
<span>by Zubin Duggal</span>
<i>at 2021-08-03T10:15:11-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>Remove hschooks.c and -no-hs-main for ghc-bin
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/9807350afa3457eb0450117cc9a210d2f1570208" style="color: #1068bf;">9807350a</a></strong>
<div>
<span>by Zubin Duggal</span>
<i>at 2021-08-03T10:15:11-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>Properly escape arguments in ghc-cabal
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/d22ec8a92953b93149ad3010938ec57556a154ff" style="color: #1068bf;">d22ec8a9</a></strong>
<div>
<span>by Ben Gamari</span>
<i>at 2021-08-03T10:15:46-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>Bump process submodule
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/694ec53bce201c0a7585a59a728459a92e35f586" style="color: #1068bf;">694ec53b</a></strong>
<div>
<span>by Matthew Pickering</span>
<i>at 2021-08-03T10:16:20-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>Remove eager forcing of RuleInfo in substRuleInfo

substRuleInfo updates the IdInfo for an Id, therefore it is important to not
force said IdInfo whilst updating it, otherwise we end up in an infinite
loop. This is what happened in #20112 where `mkTick` forced the IdInfo being
updated by checking the arity in isSaturatedConApp. The fix is to stop
the expression being forced so early by removing the call to
seqRuleInfo.

The call sequence looked something like:

* `substRecBndrs`
* `substIdBndr`
* `substIdInfo`
* `substRuleInfo`
* `substRule`
* `substExpr`
* `mkTick`
* `isSaturatedConApp`
* Look at `IdInfo` for thing we are currently substituting because the rule is attached to `transpose` and mentions it in the `RHS` of the rule.

Which arose because the `transpose` Id had a rule attached where the RHS
of the rule also mentioned `transpose`.

This call to seqRuleInfo was introduced in 4e7d56fde0f44d38bbb9a6fc72cf9c603264899d
where it was explained

>  I think there are now *too many* seqs, and they waste work, but I don't have
>  time to find which ones.

We also observe that there is the ominous note on `substRule` about
making sure substExpr is called lazily.

> {- Note [Substitute lazily]
> ~~~~~~~~~~~~~~~~~~~~~~~~~~~
> The functions that substitute over IdInfo must be pretty lazy, because
> they are knot-tied by substRecBndrs.
>
> One case in point was #10627 in which a rule for a function 'f'
> referred to 'f' (at a different type) on the RHS.  But instead of just
> substituting in the rhs of the rule, we were calling simpleOptExpr, which
> looked at the idInfo for 'f'; result <<loop>>.
>
> In any case we don't need to optimise the RHS of rules, or unfoldings,
> because the simplifier will do that.

Before `seqRuleInfo` was removed, this note was pretty much ignored in
the `substSpec` case because the expression was immediately forced after
`substRule` was called.

Unfortunately it's a bit tricky to add a test for this as the failure
only manifested (for an unknown reason) with a dwarf enabled compiler
*AND* compiling with -g3. Fortunatley there is currently a CI
configuration which builds a dwarf compiler to test this.

Also, for good measure, finish off the work started in
840df33685e8c746ade4b9d4d0eb7c764a773e48 which renamed SpecInfo to
RuleInfo but then didn't rename 'substSpec' to 'substRuleInfo'.

Fixes #20112
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/c0e66524077019bbb6839d46e97d7b1e72c57685" style="color: #1068bf;">c0e66524</a></strong>
<div>
<span>by Krzysztof Gogolewski</span>
<i>at 2021-08-03T10:16:55-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>Add "fast-ci" label, for skipping most builds (#19280)

If "fast-ci" is present, only the following parts of full-build are run:
- validate-x86_64-linux-deb9-debug
- validate-x86_64-windows-hadrian
- validate-x86_64-linux-deb9-unreg-hadrian
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/bd2874000ffa72f9d1f98b2223a37e6cc3c78567" style="color: #1068bf;">bd287400</a></strong>
<div>
<span>by Andreas Klebinger</span>
<i>at 2021-08-03T10:17:29-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>Improve documentation for HscTypes.usg_mod_hash
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/5155eafaef2d0cbecd58a808b5b357002a656ffe" style="color: #1068bf;">5155eafa</a></strong>
<div>
<span>by Zubin Duggal</span>
<i>at 2021-08-03T10:18:04-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>Handle OverloadedRecordDot in TH (#20185)
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/9744c6f5c37c8b85f95e53f109b7ce6c25881c29" style="color: #1068bf;">9744c6f5</a></strong>
<div>
<span>by Tito Sacchi</span>
<i>at 2021-08-03T17:19:14-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>Correctly unload libs on GHCi with external iserv

Fix #17669

`hostIsDynamic` is basically a compile-time constant embedded
in the RTS. Therefore, GHCi didn't unload object files
properly when used with an external interpreter built in a
different way.
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/3403c028d69e4a4fae93b2ced95fc58b6fa8aeee" style="color: #1068bf;">3403c028</a></strong>
<div>
<span>by Luite Stegeman</span>
<i>at 2021-08-03T17:19:51-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>move bytecode preparation into the STG pipeline

this makes it possible to combine passes to compute free variables
more efficiently in a future change
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/6ad25367fbd44579591e3c287ea88db618d57891" style="color: #1068bf;">6ad25367</a></strong>
<div>
<span>by Sylvain Henry</span>
<i>at 2021-08-03T17:20:29-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>Fix ASSERTS_ENABLED CPP
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/4f6726779fa3cbbfe97de49b1d26d5a665c74840" style="color: #1068bf;">4f672677</a></strong>
<div>
<span>by Sylvain Henry</span>
<i>at 2021-08-03T17:21:07-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>Don't store tmpDir in Settings

There was no point in doing this as indicated by the TODO.
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/2c714f07f4ab6823de50aaa4947e86326799f44f" style="color: #1068bf;">2c714f07</a></strong>
<div>
<span>by Krzysztof Gogolewski</span>
<i>at 2021-08-04T01:33:03-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>Disable -fdefer-type-errors for linear types (#20083)
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/9b719549fda563fb80b197fb47d9e508c7989d2d" style="color: #1068bf;">9b719549</a></strong>
<div>
<span>by Krzysztof Gogolewski</span>
<i>at 2021-08-04T01:33:38-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>Linear types: fix linting of multiplicities (#19165)

The previous version did not substitute the type used in the scrutinee.
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/1b6e646e6edfdbb4e3b67509642bf9585a5da96c" style="color: #1068bf;">1b6e646e</a></strong>
<div>
<span>by John Ericson</span>
<i>at 2021-08-04T10:05:52-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>Make HsWrapper a Monoid

See instance documentation for caviat.
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/ce7eeda5e30ce3cc037bbfc8dac26a91bbc5bc7d" style="color: #1068bf;">ce7eeda5</a></strong>
<div>
<span>by Matthew Pickering</span>
<i>at 2021-08-04T10:06:26-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>hadrian: Create relative rather than absolute symlinks in binary dist folder

The symlink structure now looks like:

```
lrwxrwxrwx 1 matt users       16 Aug  3 16:27 _build/bindist/ghc-9.3.20210721-x86_64-unknown-linux/bin/ghc -> ghc-9.3.20210721
-rwxr-xr-x 1 matt users  1750336 Aug  3 15:00 _build/bindist/ghc-9.3.20210721-x86_64-unknown-linux/bin/ghc-9.3.20210721
lrwxrwxrwx 1 matt users       22 Aug  3 16:27 _build/bindist/ghc-9.3.20210721-x86_64-unknown-linux/bin/ghc-iserv -> ghc-iserv-9.3.20210721
-rwxr-xr-x 1 matt users 31703176 Aug  3 15:00 _build/bindist/ghc-9.3.20210721-x86_64-unknown-linux/bin/ghc-iserv-9.3.20210721
lrwxrwxrwx 1 matt users       26 Aug  3 16:27 _build/bindist/ghc-9.3.20210721-x86_64-unknown-linux/bin/ghc-iserv-dyn -> ghc-iserv-dyn-9.3.20210721
-rwxr-xr-x 1 matt users    40808 Aug  3 15:00 _build/bindist/ghc-9.3.20210721-x86_64-unknown-linux/bin/ghc-iserv-dyn-9.3.20210721
lrwxrwxrwx 1 matt users       20 Aug  3 16:27 _build/bindist/ghc-9.3.20210721-x86_64-unknown-linux/bin/ghc-pkg -> ghc-pkg-9.3.20210721
-rwxr-xr-x 1 matt users   634872 Aug  3 15:00 _build/bindist/ghc-9.3.20210721-x86_64-unknown-linux/bin/ghc-pkg-9.3.20210721
lrwxrwxrwx 1 matt users       14 Aug  3 16:27 _build/bindist/ghc-9.3.20210721-x86_64-unknown-linux/bin/haddock -> haddock-2.24.0
-rwxr-xr-x 1 matt users  4336664 Aug  3 15:00 _build/bindist/ghc-9.3.20210721-x86_64-unknown-linux/bin/haddock-2.24.0
lrwxrwxrwx 1 matt users        9 Aug  3 16:27 _build/bindist/ghc-9.3.20210721-x86_64-unknown-linux/bin/hp2ps -> hp2ps-0.1
-rwxr-xr-x 1 matt users    49312 Aug  3 15:00 _build/bindist/ghc-9.3.20210721-x86_64-unknown-linux/bin/hp2ps-0.1
lrwxrwxrwx 1 matt users        8 Aug  3 16:27 _build/bindist/ghc-9.3.20210721-x86_64-unknown-linux/bin/hpc -> hpc-0.68
-rwxr-xr-x 1 matt users   687896 Aug  3 15:00 _build/bindist/ghc-9.3.20210721-x86_64-unknown-linux/bin/hpc-0.68
lrwxrwxrwx 1 matt users       13 Aug  3 16:27 _build/bindist/ghc-9.3.20210721-x86_64-unknown-linux/bin/hsc2hs -> hsc2hs-0.68.8
-rwxr-xr-x 1 matt users   729904 Aug  3 15:00 _build/bindist/ghc-9.3.20210721-x86_64-unknown-linux/bin/hsc2hs-0.68.8
lrwxrwxrwx 1 matt users       19 Aug  3 16:27 _build/bindist/ghc-9.3.20210721-x86_64-unknown-linux/bin/runghc -> runghc-9.3.20210721
-rwxr-xr-x 1 matt users    57672 Aug  3 15:00 _build/bindist/ghc-9.3.20210721-x86_64-unknown-linux/bin/runghc-9.3.20210721
lrwxrwxrwx 1 matt users        9 Aug  3 16:27 _build/bindist/ghc-9.3.20210721-x86_64-unknown-linux/bin/unlit -> unlit-0.1
-rwxr-xr-x 1 matt users    14896 Aug  3 15:00 _build/bindist/ghc-9.3.20210721-x86_64-unknown-linux/bin/unlit-0.1
```

Fixes #20198
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/477bc2dd6d506ece1c5c030f79f3934ff1922a5f" style="color: #1068bf;">477bc2dd</a></strong>
<div>
<span>by Zubin Duggal</span>
<i>at 2021-08-04T16:38:02-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>Fix GHCi completion (#20101)

Updates haskeline submodule
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/7a9d8803cfde3c42da4b27a7b89bdcb2ac870e3f" style="color: #1068bf;">7a9d8803</a></strong>
<div>
<span>by sheaf</span>
<i>at 2021-08-04T16:38:40-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>Use Reductions to keep track of rewritings

We define Reduction = Reduction Coercion !Type.
A reduction of the form 'Reduction co new_ty' witnesses an
equality ty ~co~> new_ty.
That is, the rewriting happens left-to-right: the right-hand-side
type of the coercion is the rewritten type, and the left-hand-side
type the original type.
Sticking to this convention makes the codebase more consistent,
helping to avoid certain applications of SymCo.

This replaces the parts of the codebase which represented reductions as
pairs, (Coercion,Type) or (Type,Coercion).

Reduction being strict in the Type argument improves performance
in some programs that rewrite many type families (such as T9872).

Fixes #20161

-------------------------
Metric Decrease:
  T5321Fun
    T9872a
    T9872b
    T9872c
    T9872d
-------------------------
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/1f8090933268b1ca071bc4a8a35b0f1828a76fce" style="color: #1068bf;">1f809093</a></strong>
<div>
<span>by Bodigrim</span>
<i>at 2021-08-05T07:14:04-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>Add Data.ByteArray, derived from primitive
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/5d651c78fed7e55b3b3cd21a04499d1a2f75204d" style="color: #1068bf;">5d651c78</a></strong>
<div>
<span>by Krzysztof Gogolewski</span>
<i>at 2021-08-05T07:14:39-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>Minor fix to pretty-printing of linear types

The function ppr_arrow_chain was not printing multiplicities.
Also remove the Outputable instance: no longer used, and could cover
bugs like those.
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/fb45e6326da999e27b4531363a366322b611daad" style="color: #1068bf;">fb45e632</a></strong>
<div>
<span>by Viktor Dukhovni</span>
<i>at 2021-08-08T13:53:00-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>Rewrite of Traversable overview
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/2bf417f61b159cf681b6d35d0766662b77492cc1" style="color: #1068bf;">2bf417f6</a></strong>
<div>
<span>by Viktor Dukhovni</span>
<i>at 2021-08-08T13:53:00-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>Consistent use of coercion and TypeApplications

This makes the implementations of:

  - mapAccumL
  - mapAccumR
  - fmapDefault
  - foldMapDefault

more uniform and match the approach in the overview.
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/cf7e6c8d3492fdfbbbf0bf853feed4743e04e75e" style="color: #1068bf;">cf7e6c8d</a></strong>
<div>
<span>by Ben Gamari</span>
<i>at 2021-08-09T08:10:11-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>testsuite: Add test for #20199

Ensures that Rts.h can be parsed as C++.
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/080ffd4b78fe8b60f9eb4490b39f971d76ebb46e" style="color: #1068bf;">080ffd4b</a></strong>
<div>
<span>by Ben Gamari</span>
<i>at 2021-08-09T08:10:11-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>rts: Fix use of sized array in Heap.h

Sized arrays cannot be used in headers that might be imported from C++.

Fixes #20199.
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/b128a880b225d3abc98f58a0426b58138aed5504" style="color: #1068bf;">b128a880</a></strong>
<div>
<span>by Sylvain Henry</span>
<i>at 2021-08-09T15:11:22-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>Ensure that newtype deriving strategy is used for CTypes
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/748636388b052d22859b7265dec776edfa12a68c" style="color: #1068bf;">74863638</a></strong>
<div>
<span>by Sylvain Henry</span>
<i>at 2021-08-09T15:11:23-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>Remove ad-hoc fromIntegral rules

fromIntegral is defined as:

  {-# NOINLINE [1] fromIntegral #-}
  fromIntegral :: (Integral a, Num b) => a -> b
  fromIntegral = fromInteger . toInteger

Before this patch, we had a lot of rewrite rules for fromIntegral, to
avoid passing through Integer when there is a faster way, e.g.:

  "fromIntegral/Int->Word"  fromIntegral = \(I# x#) -> W# (int2Word# x#)
  "fromIntegral/Word->Int"  fromIntegral = \(W# x#) -> I# (word2Int# x#)
  "fromIntegral/Word->Word" fromIntegral = id :: Word -> Word

Since we have added sized types and primops (Word8#, Int16#, etc.) and
Natural, this approach didn't really scale as there is a combinatorial
explosion of types. In addition, we really want these conversions to be
optimized for all these types and in every case (not only when
fromIntegral is explicitly used).

This patch removes all those ad-hoc fromIntegral rules. Instead we rely
on inlining and built-in constant-folding rules. There are not too many
native conversions between Integer/Natural and fixed size types, so we
can handle them all explicitly.

Foreign.C.Types was using rules to ensure that fromIntegral rules "sees"
through the newtype wrappers,e.g.:

  {-# RULES
  "fromIntegral/a->CSize"      fromIntegral = \x -> CSize      (fromIntegral x)
  "fromIntegral/CSize->a"      fromIntegral = \(CSize      x) -> fromIntegral x
   #-}

But they aren't necessary because coercions due to newtype deriving are
pushed out of the way. So this patch removes these rules (as
fromIntegral is now inlined, they won't match anymore anyway).

Summary:

* INLINE `fromIntegral`
* Add some missing constant-folding rules
* Remove every fromIntegral ad-hoc rules (fix #19907)

Fix #20062 (missing fromIntegral rules for sized primitives)

Performance:
  - T12545 wiggles (tracked by #19414)

Metric Decrease:
    T12545
    T10359

Metric Increase:
    T12545
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/db7098fe7aa3f7324d146821334b774032ea87bd" style="color: #1068bf;">db7098fe</a></strong>
<div>
<span>by John Ericson</span>
<i>at 2021-08-09T15:11:58-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>Clean up whitespace in /includes

I need to do this now or when I move these files the linter will be mad.
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/fc350dba63da7eefbaa2793fe9fe99f8571b75c0" style="color: #1068bf;">fc350dba</a></strong>
<div>
<span>by John Ericson</span>
<i>at 2021-08-09T15:11:58-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>Make `PosixSource.h` installed and under `rts/`

is used outside of the rts so we do this rather than just fish it out of
the repo in ad-hoc way, in order to make packages in this repo more
self-contained.
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/d5de970dafd5876ef30601697576167f56b9c132" style="color: #1068bf;">d5de970d</a></strong>
<div>
<span>by John Ericson</span>
<i>at 2021-08-09T15:11:58-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>Move `/includes` to `/rts/include`, sort per package better

In order to make the packages in this repo "reinstallable", we need to
associate source code with a specific packages. Having a top level
`/includes` dir that mixes concerns (which packages' includes?) gets in
the way of this.

To start, I have moved everything to `rts/`, which is mostly correct.
There are a few things however that really don't belong in the rts (like
the generated constants haskell type, `CodeGen.Platform.h`). Those
needed to be manually adjusted.

Things of note:

 - No symlinking for sake of windows, so we hard-link at configure time.

 - `CodeGen.Platform.h` no longer as `.hs` extension (in addition to
   being moved to `compiler/`) so as not to confuse anyone, since it is
   next to Haskell files.

 - Blanket `-Iincludes` is gone in both build systems, include paths now
   more strictly respect per-package dependencies.

 - `deriveConstants` has been taught to not require a `--target-os` flag
   when generating the platform-agnostic Haskell type. Make takes
   advantage of this, but Hadrian has yet to.
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/8b9acc4d58f51dcbae73c8226ef876218809fd79" style="color: #1068bf;">8b9acc4d</a></strong>
<div>
<span>by Sylvain Henry</span>
<i>at 2021-08-09T15:12:36-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>Hadrian: fix .cabal file

`stack sdist` in the hadrian directory reported:

  Package check reported the following errors:
  To use the 'extra-doc-files' field the package needs to specify at
  least 'cabal-version: >= 1.18'.
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/741fdf0e4f371afbd8ef36f81bbb90a2049b005c" style="color: #1068bf;">741fdf0e</a></strong>
<div>
<span>by David Simmons-Duffin</span>
<i>at 2021-08-10T15:00:05-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>Add a Typeable constraint to fromStaticPtr, addressing #19729
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/130f94dbd3536bd409621cbaac4659ababf613b3" style="color: #1068bf;">130f94db</a></strong>
<div>
<span>by Artyom Kuznetsov</span>
<i>at 2021-08-10T15:00:42-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>Refactor HsStmtContext and remove HsDoRn

Parts of HsStmtContext were split into a separate data structure
HsDoFlavour. Before this change HsDo used to have HsStmtContext
inside, but in reality only parts of HsStmtContext were used and other
cases were invariants handled with panics. Separating those parts
into its own data structure helps us to get rid of those panics as
well as HsDoRn type family.
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/92b0037b3e183b1fc2953286f81a7125a0a1accc" style="color: #1068bf;">92b0037b</a></strong>
<div>
<span>by Sylvain Henry</span>
<i>at 2021-08-10T15:01:20-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>Fix recomp021 locale

`diff` uses the locale to print its message.
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/7bff8bf527d2b4166f4d1d4b397810cc4f8bc154" style="color: #1068bf;">7bff8bf5</a></strong>
<div>
<span>by Sylvain Henry</span>
<i>at 2021-08-10T15:01:58-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>Fix pprDeps

Copy-paste error in 38faeea1a94072ffd9f459d9fe570f06bc1da84a
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/c65a7ffa7d8962f769bfe1dfbad20e32e1709c20" style="color: #1068bf;">c65a7ffa</a></strong>
<div>
<span>by Moritz Angermann</span>
<i>at 2021-08-11T06:49:38+00:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>Update HACKING.md</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/f5fdace5613914724eb00bcf7547c82f3ad12686" style="color: #1068bf;">f5fdace5</a></strong>
<div>
<span>by Sven Tennie</span>
<i>at 2021-08-11T18:14:30-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>Optimize Info Table Provenance Entries (IPEs) Map creation and lookup

Using a hash map reduces the complexity of lookupIPE(), making it non linear.

On registration each IPE list is added to a temporary IPE lists buffer, reducing
registration time. The hash map is built lazily on first lookup.

IPE event output to stderr is added with tests.

For details, please see
Note [The Info Table Provenance Entry (IPE) Map].

A performance test for IPE registration and lookup can be found here:
https://gitlab.haskell.org/ghc/ghc/-/merge_requests/5724#note_370806
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/100ffe75f509a73f1b26e768237888646f522b6c" style="color: #1068bf;">100ffe75</a></strong>
<div>
<span>by Alina Banerjee</span>
<i>at 2021-08-11T18:15:05-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>Modify InlineSpec data constructor (helps fix #18138)

The inl_inline field of the InlinePragma record is modified to store pragma
source text by adding a data constructor of type SourceText. This can help in
tracking the actual text of pragma names.

Add/modify functions, modify type instance for InlineSpec type

Modify parser, lexer to handle InlineSpec constructors containing SourceText

Modify functions with InlineSpec type

Extract pragma source from InlineSpec for SpecSig, InlineSig types

Modify cvtInline function to add SourceText to InlineSpec type

Extract name for InlineSig, SpecSig from pragma, SpectInstSig from source (fixes #18138)

Extract pragma name for SpecPrag pragma, SpecSig signature

Add Haddock annotation for inlinePragmaName function

Add Haddock annotations for using helper functions in hsSigDoc

Remove redundant ppr in pragma name for SpecSig, InlineSig; update comment

Rename test to T18138 for misplaced SPECIALIZE pragma testcase
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/7ad813a480c9ed383fe1fea11a57f90d4f6f9b71" style="color: #1068bf;">7ad813a4</a></strong>
<div>
<span>by Dr. ERDI Gergo</span>
<i>at 2021-08-13T07:53:53-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>Move `ol_witness` to `OverLitTc`

We also add a new `ol_from_fun` field to renamed (but not yet
typechecked) OverLits. This has the nice knock-on effect of making
total some typechecker functions that used to be partial.

Fixes #20151
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/c367b39e5236b86b4923d826ab0395b33211d30a" style="color: #1068bf;">c367b39e</a></strong>
<div>
<span>by Sylvain Henry</span>
<i>at 2021-08-13T07:54:32-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>Refactoring module dependencies

* Make mkDependencies pure
* Use Sets instead of sorted lists

Notable perf changes:

      MultiLayerModules(normal) ghc/alloc  4130851520.0  2981473072.0 -27.8%
                 T13719(normal) ghc/alloc  4313296052.0  4151647512.0  -3.7%

Metric Decrease:
    MultiLayerModules
    T13719
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/9d4ba36f1de7ced62e2c0c6a911411144e9a3b27" style="color: #1068bf;">9d4ba36f</a></strong>
<div>
<span>by sheaf</span>
<i>at 2021-08-13T14:40:16+02:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>Add rewriting to typechecking plugins

Type-checking plugins can now directly rewrite type-families.
The TcPlugin record is given a new field, tcPluginRewrite.
The plugin specifies how to rewrite certain type-families with a value
of type `UniqFM TyCon TcPluginRewriter`, where:

type TcPluginRewriter
  =  RewriteEnv -- Rewriter environment
  -> [Ct]       -- Givens
  -> [TcType]   -- type family arguments
  -> TcPluginM TcPluginRewriteResult

data TcPluginRewriteResult
  = TcPluginNoRewrite
  | TcPluginRewriteTo
      { tcPluginRewriteTo    :: Reduction
      , tcRewriterNewWanteds :: [Ct]
      }

When rewriting an exactly-saturated type-family application,
GHC will first query type-checking plugins for possible rewritings
before proceeding.

Includes some changes to the TcPlugin API, e.g. removal
of the EvBindsVar parameter to the TcPluginM monad.
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/0bf8e73ad6d8614a53dd6fad7851135d56b59c10" style="color: #1068bf;">0bf8e73a</a></strong>
<div>
<span>by Matthew Pickering</span>
<i>at 2021-08-13T21:47:26-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>Revert "hadrian: Make copyFileLinked a bit more robust"

This reverts commit d45e3cda669c5822aa213d42bf7f7c551b9d1bbf.
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/9700b9a878640747f9460e2d681b6dd08cd7da54" style="color: #1068bf;">9700b9a8</a></strong>
<div>
<span>by Matthew Pickering</span>
<i>at 2021-08-13T21:47:26-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>Create absolute symlink for test executables

This is necessary because the symlink needs to be created between two
arbritary filepaths in the build tree, it's hard to compute how to get
between them relatively. As this symlink doesn't end up in a bindist
then it's fine for it to be absolute.
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/a975583c70e57434340d9a20c976c8f06fde9beb" style="color: #1068bf;">a975583c</a></strong>
<div>
<span>by Matthew Pickering</span>
<i>at 2021-08-13T21:48:03-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>hadrian: Also produce versioned wrapper scripts

Since !6133 we are more consistent about producing versioned
executables but we still didn't produce versioned wrappers. This patch
adds the corresponding versioned wrappers to match the versioned
executables in the relocatable bindist.

I also fixed the ghci wrapper so that it wasn't overwritten during
installation.

The final bindir looks like:

```
lrwxrwxrwx 1 matt users   16 Aug 12 11:56 ghc -> ghc-9.3.20210809
-rwxr-xr-x 1 matt users  674 Aug 12 11:56 ghc-9.3.20210809
lrwxrwxrwx 1 matt users   17 Aug 12 11:56 ghci -> ghci-9.3.20210809
-rwxr-xr-x 1 matt users  708 Aug 12 11:56 ghci-9.3.20210809
lrwxrwxrwx 1 matt users   20 Aug 12 11:56 ghc-pkg -> ghc-pkg-9.3.20210809
-rwxr-xr-x 1 matt users  734 Aug 12 11:56 ghc-pkg-9.3.20210809
lrwxrwxrwx 1 matt users   14 Aug 12 11:56 haddock -> haddock-2.24.0
-rwxr-xr-x 1 matt users  682 Aug 12 11:56 haddock-2.24.0
lrwxrwxrwx 1 matt users    9 Aug 12 11:56 hp2ps -> hp2ps-0.1
-rwxr-xr-x 1 matt users  648 Aug 12 11:56 hp2ps-0.1
lrwxrwxrwx 1 matt users    8 Aug 12 11:56 hpc -> hpc-0.68
-rwxr-xr-x 1 matt users  646 Aug 12 11:56 hpc-0.68
lrwxrwxrwx 1 matt users   13 Aug 12 11:56 hsc2hs -> hsc2hs-0.68.8
-rwxr-xr-x 1 matt users 1.4K Aug 12 11:56 hsc2hs-0.68.8
lrwxrwxrwx 1 matt users   19 Aug 12 11:56 runghc -> runghc-9.3.20210809
-rwxr-xr-x 1 matt users  685 Aug 12 11:56 runghc-9.3.20210809
```

Fixes #20225
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/1e896b476086e83ed6e97fb9d0ba8b96fed07783" style="color: #1068bf;">1e896b47</a></strong>
<div>
<span>by sheaf</span>
<i>at 2021-08-15T09:00:29-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>Detect TypeError when checking for insolubility

We detect insoluble Givens by making getInertInsols
take into account TypeError constraints, on top of insoluble equalities
such as Int ~ Bool (which it already took into account).

This allows pattern matches with insoluble contexts to be reported
as redundant (tyOracle calls tcCheckGivens which calls getInertInsols).

As a bonus, we get to remove a workaround in Data.Typeable.Internal:
we can directly use a NotApplication type family, as opposed to
needing to cook up an insoluble equality constraint.

Fixes #11503 #14141 #16377 #20180
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/71130bf881fefccb4945b7c167d465ba94dda3ec" style="color: #1068bf;">71130bf8</a></strong>
<div>
<span>by sheaf</span>
<i>at 2021-08-15T09:01:06-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>Update TcPlugin_RewritePerf performance test

This test exhibited inconsistent behaviour, with different CI runs
having a 98% decrease in allocations.
This commit addresses this problem by ensuring that we measure
allocations of the whole collection of modules used in the test.

-------------------------
Metric Increase:
    TcPlugin_RewritePerf
-------------------------
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/0f6fb7d309cbe69dcd534c14155d68c981895ab2" style="color: #1068bf;">0f6fb7d3</a></strong>
<div>
<span>by Simon Peyton Jones</span>
<i>at 2021-08-15T14:18:52+01:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>TypeError is OK on the RHS of a type synonym

We should not complain about TypeError in
  type T = TypeError blah

This fixes #20181

The error message for T13271 changes, because that test did
indeed have a type synonym with TypeError on the RHS
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/149bce42fc324863c5da8c98b4991358b5ec4617" style="color: #1068bf;">149bce42</a></strong>
<div>
<span>by Krzysztof Gogolewski</span>
<i>at 2021-08-15T16:13:35-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>Fix lookupIdSubst call during RULE matching

As #20200 showed, there was a call to lookupIdSubst during RULE
matching, where the variable being looked up wasn't in the InScopeSet.

This patch fixes the problem at source, by dealing separately with
nested and non-nested binders.

As a result we can change the trace call in lookupIdSubst to a
proper panic -- if it happens, we really want to know.
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/7f217429a44747e418af6549606fcbcce005ba2e" style="color: #1068bf;">7f217429</a></strong>
<div>
<span>by Simon Peyton Jones</span>
<i>at 2021-08-15T16:13:35-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>Use the right InScopeSet for findBest

This is the right thing to do, easy to do, and fixes
a second not-in-scope crash in #20200 (see !6302)
The problem occurs in the findBest test, which compares
two RULES.

Repro case in simplCore/should_compile/T20200a
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/31dc013fdec0cf2ddac1ba093c8a6933a0b62df2" style="color: #1068bf;">31dc013f</a></strong>
<div>
<span>by Greg Steuck</span>
<i>at 2021-08-15T21:09:23+00:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>Fix iconv detection in configure on OpenBSD

This regressed in 544414ba604b13e0992ad87e90b8bdf45c43011c causing

configure: error: iconv is required on non-Windows platforms

More details:
https://gitlab.haskell.org/ghc/ghc/-/commit/544414ba604b13e0992ad87e90b8bdf45c43011c#3bae3b74ae866493bd6b79df16cb638a5f2e0f87_106_106
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/acb188e0c02a114927d340dac78a68626c659cd3" style="color: #1068bf;">acb188e0</a></strong>
<div>
<span>by Matthew Pickering</span>
<i>at 2021-08-17T08:05:34-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>ghci: Fix rec statements in interactive prompt

We desugar a recursive Stmt to somethign like

  (a,_,c) <- mfix (\(a,b,_) -> do { ... ; return (a,b,c) })
  ...stuff after the rec...

The knot-tied tuple must contain
* All the variables that are used before they are bound in the `rec` block
* All the variables that are used after the entire `rec` block

In the case of GHCi, however, we don't know what variables will be used
after the `rec` (#20206).  For example, we might have

    ghci>  rec { x <- e1; y <- e2 }
    ghci>  print x
    ghci>  print y

So we have to assume that *all* the variables bound in the `rec` are used
afterwards.  We use `Nothing` in the argument to segmentRecStmts to signal
that all the variables are used.

Fixes #20206
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/b784a51eb1cf084353e369d48643d64008b61b4a" style="color: #1068bf;">b784a51e</a></strong>
<div>
<span>by John Ericson</span>
<i>at 2021-08-17T20:58:33+00:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>Test non-native switch C-- with twos compliment

We don't want regressions like e8f7734d8a052f99b03e1123466dc9f47b48c311
to regress.

Co-Authored-By: Sylvain Henry <hsyl20@gmail.com>
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/5798357d9396c62a07413b1ee8ab3515526cf1e7" style="color: #1068bf;">5798357d</a></strong>
<div>
<span>by Sylvain Henry</span>
<i>at 2021-08-17T21:01:44+00:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>StgToCmm: use correct bounds for switches on sized values

StgToCmm was only using literals signedness to determine whether using
Int and Word range in Cmm switches. Now that we have sized literals
(Int8#, Int16#, etc.), it needs to take their ranges into account.
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/0ba21dbe28882d506c3536c40224ebff337a9f49" style="color: #1068bf;">0ba21dbe</a></strong>
<div>
<span>by Matthew Pickering</span>
<i>at 2021-08-18T05:43:57-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>Fix parsing of rpaths which include spaces in runInjectRPaths

The logic didn't account for the fact that the paths could contain
spaces before which led to errors such as the following from
install_name_tool.

Stderr ( T14304 ):
Warning: -rtsopts and -with-rtsopts have no effect with -shared.
    Call hs_init_ghc() from your main() function to set these options.
error: /nix/store/a6j5761iy238pbckxq2xrhqr2d5kra4m-cctools-binutils-darwin-949.0.1/bin/install_name_tool: for: dist/build/libHSp-0.1-ghc8.10.6.dylib (for architecture arm64) option "-add_rpath /Users/matt/ghc/bindisttest/install   dir/lib/ghc-8.10.6/ghc-prim-0.6.1" would duplicate path, file already has LC_RPATH for: /Users/matt/ghc/bindisttest/install   dir/lib/ghc-8.10.6/ghc-prim-0.6.1
`install_name_tool' failed in phase `Install Name Tool'. (Exit code: 1)

Fixes #20212

This apparently also fixes #20026, which is a nice surprise.
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/5f0d2dab9be5b0f89d61e9957bb728538b162230" style="color: #1068bf;">5f0d2dab</a></strong>
<div>
<span>by Matthew Pickering</span>
<i>at 2021-08-18T17:57:42-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>Driver rework pt3: the upsweep

This patch specifies and simplifies the module cycle compilation
in upsweep. How things work are described in the Note [Upsweep]

Note [Upsweep]
~~~~~~~~~~~~~~

Upsweep takes a 'ModuleGraph' as input, computes a build plan and then executes
the plan in order to compile the project.

The first step is computing the build plan from a 'ModuleGraph'.

The output of this step is a `[BuildPlan]`, which is a topologically sorted plan for
how to build all the modules.

```
data BuildPlan = SingleModule ModuleGraphNode  -- A simple, single module all alone but *might* have an hs-boot file which isn't part of a cycle
               | ResolvedCycle [ModuleGraphNode]   -- A resolved cycle, linearised by hs-boot files
               | UnresolvedCycle [ModuleGraphNode] -- An actual cycle, which wasn't resolved by hs-boot files
```

The plan is computed in two steps:

Step 1: Topologically sort the module graph without hs-boot files. This returns a [SCC ModuleGraphNode] which contains
        cycles.
Step 2: For each cycle, topologically sort the modules in the cycle *with* the relevant hs-boot files. This should
        result in an acyclic build plan if the hs-boot files are sufficient to resolve the cycle.

The `[BuildPlan]` is then interpreted by the `interpretBuildPlan` function.

* `SingleModule nodes` are compiled normally by either the upsweep_inst or upsweep_mod functions.
* `ResolvedCycles` need to compiled "together" so that the information which ends up in
  the interface files at the end is accurate (and doesn't contain temporary information from
  the hs-boot files.)
  - During the initial compilation, a `KnotVars` is created which stores an IORef TypeEnv for
    each module of the loop. These IORefs are gradually updated as the loop completes and provide
    the required laziness to typecheck the module loop.
  - At the end of typechecking, all the interface files are typechecked again in
    the retypecheck loop. This time, the knot-tying is done by the normal laziness
    based tying, so the environment is run without the KnotVars.
* UnresolvedCycles are indicative of a proper cycle, unresolved by hs-boot files
  and are reported as an error to the user.

The main trickiness of `interpretBuildPlan` is deciding which version of a dependency
is visible from each module. For modules which are not in a cycle, there is just
one version of a module, so that is always used. For modules in a cycle, there are two versions of
'HomeModInfo'.

1. Internal to loop: The version created whilst compiling the loop by upsweep_mod.
2. External to loop: The knot-tied version created by typecheckLoop.

Whilst compiling a module inside the loop, we need to use the (1). For a module which
is outside of the loop which depends on something from in the loop, the (2) version
is used.

As the plan is interpreted, which version of a HomeModInfo is visible is updated
by updating a map held in a state monad. So after a loop has finished being compiled,
the visible module is the one created by typecheckLoop and the internal version is not
used again.

This plan also ensures the most important invariant to do with module loops:

> If you depend on anything within a module loop, before you can use the dependency,
  the whole loop has to finish compiling.

The end result of `interpretBuildPlan` is a `[MakeAction]`, which are pairs
of `IO a` actions and a `MVar (Maybe a)`, somewhere to put the result of running
the action. This list is topologically sorted, so can be run in order to compute
the whole graph.

As well as this `interpretBuildPlan` also outputs an `IO [Maybe (Maybe HomeModInfo)]` which
can be queried at the end to get the result of all modules at the end, with their proper
visibility. For example, if any module in a loop fails then all modules in that loop will
report as failed because the visible node at the end will be the result of retypechecking
those modules together.

Along the way we also fix a number of other bugs in the driver:

* Unify upsweep and parUpsweep.
* Fix #19937 (static points, ghci and -j)
* Adds lots of module loop tests due to Divam.

Also related to #20030

Co-authored-by: Divam Narula <dfordivam@gmail.com>

-------------------------
Metric Decrease:
    T10370
-------------------------
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/d9cf2ec8207e6c159815b22f1ed8dbdc08a2342d" style="color: #1068bf;">d9cf2ec8</a></strong>
<div>
<span>by Matthew Pickering</span>
<i>at 2021-08-18T17:57:42-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>recomp: Check backend type rather than -fwrite-interface to decide whether we need any objects

This was a small oversight in the original patch which leads to spurious
recompilation when using `-fno-code` but not `-fwrite-interface`, which
you plausibly might do when using ghci.

Fixes #20216
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/4a10f0ff487c6effee125bedca095a80f68045b7" style="color: #1068bf;">4a10f0ff</a></strong>
<div>
<span>by sheaf</span>
<i>at 2021-08-18T17:58:19-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>Don't look for TypeError in type family arguments

Changes checkUserTypeError to no longer look for custom type errors
inside type family arguments.

This means that a program such as

foo :: F xyz (TypeError (Text "blah")) -> bar

does not throw a type error at definition site.
This means that more programs can be accepted, as the custom type error
might disappear upon reducing the above type family F.

This applies only to user-written type signatures, which are checked
within checkValidType. Custom type errors in type family arguments
continue to be reported when they occur in unsolved Wanted constraints.

Fixes #20241
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/cad5a14122cae276a4964e17acd4d2cceb19f01e" style="color: #1068bf;">cad5a141</a></strong>
<div>
<span>by Viktor Dukhovni</span>
<i>at 2021-08-19T01:19:29-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>Fix missing can_fail annotation on two CAS primops

Also note why has_side_effects is needed with reads of mutable data,
using text provided by Simon Peyton-Jones.
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/4ff4d434e9a90623afce00b43e2a5a1ccbdb4c05" style="color: #1068bf;">4ff4d434</a></strong>
<div>
<span>by Simon Peyton Jones</span>
<i>at 2021-08-19T01:20:03-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>Get the in-scope set right during RULE matching

There was a subtle error in the in-scope set during RULE matching,
which led to #20200 (not the original report, but the reports of
failures following an initial bug-fix commit).

This patch fixes the problem, and simplifies the code a bit.
In pariticular there was a very mysterious and ad-hoc in-scope set
extension in rnMatchBndr2, which is now moved to the right place,
namely in the Let case of match, where we do the floating.

I don't have a small repro case, alas.
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/d43442cb8f64449343be2f5516f141ef027b9e99" style="color: #1068bf;">d43442cb</a></strong>
<div>
<span>by John Ericson</span>
<i>at 2021-08-19T18:02:13-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>Make Int64#/Word64# unconditionally available

This prepares us to actually use them when the native size is 64 bits
too.

I more than saitisfied my curiosity finding they were gated since
47774449c9d66b768a70851fe82c5222c1f60689.
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/ad28ae41206e3a8b483b067a8e3333df445010b6" style="color: #1068bf;">ad28ae41</a></strong>
<div>
<span>by Matthew Pickering</span>
<i>at 2021-08-19T18:02:48-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>Add -Wl,-U,___darwin_check_fd_set_overflow to rts/package.conf.in

The make build system apparently uses this special package.conf rather
than generating it from the cabal file.

Ticket: #19950

(cherry picked from commit e316a0f3e7a733fac0c30633767487db086c4cd0)
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/69fb6f6ad16e9d8ee3de18f27b6503b470e2d805" style="color: #1068bf;">69fb6f6a</a></strong>
<div>
<span>by Ben Gamari</span>
<i>at 2021-08-23T13:33:41-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>users guide: Document -hpcdir flag

Previously this was undocumented.
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/27c27f7d8fed00d435f6bcad17fa47e85a442235" style="color: #1068bf;">27c27f7d</a></strong>
<div>
<span>by Matthew Pickering</span>
<i>at 2021-08-23T13:34:16-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>hadrian: Include runhaskell in bindist

Fixes #19571

bin folder now containers/

```
ghc                     ghc-iserv-dyn-9.3.20210813  hp2ps      hsc2hs-0.68.8            unlit
ghc-9.3.20210813        ghc-pkg                     hp2ps-0.1  runghc                   unlit-0.1
ghc-iserv               ghc-pkg-9.3.20210813        hpc        runghc-9.3.20210813
ghc-iserv-9.3.20210813  haddock                     hpc-0.68   runhaskell
ghc-iserv-dyn           haddock-2.24.0              hsc2hs     runhaskell-9.3.20210813
```

which installed via wrappers looks like

```
lrwxrwxrwx 1 matt users   16 Aug 13 17:32 ghc -> ghc-9.3.20210813
-rwxr-xr-x 1 matt users  446 Aug 13 17:32 ghc-9.3.20210813
lrwxrwxrwx 1 matt users   17 Aug 13 17:32 ghci -> ghci-9.3.20210813
-rwxr-xr-x 1 matt users  480 Aug 13 17:32 ghci-9.3.20210813
lrwxrwxrwx 1 matt users   20 Aug 13 17:32 ghc-pkg -> ghc-pkg-9.3.20210813
-rwxr-xr-x 1 matt users  506 Aug 13 17:32 ghc-pkg-9.3.20210813
lrwxrwxrwx 1 matt users   14 Aug 13 17:32 haddock -> haddock-2.24.0
-rwxr-xr-x 1 matt users  454 Aug 13 17:32 haddock-2.24.0
lrwxrwxrwx 1 matt users    9 Aug 13 17:32 hp2ps -> hp2ps-0.1
-rwxr-xr-x 1 matt users  420 Aug 13 17:32 hp2ps-0.1
lrwxrwxrwx 1 matt users    8 Aug 13 17:32 hpc -> hpc-0.68
-rwxr-xr-x 1 matt users  418 Aug 13 17:32 hpc-0.68
lrwxrwxrwx 1 matt users   13 Aug 13 17:32 hsc2hs -> hsc2hs-0.68.8
-rwxr-xr-x 1 matt users 1.2K Aug 13 17:32 hsc2hs-0.68.8
lrwxrwxrwx 1 matt users   19 Aug 13 17:32 runghc -> runghc-9.3.20210813
-rwxr-xr-x 1 matt users  457 Aug 13 17:32 runghc-9.3.20210813
lrwxrwxrwx 1 matt users   23 Aug 13 17:32 runhaskell -> runhaskell-9.3.20210813
-rwxr-xr-x 1 matt users  465 Aug 13 17:32 runhaskell-9.3.20210813
```
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/7dde84ad04e556bfdab7cc03bcde21f08d61cb55" style="color: #1068bf;">7dde84ad</a></strong>
<div>
<span>by Matthew Pickering</span>
<i>at 2021-08-23T13:34:16-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>hadrian: Write version wrappers in C rather than Haskell

This reduces the resulting binary size on windows where the executables
were statically linked.
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/6af7d127b4ed90e4ab06b35bd5e2870d72444cdd" style="color: #1068bf;">6af7d127</a></strong>
<div>
<span>by Matthew Pickering</span>
<i>at 2021-08-23T13:34:16-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>hadrian: Use ghc version as suffix for all executables

```
[matt@nixos:~/ghc-unique-spin]$ ls _build/bindist/ghc-9.3.20210813-x86_64-unknown-linux/bin/
ghc                             haddock                   runghc
ghc-9.3.20210813                haddock-ghc-9.3.20210813  runghc-9.3.20210813
ghc-iserv                       hp2ps                     runhaskell
ghc-iserv-dyn                   hp2ps-ghc-9.3.20210813    runhaskell-9.3.20210813
ghc-iserv-dyn-ghc-9.3.20210813  hpc                       unlit
ghc-iserv-ghc-9.3.20210813      hpc-ghc-9.3.20210813      unlit-ghc-9.3.20210813
ghc-pkg                         hsc2hs
ghc-pkg-9.3.20210813            hsc2hs-ghc-9.3.20210813

[matt@nixos:~/ghc-unique-spin]$ ls _build/bindist/ghc-9.3.20210813-x86_64-unknown-linux/wrappers/
ghc                ghc-pkg-9.3.20210813      hpc                      runghc-9.3.20210813
ghc-9.3.20210813   haddock                   hpc-ghc-9.3.20210813     runhaskell
ghci               haddock-ghc-9.3.20210813  hsc2hs                   runhaskell-9.3.20210813
ghci-9.3.20210813  hp2ps                     hsc2hs-ghc-9.3.20210813
ghc-pkg            hp2ps-ghc-9.3.20210813    runghc
```

See the discussion on #19571 where we decided that it was most sensible
to use the same version number as a suffix for all executables. For
those whose version number is different to normal (for example, haddock
as it's own versioning scheme) the additional "ghc" suffix is used.
Cabal already knows to look for this suffix so should work nicely with
existing tooling.
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/06aa8da540b971bb5756636ea5945c3382662b2f" style="color: #1068bf;">06aa8da5</a></strong>
<div>
<span>by Sebastian Graf</span>
<i>at 2021-08-23T13:34:51-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>Pmc: Better SCC annotations and trace output

While investigating #20106, I made a few refactorings to the pattern-match
checker that I don't want to lose. Here are the changes:

  * Some key functions of the checker now have SCC annotations
  * Better `-ddump-ec-trace` diagnostics for easier debugging. I added
    'traceWhenFailPm' to see *why* a particular `MaybeT` computation fails and
    made use of it in `instCon`.

I also increased the acceptance threshold of T11545, which seems to fail
randomly lately due to ghc/max flukes.
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/c1acfd210153dc78748904467c6be023c702467a" style="color: #1068bf;">c1acfd21</a></strong>
<div>
<span>by Matthew Pickering</span>
<i>at 2021-08-23T13:35:26-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>driver: Only check for unused package warning in after succesful downsweep

Before we would check for the unused package warning even if the module
graph was compromised due to an error in downsweep. This is easily
fixed by pushing warmUnusedPackages into depanalE, and then returning
the errors like the other downsweep errors.

Fixes #20242
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/f3892b5f57b5a75c20eb12a45575a15b2a3dfd3f" style="color: #1068bf;">f3892b5f</a></strong>
<div>
<span>by Krzysztof Gogolewski</span>
<i>at 2021-08-23T13:36:00-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>Convert lookupIdSubst panic back to a warning (#20200)
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/c040753820e540663ef74e63f15c42cc2996c19d" style="color: #1068bf;">c0407538</a></strong>
<div>
<span>by Andreas Abel</span>
<i>at 2021-08-23T13:36:38-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>Doc fix #20259: suggest bang patterns instead of case in hints.rst
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/d94e7ebd9aee5016e68da09883a0a898c4805429" style="color: #1068bf;">d94e7ebd</a></strong>
<div>
<span>by Andreas Abel</span>
<i>at 2021-08-23T13:37:15-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>Doc fix #20226: formatting issues in 9.2.1 release notes

RST is brittle...
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/8a939b404e26bcaa07caa8b5e83bdf79307d2807" style="color: #1068bf;">8a939b40</a></strong>
<div>
<span>by sheaf</span>
<i>at 2021-08-23T23:39:15-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>TcPlugins: solve and report contras simultaneously

This changes the TcPlugin datatype to allow type-checking plugins
to report insoluble constraints while at the same time solve
some other constraints. This allows better error messages, as
the plugin can still simplify constraints, even when it wishes
to report a contradiction.

Pattern synonyms TcPluginContradiction and TcPluginOk are provided
for backwards compatibility: existing type-checking plugins should
continue to work without modification.
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/03fc0393e035508e906bbabd96aaf6620dff93c3" style="color: #1068bf;">03fc0393</a></strong>
<div>
<span>by Matthew Pickering</span>
<i>at 2021-08-23T23:39:49-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>driver: Correctly pass custom messenger to logging function

This was an oversight from !6718
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/64696202322db58189c9b1384130729aa6beea29" style="color: #1068bf;">64696202</a></strong>
<div>
<span>by Matthew Pickering</span>
<i>at 2021-08-23T23:39:49-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>driver: Initialise common plugins once, before starting the pipeline

This fixes an error message regression and is a slight performance
improvement.

See #20250
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/886ecd31335693f3540f5a42873a8923ad199574" style="color: #1068bf;">886ecd31</a></strong>
<div>
<span>by Matthew Pickering</span>
<i>at 2021-08-23T23:39:49-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>Add plugin-recomp-change-2 test

This test tests that if there are two modules which use a plugin
specified on the command line then both are recompiled when the plugin
changes.
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/31752b5500098e3723787359ebae27d34696cf2f" style="color: #1068bf;">31752b55</a></strong>
<div>
<span>by Matthew Pickering</span>
<i>at 2021-08-24T11:03:01-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>hadrian: Use cp -RP rather than -P in install to copy symlinks

For some inexplicable reason `-P` only takes effect on the mac version
of p when you also pass `-R`.

> Symbolic links are always followed unless the -R flag is set, in which case symbolic
> links are not followed, by default.

>  -P    If the -R option is specified, no symbolic links are followed.  This is the
>        default.

Fixes #20254
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/fdb2bfab19f538c43b8138751da73a9b024a62a8" style="color: #1068bf;">fdb2bfab</a></strong>
<div>
<span>by Fendor</span>
<i>at 2021-08-24T11:03:38-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>Export PreloadUnitClosure as it is part of the public API
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/71e8094d3855d7c3a105ba5655f7995f94b84832" style="color: #1068bf;">71e8094d</a></strong>
<div>
<span>by Matthew Pickering</span>
<i>at 2021-08-24T17:23:58+01:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>Fix colourised output in error messages

This fixes a small mistake in 4dc681c7c0345ee8ae268749d98b419dabf6a3bc
which forced the dump rather than user style for error messages.

In particular, this change replaced `defaultUserStyle` with
`log_default_dump_context` rather than `log_default_user_context` which
meant the PprStyle was PprDump rather than PprUser for error messages.

https://gitlab.haskell.org/ghc/ghc/-/commit/4dc681c7c0345ee8ae268749d98b419dabf6a3bc?expanded=1&page=4#b62120081f64009b94c12d04ded5c68870d8c647_285_405

Fixes #20276
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/0759c069e7cf328c8e397623bb2e5403de52e869" style="color: #1068bf;">0759c069</a></strong>
<div>
<span>by Ryan Scott</span>
<i>at 2021-08-25T19:35:12-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>Desugarer: Bring existentials in scope when substituting into record GADTs

This fixes an outright bug in which the desugarer did not bring the
existentially quantified type variables of a record GADT into `in_subst`'s
in-scope set, leading to #20278. It also addresses a minor inefficiency in
which `out_subst` was made into a substitution when a simpler `TvSubstEnv`
would suffice.

Fixes #20278.
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/b365335180e82088d5a94b262c79c25b33ef0dc3" style="color: #1068bf;">b3653351</a></strong>
<div>
<span>by Sebastian Graf</span>
<i>at 2021-08-26T13:39:34-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>CallArity: Consider shadowing introduced by case and field binders

In #20283, we saw a regression in `simple` due to CallArity for a very subtle
reason: It simply didn't handle shadowing of case binders and constructor field
binders!

The test case T20283 has a very interesting binding `n_X1` that we want to
eta-expand and that has a Unique (on GHC HEAD) that is reused by the Simplifier
for a case binder:
```
  let { n_X1 = ... } in
    ...
      let {
        lvl_s1Ul
          = ... case x_a1Rg of wild_X1 {
                  __DEFAULT -> f_s1Tx rho_value_awA (GHC.Types.I# wild_X1);
                  0# -> lvl_s1TN
                } ...
          } in
      letrec {
        go3_X3
          = \ (x_X4 :: GHC.Prim.Int#) (v_a1P9 [OS=OneShot] :: Double) ->
              let {
                karg_s1Wu = ...
                                    case lvl_s1Ul of { GHC.Types.D# y_a1Qf ->
                            ...
                    } } in
              case GHC.Prim.==# x_X4 y_a1R7 of {
                __DEFAULT -> go3_X3 (GHC.Prim.+# x_X4 1#) karg_s1Wu;
                1# -> n_X1 karg_s1Wu -- Here we will assume that karg calls n_X1!
              }; } in
      go3_X3 0#;
```

Since the Case case of CallArity doesn't delete `X1` from the set of variables
it is interested in knowing the usages of, we leak a very boring usage (of the
case binder!) into the co-call graph that we mistakenly take for a usage of
`n_X1`. We conclude that `lvl_s1Ul` and transitively `karg_s1Wu` call `n_X1`
when really they don't. That culminates in the conclusion that `n_X1 karg_s1Wu`
calls `n_X1` more than once. Wrong!

Fortunately, this bug (which has been there right from CallArity's inception,
I suppose) will never lead to a CallArity that is too optimistic. So by fixing
this bug, we get strictly more opportunities for CallArity and all of them
should be sound to exploit.

Fixes #20283.
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/d551199c492b789114f2188591d1a9872f9a5d20" style="color: #1068bf;">d551199c</a></strong>
<div>
<span>by Simon Peyton Jones</span>
<i>at 2021-08-26T13:40:09-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>Fix GHC.Core.Subst.substDVarSet

substDVarSet looked up coercion variables in the wrong environment!

The fix is easy.  It is still a pretty strange looking function, but
the bug is gone.  This fixes another manifestation of #20200.
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/14c80432766b9cde57cd87889d6e7b60fff686ff" style="color: #1068bf;">14c80432</a></strong>
<div>
<span>by Aaron Allen</span>
<i>at 2021-08-27T17:37:42-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>GHC.Tc.Gen Diagnostics Conversion (Part 1)

Converts uses of `TcRnUnknownMessage` in these modules:
- compiler/GHC/Tc/Gen/Annotation.hs
- compiler/GHC/Tc/Gen/App.hs
- compiler/GHC/Tc/Gen/Arrow.hs
- compiler/GHC/Tc/Gen/Bind.hs
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/e28773fce96e5252a8addb89535feb57b5738512" style="color: #1068bf;">e28773fc</a></strong>
<div>
<span>by David Feuer</span>
<i>at 2021-08-27T17:38:19-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>Export Solo from Data.Tuple

* The `Solo` type is intended to be the canonical lifted
  unary tuple. Up until now, it has only been available from
  `GHC.Tuple` in `ghc-prim`. Export it from `Data.Tuple` in
  `base`.

  I proposed this on the libraries list in December, 2020.

  https://mail.haskell.org/pipermail/libraries/2020-December/031061.html

  Responses from chessai

  https://mail.haskell.org/pipermail/libraries/2020-December/031062.html

  and George Wilson

  https://mail.haskell.org/pipermail/libraries/2021-January/031077.html

  were positive. There were no other responses.

* Add Haddock documentation for Solo.

* Give `Solo` a single field, `getSolo`, a custom `Show` instance that
  does *not* use record syntax, and a `Read` instance that accepts
  either record syntax or non-record syntax.
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/38748530b4530f6a7d4f7ec80ec838efbd13ab35" style="color: #1068bf;">38748530</a></strong>
<div>
<span>by Aaron Allen</span>
<i>at 2021-08-27T22:19:23-05:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>Convert IFace Rename Errors (#19927)

Converts uses of TcRnUnknownMessage in GHC.Iface.Rename.

Closes #19927
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/8057a350c207b866a0187d6150658f051679696b" style="color: #1068bf;">8057a350</a></strong>
<div>
<span>by ARATA Mizuki</span>
<i>at 2021-08-28T14:25:14-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>AArch64 NCG: Emit FABS instructions for fabsFloat# and fabsDouble#

Closes #20275
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/922c6bc8dd8d089cfe4b90ec2120cb48959ba2b5" style="color: #1068bf;">922c6bc8</a></strong>
<div>
<span>by ARATA Mizuki</span>
<i>at 2021-08-28T14:25:14-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>Add a test for #20275
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/af41496fbba4995786914f1703642c735e4a1e89" style="color: #1068bf;">af41496f</a></strong>
<div>
<span>by hainq</span>
<i>at 2021-09-01T15:09:08+07:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>Convert diagnostics in GHC.Tc.Validity to proper TcRnMessage.

- Add 19 new messages. Update test outputs accordingly.

- Pretty print suggest-extensions hints: remove space before
interspersed commas.

- Refactor Rank's MonoType constructors. Each MonoType constructor
should represent a specific case. With the Doc suggestion belonging
to the TcRnMessage diagnostics instead.

- Move Rank from Validity to its own `GHC.Tc.Types.Rank` module.

- Remove the outdated `check_irred_pred` check.

- Remove the outdated duplication check in `check_valid_theta`, which
was subsumed by `redundant-constraints`.

- Add missing test cases for quantified-constraints/T16474 & th/T12387a.
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/5b41353355022c1247e0516d541b7f7fb49f0e29" style="color: #1068bf;">5b413533</a></strong>
<div>
<span>by Peter Lebbing</span>
<i>at 2021-09-06T12:14:35-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>fromEnum Natural: Throw error for non-representable values

Starting with commit fe770c21, an error was thrown only for the values
2^63 to 2^64-1 inclusive (on a 64-bit machine), but not for higher
values. Now, errors are thrown for all non-representable values again.

Fixes #20291
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/407d3b3a3a219dab56d0a36598c637aa45da61e1" style="color: #1068bf;">407d3b3a</a></strong>
<div>
<span>by Alan Zimmerman</span>
<i>at 2021-09-06T22:57:55-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>EPA: order of semicolons and comments for top-level decls is wrong

A comment followed by a semicolon at the top level resulted in the
preceding comments being attached to the following declaration.

Capture the comments as belonging to the declaration preceding the
semicolon instead.

Closes #20258
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/89820293c0559dc744704d0bf3370a035adb17ea" style="color: #1068bf;">89820293</a></strong>
<div>
<span>by Oleg Grenrus</span>
<i>at 2021-09-06T22:58:32-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>Define returnA = id
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/3fb1afea019422292954785575902c62473e93e3" style="color: #1068bf;">3fb1afea</a></strong>
<div>
<span>by Sylvain Henry</span>
<i>at 2021-09-06T22:59:10-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>GHCi: don't discard plugins on reload (#20335)

Fix regression introduced in ecfd0278
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/f72aa31d36f4fbab0258cae1c94ac0cc24682ab9" style="color: #1068bf;">f72aa31d</a></strong>
<div>
<span>by Sylvain Henry</span>
<i>at 2021-09-07T08:02:28-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>Bignum: refactor conversion rules

* make "passthrough" rules non built-in: they don't need to
* enhance note about efficient conversions between numeric types
* make integerFromNatural a little more efficient
* fix noinline pragma for naturalToWordClamp# (at least with non
  built-in rules, we get warnings in cases like this)
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/81975ef375de07a0ea5a69596b2077d7f5959182" style="color: #1068bf;">81975ef3</a></strong>
<div>
<span>by Ben Gamari</span>
<i>at 2021-09-07T08:03:03-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>hadrian: Ensure that settings is regenerated during bindist installation

Previously Hadrian would simply install the settings file generated in
the build environment during the binary distribution installation. This
is wrong since these environments may differ (e.g. different `cc`
versions).

We noticed on Darwin when installation of a binary distribution produced
on a newer Darwin release resulted in a broken compiler due to the
installed `settings` file incorrectly claiming that `cc` supported
`-no-pie`.

Fixing this sadly requires a bit of code duplication since `settings` is
produced by Hadrian and not `configure`. For now I have simply
duplicated the `settings` generation logic used by the Make build system
into Hadrian's bindist Makefile.

Ultimately the solution will probably involve shipping a freestanding
utility to replace `configure`'s toolchain probing logic and generate a
toolchain description file (similar to `settings`) as described
in #19877.

Fixes #20253.
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/2735f5a6103eb99e44776da0f5b9d35a18279cbc" style="color: #1068bf;">2735f5a6</a></strong>
<div>
<span>by Ben Gamari</span>
<i>at 2021-09-07T08:03:03-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>gitlab-ci: Fix bash version-dependence in ci.sh

As described in https://stackoverflow.com/questions/7577052,
safely expanding bash arrays is very-nearly impossible. The previous
incantation failed under the bash version shipped with Centos 7.
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/7fa8c32c107ee28676bd17a7f0fc797a87502779" style="color: #1068bf;">7fa8c32c</a></strong>
<div>
<span>by Alfredo Di Napoli</span>
<i>at 2021-09-07T12:24:12-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>Add and use new constructors to TcRnMessage

This commit adds the following constructors to the TcRnMessage type and
uses them to replace sdoc-based diagnostics in some parts of GHC (e.g.
TcRnUnknownMessage). It includes:

* Add TcRnMonomorphicBindings diagnostic
* Convert TcRnUnknownMessage in Tc.Solver.Interact
* Add and use the TcRnOrphanInstance constructor to TcRnMessage
* Add TcRnFunDepConflict and TcRnDupInstanceDecls constructors to TcRnMessage
* Add and use TcRnConflictingFamInstDecls constructor to TcRnMessage
* Get rid of TcRnUnknownMessage from GHC.Tc.Instance.Family
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/6ea9b3ee4454b87ecc017d89f131a80f57ef65aa" style="color: #1068bf;">6ea9b3ee</a></strong>
<div>
<span>by ARATA Mizuki</span>
<i>at 2021-09-07T12:24:49-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>Fix code example in the documentation of subsumption
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/beef61351b240967b49169d27a9a19565cf3c4af" style="color: #1068bf;">beef6135</a></strong>
<div>
<span>by John Ericson</span>
<i>at 2021-09-08T02:57:55-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>Let LLVM and C handle > native size arithmetic

NCG needs to call slow FFI functions where we "borrow" the C compiler's
implementation, but there is no reason why we need to do that for LLVM,
or the unregisterized backend where everything is via C anyways!
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/5b5c2452ad64d89bf8144cba368f951a8cd3ebba" style="color: #1068bf;">5b5c2452</a></strong>
<div>
<span>by Jens Petersen</span>
<i>at 2021-09-08T02:58:33-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>base Data.Fixed: fix documentation typo: succ (0.000 :: Milli) /= 1.001

ie `succ (0000) == 0001` -- (not 1001)</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/7a4bde22832512364d930af29840ec055301a0ff" style="color: #1068bf;">7a4bde22</a></strong>
<div>
<span>by Joshua Price</span>
<i>at 2021-09-08T02:59:10-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>Fix broken haddock @since fields in base
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/ebbb1fa20f0acb545e9c35576bc0e6f6ec1170a5" style="color: #1068bf;">ebbb1fa2</a></strong>
<div>
<span>by Guillaume Bouchard</span>
<i>at 2021-09-08T02:59:47-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>base: Numeric: remove 'Show' constraint on 'showIntAtBase'

The constraint was there in order to show the 'Integral' value in case
of error. Instead we can show the result of `toInteger`, which will be
close (i.e. it will still show the same integer except if the 'Show'
instance was funky).

This changes a bit runtime semantic (i.e. exception string may be a bit
different).
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/fb1e0a5da67f075ae4f487e111fcf69d1dfcd42f" style="color: #1068bf;">fb1e0a5d</a></strong>
<div>
<span>by Matthew Pickering</span>
<i>at 2021-09-08T03:00:22-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>ffi: Don't allow wrapper stub with CApi convention

Fixes #20272
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/dcc1599f74d8115b3bd1bd87648866d89070a7e9" style="color: #1068bf;">dcc1599f</a></strong>
<div>
<span>by Krzysztof Gogolewski</span>
<i>at 2021-09-08T03:00:57-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>Minor doc fixes

- Fix markup in 9.4 release notes
- Document -ddump-cs-trace
- Mention that ImpredicativeTypes is really supported only since 9.2
- Remove "There are some restrictions on the use of unboxed tuples".
  This used to be a list, but all those restrictions were removed.
- Mark -fimplicit-import-qualified as documented
- Remove "The :main and :run command" - duplicated verbatim in options
- Avoid calling "main" a function (cf. #7816)
- Update System.getArgs: the old location was before hierarchical modules
- Note that multiplicity multiplication is not supported (#20319)
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/330e6e9c7a88d2be6d3f78eff44a9a6fcf9733a2" style="color: #1068bf;">330e6e9c</a></strong>
<div>
<span>by Krzysztof Gogolewski</span>
<i>at 2021-09-08T03:00:57-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>Documentation: use https links
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/9fc0fe008c13782cb7b1962b0ebed0bb09ecfb6f" style="color: #1068bf;">9fc0fe00</a></strong>
<div>
<span>by Ben Gamari</span>
<i>at 2021-09-08T03:01:32-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>rts: Factor out TRACE_ cache update logic

Just a small refactoring to perhaps enable code reuse later.
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/86e5a6c34128a20d04808fcffcc49623a5d967bf" style="color: #1068bf;">86e5a6c3</a></strong>
<div>
<span>by Alan Zimmerman</span>
<i>at 2021-09-08T16:58:51-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>EPA: Capture '+' location for NPlusKPat

The location of the plus symbol was being discarded, we now capture
it.

Closes #20243
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/87d93745fa14344a26ab242fd5db35e654e1da48" style="color: #1068bf;">87d93745</a></strong>
<div>
<span>by Sylvain Henry</span>
<i>at 2021-09-08T16:59:29-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>Only dump Core stats when requested to do so (#20342)
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/74a87aa3046f3eb871e5442579e9a2945ef691d4" style="color: #1068bf;">74a87aa3</a></strong>
<div>
<span>by Ben Gamari</span>
<i>at 2021-09-11T08:53:50-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>distrib: Drop FP_GMP from configure script

None of the configure options defined by `FP_GMP` are applicable to
binary distributions.
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/089de88ef5215de0f2db4c4babc556ac43f8232e" style="color: #1068bf;">089de88e</a></strong>
<div>
<span>by Sylvain Henry</span>
<i>at 2021-09-11T08:54:29-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>Canonicalize bignum literals

Before this patch Integer and Natural literals were desugared into "real"
Core in Core prep. Now we desugar them directly into their final ConApp
form in HsToCore. We only keep the double representation for BigNat#
(literals larger than a machine Word/Int) which are still desugared in
Core prep.

Using the final form directly allows case-of-known-constructor to fire
for bignum literals, fixing #20245.

Slight increase (+2.3) in T4801 which is a pathological case with
Integer literals.

Metric Increase:
    T4801
    T11545
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/f987ec1a77beced08850142d7e38b0a39f05c3e6" style="color: #1068bf;">f987ec1a</a></strong>
<div>
<span>by nineonine</span>
<i>at 2021-09-11T08:55:06-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>Add test for #18181
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/5615737a63562402e686de3d08710577d45a01d7" style="color: #1068bf;">5615737a</a></strong>
<div>
<span>by Oleg Grenrus</span>
<i>at 2021-09-11T08:55:43-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>Remove dubious Eq1 and Ord1 Fixed instances. Fixes #20309
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/88f871ef89c5dd1acb32104fd6d1266264920592" style="color: #1068bf;">88f871ef</a></strong>
<div>
<span>by nineonine</span>
<i>at 2021-09-11T08:56:20-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>Add performance test for #19695
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/c3776542920e539468060774cc3d19b94300b38a" style="color: #1068bf;">c3776542</a></strong>
<div>
<span>by Ben Gamari</span>
<i>at 2021-09-11T08:56:55-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>Ensure that zapFragileUnfolding preseves evaluatedness

As noted in #20324, previously we would drop the fact that an unfolding
was evaluated, despite what the documentation claims.
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/070ae69c0c8cee2b778907805134d327964a0c0f" style="color: #1068bf;">070ae69c</a></strong>
<div>
<span>by Ben Gamari</span>
<i>at 2021-09-11T08:57:29-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>ncg: Kill incorrect unreachable code

As noted in #18183, these cases were previously incorrect and unused.

Closes #18183.
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/2d15175266d0e0d9ca6565124b0c17e207b5541c" style="color: #1068bf;">2d151752</a></strong>
<div>
<span>by Sebastian Graf</span>
<i>at 2021-09-11T08:58:04-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>Break recursion in GHC.Float.roundingMode# (#20352)

Judging from the Assumption, we should never call `roundingMode#` on a negative
number. Yet the strange "dummy" conversion from `IN` to `IP` and the following
recursive call where making the function recursive.

Replacing the call by a panic makes `roundingMode#` non-recursive, so that we
may be able to inline it.

Fixes #20352.

It seems we trigger #19414 on some jobs, hence

Metric Decrease:
    T12545
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/7bfa895547734e7c4ef10a19399da6d1f4968d8e" style="color: #1068bf;">7bfa8955</a></strong>
<div>
<span>by CarrieMY</span>
<i>at 2021-09-13T09:35:07-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>Fix #20203 improve constant fold for `and`/`or`

This patch follows the rules specified in note [Constant folding through
nested expressions]. Modifications are summarized below.

- Added andFoldingRules, orFoldingRules to primOpRules under those
xxxxAndOp, xxxxOrOp

- Refactored some helper functions

- Modify data NumOps to include two fields: numAnd and numOr

Resolves: #20203
See also: #19204
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/dda61f79555807db52f0ef7be360f4c76ada4c90" style="color: #1068bf;">dda61f79</a></strong>
<div>
<span>by Ben Gamari</span>
<i>at 2021-09-13T09:35:44-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>Don't depend unconditionally on xattr in darwin_install

Previously the Darwin installation logic would attempt to call xattr
unconditionally. This would break on older Darwin releases where this
utility did not exist.
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/3c885880a42559849ac449f0070dfaecf924ac5e" style="color: #1068bf;">3c885880</a></strong>
<div>
<span>by Ben Gamari</span>
<i>at 2021-09-13T09:36:20-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>testsuite: Mark hDuplicateTo001 as fragile in concurrent ways

As noted in #17568.
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/a2a16e4cee5104f03cabcdd229dd64735c7dad31" style="color: #1068bf;">a2a16e4c</a></strong>
<div>
<span>by Ben Gamari</span>
<i>at 2021-09-13T09:36:54-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>hadrian: Recommend use of +werror over explicit flavour modification

As noted in #20327, the previous guidance was out-of-date.
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/64923cf295ea914db458547432237a5ed1eff571" style="color: #1068bf;">64923cf2</a></strong>
<div>
<span>by Joshua Price</span>
<i>at 2021-09-13T09:37:31-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>Add test for #17865
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/885f17c89919d21815365da71eb7f9c489e5bfa3" style="color: #1068bf;">885f17c8</a></strong>
<div>
<span>by Christiaan Baaij</span>
<i>at 2021-09-17T09:35:18-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>Improve error messages involving operators from Data.Type.Ord

Fixes #20009
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/4564f00fdeb5e072e8f91fec72a6393f0e3f0703" style="color: #1068bf;">4564f00f</a></strong>
<div>
<span>by Krzysztof Gogolewski</span>
<i>at 2021-09-17T09:35:53-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>Improve pretty-printer defaulting logic (#19361)

When determining whether to default a RuntimeRep or Multiplicity
variable, use isMetaTyVar to distinguish between metavariables
(which can be hidden) and skolems (which cannot).
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/6a7ae5edb21444804e9b2ac71018925745bea0b8" style="color: #1068bf;">6a7ae5ed</a></strong>
<div>
<span>by Tito Sacchi</span>
<i>at 2021-09-17T09:36:31-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>Emit warning if bang is applied to unlifted types

GHC will trigger a warning similar to the following when a strictness
flag is applied to an unlifted type (primitive or defined with the
Unlifted* extensions) in the definition of a data constructor.

Test.hs:7:13: warning: [-Wredundant-strictness-flags]
    • Strictness flag has no effect on unlifted type ‘Int#’
    • In the definition of data constructor ‘TestCon’
      In the data type declaration for ‘Test’
  |
7 | data Test = TestCon !Int#
  |             ^^^^^^^^^^^^^

Fixes #20187
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/0d996d029590d1523f2db64b608456e2228a19dc" style="color: #1068bf;">0d996d02</a></strong>
<div>
<span>by Ben Gamari</span>
<i>at 2021-09-17T09:37:06-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>testsuite: Add test for #18382
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/9300c736d58fdb8b3e2961f57aa9c4f117fb9c6f" style="color: #1068bf;">9300c736</a></strong>
<div>
<span>by Alan Zimmerman</span>
<i>at 2021-09-17T09:37:41-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>EPA: correctly capture comments between 'where' and binds

In the following

    foo = x
      where -- do stuff
            doStuff = do stuff

The "-- do stuff" comment is captured in the HsValBinds.

Closes #20297
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/bce230c20eb04c0b557f4a7e4650b009281e717b" style="color: #1068bf;">bce230c2</a></strong>
<div>
<span>by Artem Pelenitsyn</span>
<i>at 2021-09-17T09:38:19-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>driver: -M allow omitting the -dep-suffix (means empty) (fix #15483)
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/01e07ab13dcff69cd9a88ab56cc83f0a50ec63ae" style="color: #1068bf;">01e07ab1</a></strong>
<div>
<span>by Ziyang Liu</span>
<i>at 2021-09-17T09:38:56-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>Ensure .dyn_hi doesn't overwrite .hi

This commit fixes the following bug: when `outputHi` is set, and
both `.dyn_hi` and `.hi` are needed, both would be written to
`outputHi`, causing `.dyn_hi` to overwrite `.hi`. This causes
subsequent `readIface` to fail - "mismatched interface file profile
tag (wanted "", got "dyn")" - triggering unnecessary rebuild.
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/e7c2ff8887291c4568f07df68cca8ff7a9bc8fbf" style="color: #1068bf;">e7c2ff88</a></strong>
<div>
<span>by Sven Tennie</span>
<i>at 2021-09-17T09:39:31-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>Add compile_flags.txt for clangd (C IDE) support

This file configures clangd (C Language Server for IDEs) for the GHC
project.
Please note that this only works together with Haskell Language Server,
otherwise .hie-bios/stage0/lib does not exist.</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/aa6caab0c0895c896621b1f62cf4b0f1601f43bf" style="color: #1068bf;">aa6caab0</a></strong>
<div>
<span>by Thomas M. DuBuisson</span>
<i>at 2021-09-17T09:40:09-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>Update error message to suggest the user consider OOM over RTS bug.

Fix #17039
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/bfddee13d10b183452508fa00116b6449ffeb757" style="color: #1068bf;">bfddee13</a></strong>
<div>
<span>by Matthew Pickering</span>
<i>at 2021-09-17T09:40:44-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>Stop leaking <defunct> llc processes

We needed to wait for the process to exit in the clean-up script as
otherwise the `llc` process will not be killed until compilation
finishes. This leads to running out of process spaces on some OSs.

Thanks to Edsko de Vries for suggesting this fix.

Fixes #20305
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/a6529ffdec9d1082308fe96a2cbd9c53f597bfb6" style="color: #1068bf;">a6529ffd</a></strong>
<div>
<span>by Matthew Pickering</span>
<i>at 2021-09-17T09:41:20-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>driver: Clean up temporary files after a module has been compiled

The refactoring accidently removed these calls to eagerly remove
temporary files after a module has been compiled. This caused some
issues with tmpdirs getting filled up on my system when the project had
a large number of modules (for example, Agda)

Fixes #20293
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/4a7f8d5fab78dfcab5efa2ce9c9a62613db0ca0b" style="color: #1068bf;">4a7f8d5f</a></strong>
<div>
<span>by Matthew Pickering</span>
<i>at 2021-09-17T09:41:55-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>Remove Cabal dependency from check-exact and check-ppr executables

Neither uses anything from Cabal, so the dependency can just be removed.
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/987180d46d47abd17b920f594c76cdcf9ec87b2b" style="color: #1068bf;">987180d4</a></strong>
<div>
<span>by Ben Gamari</span>
<i>at 2021-09-17T09:42:30-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>testsuite: Add broken testcase for #19350
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/ef8a3fbf1363ba512d6d2c1a508473d6144e3d72" style="color: #1068bf;">ef8a3fbf</a></strong>
<div>
<span>by Ben Gamari</span>
<i>at 2021-09-17T09:42:30-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>ghc-boot: Fix metadata handling of writeFileAtomic

Previously the implementation of writeFileAtomic (which was stolen from
Cabal) failed to preserve file mode, user and group, resulting
in #14017.

Fixes #14017.
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/18283be3db288d21b79de7d65756a3442371c27f" style="color: #1068bf;">18283be3</a></strong>
<div>
<span>by Ben Gamari</span>
<i>at 2021-09-17T09:43:05-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>compiler: Ensure that all CoreTodos have SCCs

In #20365 we noticed that a significant amount of time is spend in the
Core2Core cost-center, suggesting that some passes are likely missing
SCC pragmas. Try to fix this.
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/15a5b7a5da610bcd85c825ce0b7b7b5a422dc2ae" style="color: #1068bf;">15a5b7a5</a></strong>
<div>
<span>by Matthew Pickering</span>
<i>at 2021-09-17T09:43:40-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>Add "ipe" flavour transformer to add support for building with IPE debug info

The "ipe" transformer compilers everything in stage2 with
`-finfo-table-map` and `-fdistinct-constructor-tables` to produce a
compiler which is usable with `-hi` profiling and ghc-debug.
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/053a5c2c644993274e7779b446170e96e49ab491" style="color: #1068bf;">053a5c2c</a></strong>
<div>
<span>by Ziyang Liu</span>
<i>at 2021-09-17T09:44:18-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>Add doc for -dyno, -dynosuf, -dynhisuf
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/9eff805a622db499be1fda304e11bb3e6c8d37f0" style="color: #1068bf;">9eff805a</a></strong>
<div>
<span>by Matthew Pickering</span>
<i>at 2021-09-17T09:44:53-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>Code Gen: Use strict map rather than lazy map in loop analysis

We were ending up with a big 1GB thunk spike as the `fmap` operation did
not force the key values promptly.

This fixes the high maximum memory consumption when compiling the mmark
package. Compilation is still slow and allocates a lot more than
previous releases.

Related to #19471
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/44e7120dacad683829194b0dbedcfb679d5ffe93" style="color: #1068bf;">44e7120d</a></strong>
<div>
<span>by Matthew Pickering</span>
<i>at 2021-09-17T09:44:53-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>Code Gen: Replace another lazy fmap with strict mapMap
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/b041ea7784f036dd7cfc5fae6380db4f3c392ab4" style="color: #1068bf;">b041ea77</a></strong>
<div>
<span>by Matthew Pickering</span>
<i>at 2021-09-17T09:44:53-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>Code Gen: Optimise successors calculation in loop calculation

Before this change, the whole map would be traversed in order to delete
a node from the graph before calculating successors. This is quite
inefficient if the CFG is big, as was the case in the mmark package. A
more efficient alternative is to leave the CFG untouched and then just
delete the node once after the lookups have been performed.

Ticket: #19471
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/53dc8e41a424909c8c3eccc43695fee0cdcc1555" style="color: #1068bf;">53dc8e41</a></strong>
<div>
<span>by Matthew Pickering</span>
<i>at 2021-09-17T09:44:53-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>Code Gen: Use more efficient block merging algorithm

The previous algorithm scaled poorly when there was a large number of
blocks and edges.

The algorithm links together block chains which have edges between them
in the CFG. The new algorithm uses a union find data structure in order
to efficiently merge together blocks and calculate which block chain
each block id belonds to.

I copied the UnionFind data structure which already existed in Cabal
into the GHC library rathert than reimplement it myself.

This change results in a very significant reduction in allocations when
compiling the mmark package.

Ticket: #19471
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/c480f8f27b3baf1240ae330188c8df15dc4f7807" style="color: #1068bf;">c480f8f2</a></strong>
<div>
<span>by Matthew Pickering</span>
<i>at 2021-09-17T09:44:53-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>Code Gen: Rewrite shortcutWeightMap more efficiently

This function was one of the main sources of allocation in a ticky
profile due to how it repeatedly deleted nodes from a large map.

Now firstly the cuts are normalised, so that chains of cuts are elimated
before any rewrites are applied. Then the CFG is traversed and
reconstructed once whilst applying the necessary rewrites to remove
shortcutted edges (based on the normalised cuts).

Ticket: #19471
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/da60e6276e4b71217e2e75dfa49f2d460b526af3" style="color: #1068bf;">da60e627</a></strong>
<div>
<span>by Sylvain Henry</span>
<i>at 2021-09-17T09:45:36-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>Fix annoying warning about Data.List unqualified import
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/c662ac7e39a0a2fb85d4ab17ae71d54752d24f39" style="color: #1068bf;">c662ac7e</a></strong>
<div>
<span>by Sylvain Henry</span>
<i>at 2021-09-17T09:45:36-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>Refactor module dependencies code

* moved deps related code into GHC.Unit.Module.Deps
* refactored Deps module to not export Dependencies constructor to help
  maintaining invariants
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/f6a69fb897ba873e2c8cac93d25d770b273278ea" style="color: #1068bf;">f6a69fb8</a></strong>
<div>
<span>by Sylvain Henry</span>
<i>at 2021-09-17T09:45:36-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>Use an ADT for RecompReason
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/d41cfdd44550ab2b2aa56cbdf5a44e3d8217ef36" style="color: #1068bf;">d41cfdd4</a></strong>
<div>
<span>by Sylvain Henry</span>
<i>at 2021-09-17T09:46:15-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>Constant folding for ctz/clz/popCnt (#20376)
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/20e6fec8106521efe7c571612d6d4353fec5c832" style="color: #1068bf;">20e6fec8</a></strong>
<div>
<span>by Matthew Pickering</span>
<i>at 2021-09-17T09:46:51-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>Testsuite: Mark T12903 as fragile on i386

Closes #20377
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/7bc16521b93f9db62190dd4397a836e101932b8c" style="color: #1068bf;">7bc16521</a></strong>
<div>
<span>by David Feuer</span>
<i>at 2021-09-18T12:01:10-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>Add more instances for Solo

Oleg Grenrus pointed out that `Solo` was missing `Eq`, `Ord`,
`Bounded`, `Enum`, and `Ix` instances, which were all apparently
available for the `OneTuple` type (in the `OneTuple` package).
Though only the first three really seem useful, there's no reason
not to take them all. For `Ix`, `Solo` naturally fills a gap
between `()` and `(,)`.
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/4d245e548d4136a2034d4ec6171268eac2442fb8" style="color: #1068bf;">4d245e54</a></strong>
<div>
<span>by Sebastian Graf</span>
<i>at 2021-09-18T12:01:44-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>WorkWrap: Update Note [Wrapper activation] (#15056)

The last point of the Conclusion was wrong; we inline functions without pragmas
after the initial phase. It also appears that #15056 was fixed, as there already
is a test T15056 which properly does foldr/build fusion for the reproducer.

I made sure that T15056's `foo` is just large enough for WW to happen (which it
wasn't), but for the worker to be small enough to inline into `blam`.

Fixes #15056.
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/2c28919f9c79a65d65a2e863a9bd7d0785b5f854" style="color: #1068bf;">2c28919f</a></strong>
<div>
<span>by Sebastian Graf</span>
<i>at 2021-09-18T12:01:44-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>CoreUtils: Make exprIsHNF return True for unlifted variables (#20140)

Clearly, evaluating an unlifted variable will never perform any work.

Fixes #20140.
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/e17a37df945473ff3422abee5cb055c094ed4339" style="color: #1068bf;">e17a37df</a></strong>
<div>
<span>by Joaquin "Florius" Azcarate</span>
<i>at 2021-09-18T12:02:21-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>Fix formatting of link in base/Type.Reflection
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/78d27dd8fc376321097d242eee7f9c3346e52832" style="color: #1068bf;">78d27dd8</a></strong>
<div>
<span>by Matthew Pickering</span>
<i>at 2021-09-18T12:02:56-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>docs: Fix examples for (un)escapeArgs

The examples were just missing the surrounding brackets.

ghci> escapeArgs ["hello \"world\""]
"hello\\ \\\"world\\\"\n"

Fixes #20340
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/1350c220855ed31acc0f23bc7a547eff389711c8" style="color: #1068bf;">1350c220</a></strong>
<div>
<span>by Matthew Pickering</span>
<i>at 2021-09-18T12:03:31-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>deriving: Always use module prefix in dataTypeName

This fixes a long standard bug where the module prefix was omitted
from the data type name supplied by Data.Typeable instances.

Instead of reusing the Outputable instance for TyCon, we now take
matters into our own hands and explicitly print the module followed by
the type constructor name.

Fixes #20371
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/446ca8b9897d3b76b35dc2bd593592d2413b9620" style="color: #1068bf;">446ca8b9</a></strong>
<div>
<span>by Ben Gamari</span>
<i>at 2021-09-18T12:04:06-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>users-guide: Improve documentation of ticky events
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/d99fc2508204c59cfc83d8a68718cf930ccc74b2" style="color: #1068bf;">d99fc250</a></strong>
<div>
<span>by Matthew Pickering</span>
<i>at 2021-09-18T12:04:41-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>hadrian: Disable verbose timing information

Before the output contain a lot of verbose information about timining
various things to do with shake which wasn't so useful for developers.

```
shakeArgsWith                        0.000s    0%
Function shake                       0.010s    0%
Database read                        0.323s   12%  ===
With database                        0.031s    1%
Running rules                        2.301s   86%  =========================
Pool finished (1786 threads, 5 max)  0.003s    0%
Cleanup                              0.000s    0%
Total                                2.669s  100%
Build completed in 2.67s
```

Now the output just contains the last line

```
Build completed in 2.67s
```

Ticket #20381
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/104bf6bfa0d52f6b51992df98dcc17232fc7b75d" style="color: #1068bf;">104bf6bf</a></strong>
<div>
<span>by Oleg Grenrus</span>
<i>at 2021-09-22T08:23:08-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>Clarify that malloc, free etc. are the ones from stdlib.h
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/bb37026e3547af569db6dce021b59f4d0ac70910" style="color: #1068bf;">bb37026e</a></strong>
<div>
<span>by Aaron Allen</span>
<i>at 2021-09-22T08:23:45-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>Convert Diagnostics in GHC.Tc.Gen.* (Part 2)

Converts diagnostics in: (#20116)
- GHC.Tc.Gen.Default
- GHC.Tc.Gen.Export
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/92257abd4b64f0496204adb19462d05c1d6475e3" style="color: #1068bf;">92257abd</a></strong>
<div>
<span>by Sylvain Henry</span>
<i>at 2021-09-22T08:24:23-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>Link with libm dynamically (#19877)

The compiler should be independent of the target.
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/b47fafd95a604fea5017beb1c968092c09fd4d7d" style="color: #1068bf;">b47fafd9</a></strong>
<div>
<span>by alirezaghey</span>
<i>at 2021-09-22T08:25:00-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>Fix minor inconsistency in documentation

fixes #20388
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/3d328eb57b027e45eba71de32aa39c7f4defee2b" style="color: #1068bf;">3d328eb5</a></strong>
<div>
<span>by Benjamin Maurer</span>
<i>at 2021-09-22T08:25:37-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>Remove unused, undocumented debug/dump flag `-ddump-vt-trace`. See 20403.
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/65c837a3f267ff949d491802de2309b1f347356d" style="color: #1068bf;">65c837a3</a></strong>
<div>
<span>by Matthew Pickering</span>
<i>at 2021-09-23T10:44:19+01:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>Typo [skip ci]
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/69b35afd2e11a1cac93e803d6da00c1760b9fa3b" style="color: #1068bf;">69b35afd</a></strong>
<div>
<span>by Sven Tennie</span>
<i>at 2021-09-23T15:59:38-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>deriveConstants: Add hie.yaml
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/022d9717d06542c2345e27ef018390a9d034a1f1" style="color: #1068bf;">022d9717</a></strong>
<div>
<span>by Sven Tennie</span>
<i>at 2021-09-23T15:59:38-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>base: Generalize newStablePtrPrimMVar

Make it polymorphic in the type of the MVar's value. This simple generalization
makes it usable for `MVar a` instead of only `MVar ()` values.
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/6f7f59901c047882ba8c9ae8812264f86b12483a" style="color: #1068bf;">6f7f5990</a></strong>
<div>
<span>by Sven Tennie</span>
<i>at 2021-09-23T15:59:38-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>Introduce stack snapshotting / cloning (#18741)

Add `StackSnapshot#` primitive type that represents a cloned stack (StgStack).
The cloning interface consists of two functions, that clone either the treads
own stack (cloneMyStack) or another threads stack (cloneThreadStack).

The stack snapshot is offline/cold, i.e. it isn't evaluated any further. This is
useful for analyses as it prevents concurrent modifications.

For technical details, please see Note [Stack Cloning].

Co-authored-by: Ben Gamari <bgamari.foss@gmail.com>
Co-authored-by: Matthew Pickering <matthewtpickering@gmail.com>
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/29717ecb0711cd03796510fbe9b4bff58c7da870" style="color: #1068bf;">29717ecb</a></strong>
<div>
<span>by Sven Tennie</span>
<i>at 2021-09-23T15:59:38-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>Use Info Table Provenances to decode cloned stack (#18163)

Emit an Info Table Provenance Entry (IPE) for every stack represeted info table
if -finfo-table-map is turned on.

To decode a cloned stack, lookupIPE() is used. It provides a mapping between
info tables and their source location.

Please see these notes for details:

- [Stacktraces from Info Table Provenance Entries (IPE based stack unwinding)]
- [Mapping Info Tables to Source Positions]

Metric Increase:
    T12545
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/aafda13d3746ca8185c89f2f3eca77470f09b746" style="color: #1068bf;">aafda13d</a></strong>
<div>
<span>by Ben Gamari</span>
<i>at 2021-09-23T16:00:17-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>ci: Drop redundant `cabal update`s

`cabal update` is already implied by `ci.sh setup`.
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/ca88d91c055d877412626f92973b1f896bcb8b79" style="color: #1068bf;">ca88d91c</a></strong>
<div>
<span>by Ben Gamari</span>
<i>at 2021-09-23T16:00:17-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>ci: Consolidate handling of cabal cache

Previously the cache persistence was implemented as various ad-hoc `cp`
commands at the end of the individual CI scripts. Here we move all of
this logic into `ci.sh`.
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/cbfc0e933660626c9f4eaf5480076b6fcd31dceb" style="color: #1068bf;">cbfc0e93</a></strong>
<div>
<span>by Ben Gamari</span>
<i>at 2021-09-23T16:00:17-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>ci: Isolate build from HOME
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/55112fbfe6d1fad61b27780d3361a330359d48b3" style="color: #1068bf;">55112fbf</a></strong>
<div>
<span>by Ben Gamari</span>
<i>at 2021-09-23T16:00:17-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>ci: Move phase timing logic into ci.sh
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/be11120f56ebe7fa28bc362056733b35ae932e1e" style="color: #1068bf;">be11120f</a></strong>
<div>
<span>by Ben Gamari</span>
<i>at 2021-09-23T16:00:17-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>ci: More surgical use of nix in Darwin builds
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/f48d747dd647111b2e78679eaf572006908a7a5a" style="color: #1068bf;">f48d747d</a></strong>
<div>
<span>by Ben Gamari</span>
<i>at 2021-09-23T16:00:17-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>configure: Move nm search logic to new file
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/ee7bdc5c96d469092b5e2751cfeecfe9cd5a5495" style="color: #1068bf;">ee7bdc5c</a></strong>
<div>
<span>by Ben Gamari</span>
<i>at 2021-09-23T16:00:18-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>configure: Add check for whether CC supports --target
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/68509e1c7dc80b9d0b2ebea6340cd349c6424a77" style="color: #1068bf;">68509e1c</a></strong>
<div>
<span>by Ben Gamari</span>
<i>at 2021-09-23T16:00:18-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>ci: Add version to cache key
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/dae4a068d85e666d58e9ef0b06a06c5bfa38dd95" style="color: #1068bf;">dae4a068</a></strong>
<div>
<span>by Ben Gamari</span>
<i>at 2021-09-23T16:00:18-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>gitlab-ci: Ensure that CABAL_DIR is a Windows path

Otherwise cabal-install falls over.
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/1c91e7210eeb2ba130b9c1f95373ed83efb24786" style="color: #1068bf;">1c91e721</a></strong>
<div>
<span>by Ben Gamari</span>
<i>at 2021-09-23T16:00:18-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>gitlab-ci: Use correct CABAL executable
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/8a6598c798e384b98687af888bdb6cc701d97c02" style="color: #1068bf;">8a6598c7</a></strong>
<div>
<span>by Ben Gamari</span>
<i>at 2021-09-23T16:00:18-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>Ensure that cabal update is invoked before building
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/d7ee5295307c468049480ca5e997c53bc4552170" style="color: #1068bf;">d7ee5295</a></strong>
<div>
<span>by Ben Gamari</span>
<i>at 2021-09-23T16:00:18-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>gitlab-ci: bash fixes
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/98a3014777a0ac1a99fd66919115ab770d14e0f4" style="color: #1068bf;">98a30147</a></strong>
<div>
<span>by GHC GitLab CI</span>
<i>at 2021-09-23T16:00:18-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>hadrian: Pass CFLAGS to gmp configure
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/0282706681ccc7748082c8ada61a7ca916fcc820" style="color: #1068bf;">02827066</a></strong>
<div>
<span>by Ben Gamari</span>
<i>at 2021-09-23T16:00:18-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>configure: Fix copy/paste error

Previously both the --with-system-libffi path and the
non--with-system-libffi path set CabalUseSystemLibFFI=True. This was
wrong.
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/316ac68fb88e2d61e2dc07c2a75bcfb6d43e0d43" style="color: #1068bf;">316ac68f</a></strong>
<div>
<span>by Ben Gamari</span>
<i>at 2021-09-23T16:00:18-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>configure: Clarify meaning of CabalHaveLibffi

Previously the meaning of this flag was unclear and as a result I
suspect that CabalHaveLibffi could be incorrectly False.
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/552b32f118e1d3a9b6250c979964c7f42f3f80aa" style="color: #1068bf;">552b32f1</a></strong>
<div>
<span>by Ben Gamari</span>
<i>at 2021-09-23T16:00:18-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>testsuite: Pass CFLAGS to hsc2hs tests
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/7e19cb1c0e84b739a8cc641767722dcd5a98095f" style="color: #1068bf;">7e19cb1c</a></strong>
<div>
<span>by Ben Gamari</span>
<i>at 2021-09-23T16:00:18-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>testsuite: Fix ipeMap

ipeMap.c failed to #include <string.h>
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/c9a87dcaded32cde63f2b661b632233164a79a02" style="color: #1068bf;">c9a87dca</a></strong>
<div>
<span>by Ben Gamari</span>
<i>at 2021-09-23T16:00:18-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>testsuite: Make unsigned_reloc_macho_x64 and section_alignment makefile_tests
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/b30f90c4d9f72a05ef31878217e019338316d281" style="color: #1068bf;">b30f90c4</a></strong>
<div>
<span>by Ben Gamari</span>
<i>at 2021-09-23T16:00:18-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>testsuite: Don't use cc directly in section_alignment test
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/a940ba7f5004d1ce8941a98341fda0cac4d11bfb" style="color: #1068bf;">a940ba7f</a></strong>
<div>
<span>by Ben Gamari</span>
<i>at 2021-09-23T16:00:18-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>testsuite: Fix gnu sed-ism

The BSD sed implementation doesn't allow `sed -i COMMAND FILE`; one must
rather use `sed -i -e COMMAND FILE`.
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/e78752df0cb5c22826d75751229b017b58f6dcab" style="color: #1068bf;">e78752df</a></strong>
<div>
<span>by Ben Gamari</span>
<i>at 2021-09-23T16:00:18-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>rts: Ensure that headers don't refer to undefined __STDC_VERSION__

Previously the C/C++ language version check in STG could throw an
undefined macro warning due to __STDC_VERSION__ when compiled with a C++
compiler. Fix this by defining __STDC_VERSION__==0 when compiling with a
C++ compiler.

Fixes #20394.
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/6716a4bdde35ad1e13169052e4a1dcca110db3d1" style="color: #1068bf;">6716a4bd</a></strong>
<div>
<span>by Ben Gamari</span>
<i>at 2021-09-23T16:00:18-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>gitlab-ci: Unset MACOSX_DEPLOYMENT_TARGET in stage0 build

Otherwise we may get warnings from the toolchain if the bootstrap
compiler was built with a different deployment target.
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/ac378d3efda35546fca8f2ffc08433187e93063b" style="color: #1068bf;">ac378d3e</a></strong>
<div>
<span>by Ben Gamari</span>
<i>at 2021-09-23T16:00:18-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>testsuite: Ensure that C++11 is used in T20199

Otherwise we are dependent upon the C++ compiler's default language.
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/33eb4a4e396e76cf8122a97734d0e8cdd850c747" style="color: #1068bf;">33eb4a4e</a></strong>
<div>
<span>by Sylvain Henry</span>
<i>at 2021-09-23T16:01:00-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>Constant-folding for timesInt2# (#20374)
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/4b7ba3ae671ebd70fa7bdf744d30b8061db13016" style="color: #1068bf;">4b7ba3ae</a></strong>
<div>
<span>by Ben Gamari</span>
<i>at 2021-09-24T23:14:31-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>gitlab-ci: Don't rely on $HOME when pushing test metrics

As of cbfc0e933660626c9f4eaf5480076b6fcd31dceb we set $HOME to a
non-existent directory to ensure hermeticity.
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/8127520ee20e0ba8f7c8bfc84818781b9af652ae" style="color: #1068bf;">8127520e</a></strong>
<div>
<span>by Ben Gamari</span>
<i>at 2021-09-27T16:06:04+00:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>gitlab-ci: Ensure that temporary home exists</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/0da019be1b613ff5ae33a45b3bb3dd6b389260d6" style="color: #1068bf;">0da019be</a></strong>
<div>
<span>by Artyom Kuznetsov</span>
<i>at 2021-09-28T01:51:48-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>Remove NoGhcTc usage from HsMatchContext

NoGhcTc is removed from HsMatchContext. As a result of this,
HsMatchContext GhcTc is now a valid type that has Id in it,
instead of Name and tcMatchesFun now takes Id instead of Name.
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/e38facf85200ea97ca107caefd1b17252639bc18" style="color: #1068bf;">e38facf8</a></strong>
<div>
<span>by Matthew Pickering</span>
<i>at 2021-09-28T01:52:23-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>driver: Fix Ctrl-C handling with -j1

Even in -j1 we now fork all the work into it's own thread so that Ctrl-C
exceptions are thrown on the main thread, which is blocked waiting for
the work thread to finish. The default exception handler then picks up
Ctrl-C exception and the dangling thread is killed.

Fixes #20292
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/45a674aacf33dc47c48506b834752d59fffd7e2c" style="color: #1068bf;">45a674aa</a></strong>
<div>
<span>by Sylvain Henry</span>
<i>at 2021-09-28T01:53:01-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>Add `-dsuppress-core-sizes` flag (#20342)

This flag is used to remove the output of core stats per binding in Core
dumps.
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/1935c42ffb2db800c03ed6b3876eee27a96e9b69" style="color: #1068bf;">1935c42f</a></strong>
<div>
<span>by Matthew Pickering</span>
<i>at 2021-09-28T01:53:36-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>hadrian: Reduce default verbosity

This change reduces the default verbosity of error messages to omit the
stack trace information from the printed output.

For example, before all errors would have a long call trace:

```
Error when running Shake build system:
  at action, called at src/Rules.hs:39:19 in main:Rules
  at need, called at src/Rules.hs:61:5 in main:Rules
* Depends on: _build/stage1/lib/package.conf.d/ghc-9.3.conf
* Depends on: _build/stage1/compiler/build/libHSghc-9.3.a
* Depends on: _build/stage1/compiler/build/GHC/Tc/Solver/Rewrite.o
* Depends on: _build/stage1/compiler/build/GHC/Tc/Solver/Rewrite.o _build/stage1/compiler/build/GHC/Tc/Solver/Rewrite.hi
  at cmd', called at src/Builder.hs:330:23 in main:Builder
  at cmd, called at src/Builder.hs:432:8 in main:Builder
* Raised the exception:
```

Which can be useful but it confusing for GHC rather than hadrian
developers.

Ticket #20386
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/219f7f5060e64f5f88e65019daa1811342e8b8af" style="color: #1068bf;">219f7f50</a></strong>
<div>
<span>by Matthew Pickering</span>
<i>at 2021-09-28T01:53:36-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>hadrian: Remove deprecated tracing functions
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/2896369067027f2b283a9d2e902560c822defc4e" style="color: #1068bf;">28963690</a></strong>
<div>
<span>by Matthew Pickering</span>
<i>at 2021-09-28T01:53:36-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>hadrian: Rework the verbosity levels

Before we really only had two verbosity levels, normal and verbose.
There are now three levels:

Normal: Commands show stderr (no stdout) and minimal build failure messages.
Verbose (-V): Commands also show stdout, build failure message contains
              callstack and additional information
Diagnostic (-VV): Very verbose output showing all command lines and passing -v3 to cabal commands.

-V is similar to the default verbosity from before (but a little more
verbose)
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/66c85e2ece645d62e74fcb7d57abb771118a2f60" style="color: #1068bf;">66c85e2e</a></strong>
<div>
<span>by Matthew Pickering</span>
<i>at 2021-09-28T01:53:36-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>ci: Increase default verbosity level to `-V` (Verbose)

Given the previous commit, `-V` allows us to see some useful information
in CI (such as the call stack on failure) which normally people don't
want to see.

As a result the $VERBOSE variable now tweaks the diagnostic level one
level higher (to Diagnostic), which produces a lot of output.
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/58fea28ea9942e7291ce64b0ff5bf2d24183a794" style="color: #1068bf;">58fea28e</a></strong>
<div>
<span>by Matthew Pickering</span>
<i>at 2021-09-28T01:53:36-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>hadrian: Update documentation for new verbosity options
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/26f24aeca7784f9f9a2a49bce42eaeb60b94d39f" style="color: #1068bf;">26f24aec</a></strong>
<div>
<span>by Matthew Pickering</span>
<i>at 2021-09-28T01:53:36-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>hadrian: Update comments on verbosity handling
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/62b4a89b6ec9d424231f7c68180363a86ac44344" style="color: #1068bf;">62b4a89b</a></strong>
<div>
<span>by taylorfausak</span>
<i>at 2021-09-28T09:57:37-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>Remove outdated note about pragma layout</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/028abd5bf398db6d872a10342695e8e84e0827b3" style="color: #1068bf;">028abd5b</a></strong>
<div>
<span>by Benjamin Maurer</span>
<i>at 2021-09-28T09:58:13-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>Documented yet undocumented dump flags #18641
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/b8d98827d73fd3e49867cab09f9440fc8c311bfe" style="color: #1068bf;">b8d98827</a></strong>
<div>
<span>by Richard Eisenberg</span>
<i>at 2021-09-29T09:40:14-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>Compare FunTys as if they were TyConApps.

See Note [Equality on FunTys] in TyCoRep.

Close #17675.
Close #17655, about documentation improvements included in
this patch.
Close #19677, about a further mistake around FunTy.

test cases: typecheck/should_compile/T19677
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/be77a9e07d9f77af48fd9defd92de85560d884c0" style="color: #1068bf;">be77a9e0</a></strong>
<div>
<span>by Fabian Thorand</span>
<i>at 2021-09-29T09:40:51-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>Remove special case for large objects in allocateForCompact

allocateForCompact() is called when the current allocation for the
compact region does not fit in the nursery. It previously had a special
case for objects exceeding the large object threshold. In that case, it
would allocate a new compact region block just for that object. That led
to a lot of small blocks being allocated in compact regions with a
larger default block size (`autoBlockW`).

This commit removes this special case because having a lot of small
compact region blocks contributes significantly to memory fragmentation.

The removal should be valid because
- a more generic case for allocating a new compact region block follows
  at the end of allocateForCompact(), and that one takes `autoBlockW`
  into account
- the reason for allocating separate blocks for large objects in the
  main heap seems to be to avoid copying during GCs, but once inside
  the compact region, the object will never be copied anyway.

Fixes #18757.

A regression test T18757 was added.
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/cd6030623eabe9de80779ff0ba5081be01a6a3f4" style="color: #1068bf;">cd603062</a></strong>
<div>
<span>by Kirill Zaborsky</span>
<i>at 2021-09-29T09:41:27-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>Fix comment typos
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/162492ea0903e5b7c96f1f3934a70571f5daad23" style="color: #1068bf;">162492ea</a></strong>
<div>
<span>by Alexander Kjeldaas</span>
<i>at 2021-09-29T09:41:27-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>Document interaction between unsafe FFI and GC

In the multi-threaded RTS this can lead to hard to debug
performance issues.
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/361da88a29af9005135d33e00fc61ba92c592970" style="color: #1068bf;">361da88a</a></strong>
<div>
<span>by Kamil Dworakowski</span>
<i>at 2021-09-29T09:42:04-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>Add a regression test for #17912
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/5cc4bd574720fd97d877d702cbafa453434f035e" style="color: #1068bf;">5cc4bd57</a></strong>
<div>
<span>by Benjamin Maurer</span>
<i>at 2021-09-29T09:42:41-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>Rectifying COMMENT and `mkComment` across platforms to work with SDoc
and exhibit similar behaviors. Issue 20400
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/a2be9f3456dbf86dde842e4d59991815486bb048" style="color: #1068bf;">a2be9f34</a></strong>
<div>
<span>by Ziyang Liu</span>
<i>at 2021-09-29T09:43:19-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>Document that `eqType`/`coreView` do not look through type families

This isn't clear from the existing doc.
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/c668fd2c42b36c81c876defcf0eb8314f7e7eb86" style="color: #1068bf;">c668fd2c</a></strong>
<div>
<span>by Andrea Condoluci</span>
<i>at 2021-09-29T09:44:04-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>TH stage restriction check for constructors, selectors, and class methods

Closes ticket #17820.
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/d46e34d08e95e1bdc90210590baaad2cf3521f7c" style="color: #1068bf;">d46e34d0</a></strong>
<div>
<span>by Andrea Condoluci</span>
<i>at 2021-09-29T09:44:04-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>Add tests for T17820
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/770fcac8a33983698d0f16249694c76ff649701e" style="color: #1068bf;">770fcac8</a></strong>
<div>
<span>by Ben Gamari</span>
<i>at 2021-09-29T09:44:40-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>GHC: Drop dead packageDbModules

It was already commented out and contained a reference to the
non-deterministic nameEnvElts so let's just drop it.
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/42492b7630890e78d80cbb1d3862892fc1d6a8a1" style="color: #1068bf;">42492b76</a></strong>
<div>
<span>by Ben Gamari</span>
<i>at 2021-09-29T09:44:40-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>compiler: Reimplement seqEltsUFM in terms of fold

Rather than nonDetEltsUFM; this should eliminate some unnecessary list
allocations.
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/97ffd6d9d76e19ce5478158de546810f6482f3b3" style="color: #1068bf;">97ffd6d9</a></strong>
<div>
<span>by Ben Gamari</span>
<i>at 2021-09-29T09:44:40-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>compiler: Rewrite all eltsUFM occurrences to nonDetEltsUFM

And remove the former.
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/df8c5961bcb45902a64b40ba7b578d7950fd1b30" style="color: #1068bf;">df8c5961</a></strong>
<div>
<span>by Ben Gamari</span>
<i>at 2021-09-29T09:44:40-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>compiler: Fix name of GHC.Core.TyCon.Env.nameEnvElts

Rename to nonDetTyConEnvElts.
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/1f2ba67a07c1f94c0232952eb3af184a0962e881" style="color: #1068bf;">1f2ba67a</a></strong>
<div>
<span>by Ben Gamari</span>
<i>at 2021-09-29T09:44:40-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>compiler: Make nubAvails deterministic

Surprisingly this previously didn't appear to introduce any visible
non-determinism but it seems worth avoiding non-determinism here.
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/7c90a1804d25c77e829546f5d744f92f3c840a77" style="color: #1068bf;">7c90a180</a></strong>
<div>
<span>by Ben Gamari</span>
<i>at 2021-09-29T09:44:40-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>compiler: Rename nameEnvElts -> nonDetNameEnvElts
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/2e68d4fa8c2514009db368fbbce213e36bdbcda2" style="color: #1068bf;">2e68d4fa</a></strong>
<div>
<span>by Ben Gamari</span>
<i>at 2021-09-29T09:44:40-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>compiler: Use seqEltsNameEnv rather that nameEnvElts
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/f66eaefd5d4a3e0c0822dd3678e5e55a7d972a0d" style="color: #1068bf;">f66eaefd</a></strong>
<div>
<span>by Ben Gamari</span>
<i>at 2021-09-29T09:44:40-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>compiler: occEnvElts -> nonDetOccEnvElts
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/594ee2f48f5b8affc85462543c54612ad45802bf" style="color: #1068bf;">594ee2f4</a></strong>
<div>
<span>by Matthew Pickering</span>
<i>at 2021-09-30T00:56:30-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>testsuite: Make cabal01 more robust to large environments

Sebastian unfortunately wrote a very long commit message in !5667 which
caused `xargs` to fail on windows because the environment was too big.
Fortunately `xargs` and `rm` don't need anything from the environment so
just run those commands in an empty environment (which is what env -i
achieves).
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/c261f2207cf85c8770dc46fcfc46e9b1ddb49589" style="color: #1068bf;">c261f220</a></strong>
<div>
<span>by Sebastian Graf</span>
<i>at 2021-09-30T00:56:30-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>Nested CPR light unleashed (#18174)

This patch enables worker/wrapper for nested constructed products, as described
in `Note [Nested CPR]`. The machinery for expressing Nested CPR was already
there, since !5054. Worker/wrapper is equipped to exploit Nested CPR annotations
since !5338. CPR analysis already handles applications in batches since !5753.
This patch just needs to flip a few more switches:

1. In `cprTransformDataConWork`, we need to look at the field expressions
   and their `CprType`s to see whether the evaluation of the expressions
   terminates quickly (= is in HNF) or if they are put in strict fields.
   If that is the case, then we retain their CPR info and may unbox nestedly
   later on. More details in `Note [Nested CPR]`.
2. Enable nested `ConCPR` signatures in `GHC.Types.Cpr`.
3. In the `asConCpr` call in `GHC.Core.Opt.WorkWrap.Utils`, pass CPR info of
   fields to the `Unbox`.
4. Instead of giving CPR signatures to DataCon workers and wrappers, we now have
   `cprTransformDataConWork` for workers and treat wrappers by analysing their
   unfolding. As a result, the code from GHC.Types.Id.Make went away completely.
5. I deactivated worker/wrappering for recursive DataCons and wrote a function
   `isRecDataCon` to detect them. We really don't want to give `repeat` or
   `replicate` the Nested CPR property.
   See Note [CPR for recursive data structures] for which kind of recursive
   DataCons we target.
6. Fix a couple of tests and their outputs.

I also documented that CPR can destroy sharing and lead to asymptotic increase
in allocations (which is tracked by #13331/#19326) in
`Note [CPR for data structures can destroy sharing]`.

Nofib results:
```
--------------------------------------------------------------------------------
        Program         Allocs    Instrs
--------------------------------------------------------------------------------
   ben-raytrace          -3.1%     -0.4%
   binary-trees          +0.8%     -2.9%
   digits-of-e2          +5.8%     +1.2%
          event          +0.8%     -2.1%
 fannkuch-redux          +0.0%     -1.4%
           fish           0.0%     -1.5%
         gamteb          -1.4%     -0.3%
        mkhprog          +1.4%     +0.8%
     multiplier          +0.0%     -1.9%
            pic          -0.6%     -0.1%
        reptile         -20.9%    -17.8%
      wave4main          +4.8%     +0.4%
           x2n1        -100.0%     -7.6%
--------------------------------------------------------------------------------
            Min         -95.0%    -17.8%
            Max          +5.8%     +1.2%
 Geometric Mean          -2.9%     -0.4%
```
The huge wins in x2n1 (loopy list) and reptile (see #19970) are due to
refraining from unboxing (:). Other benchmarks like digits-of-e2 or wave4main
regress because of that. Ultimately there are no great improvements due to
Nested CPR alone, but at least it's a win.
Binary sizes decrease by 0.6%.

There are a significant number of metric decreases. The most notable ones (>1%):
```
       ManyAlternatives(normal) ghc/alloc   771656002.7   762187472.0  -1.2%
       ManyConstructors(normal) ghc/alloc  4191073418.7  4114369216.0  -1.8%
      MultiLayerModules(normal) ghc/alloc  3095678333.3  3128720704.0  +1.1%
              PmSeriesG(normal) ghc/alloc    50096429.3    51495664.0  +2.8%
              PmSeriesS(normal) ghc/alloc    63512989.3    64681600.0  +1.8%
              PmSeriesV(normal) ghc/alloc    62575424.0    63767208.0  +1.9%
                 T10547(normal) ghc/alloc    29347469.3    29944240.0  +2.0%
                T11303b(normal) ghc/alloc    46018752.0    47367576.0  +2.9%
                 T12150(optasm) ghc/alloc    81660890.7    82547696.0  +1.1%
                 T12234(optasm) ghc/alloc    59451253.3    60357952.0  +1.5%
                 T12545(normal) ghc/alloc  1705216250.7  1751278952.0  +2.7%
                 T12707(normal) ghc/alloc   981000472.0   968489800.0  -1.3% GOOD
                 T13056(optasm) ghc/alloc   389322664.0   372495160.0  -4.3% GOOD
                 T13253(normal) ghc/alloc   337174229.3   341954576.0  +1.4%
                 T13701(normal) ghc/alloc  2381455173.3  2439790328.0  +2.4%  BAD
                   T14052(ghci) ghc/alloc  2162530642.7  2139108784.0  -1.1%
                 T14683(normal) ghc/alloc  3049744728.0  2977535064.0  -2.4% GOOD
                 T14697(normal) ghc/alloc   362980213.3   369304512.0  +1.7%
                 T15164(normal) ghc/alloc  1323102752.0  1307480600.0  -1.2%
                 T15304(normal) ghc/alloc  1304607429.3  1291024568.0  -1.0%
                 T16190(normal) ghc/alloc   281450410.7   284878048.0  +1.2%
                 T16577(normal) ghc/alloc  7984960789.3  7811668768.0  -2.2% GOOD
                 T17516(normal) ghc/alloc  1171051192.0  1153649664.0  -1.5%
                 T17836(normal) ghc/alloc  1115569746.7  1098197592.0  -1.6%
                T17836b(normal) ghc/alloc    54322597.3    55518216.0  +2.2%
                 T17977(normal) ghc/alloc    47071754.7    48403408.0  +2.8%
                T17977b(normal) ghc/alloc    42579133.3    43977392.0  +3.3%
                 T18923(normal) ghc/alloc    71764237.3    72566240.0  +1.1%
                  T1969(normal) ghc/alloc   784821002.7   773971776.0  -1.4% GOOD
                  T3294(normal) ghc/alloc  1634913973.3  1614323584.0  -1.3% GOOD
                  T4801(normal) ghc/alloc   295619648.0   292776440.0  -1.0%
                T5321FD(normal) ghc/alloc   278827858.7   276067280.0  -1.0%
                  T5631(normal) ghc/alloc   586618202.7   577579960.0  -1.5%
                  T5642(normal) ghc/alloc   494923048.0   487927208.0  -1.4%
                  T5837(normal) ghc/alloc    37758061.3    39261608.0  +4.0%
                  T9020(optasm) ghc/alloc   257362077.3   254672416.0  -1.0%
                  T9198(normal) ghc/alloc    49313365.3    50603936.0  +2.6%  BAD
                  T9233(normal) ghc/alloc   704944258.7   685692712.0  -2.7% GOOD
                  T9630(normal) ghc/alloc  1476621560.0  1455192784.0  -1.5%
                  T9675(optasm) ghc/alloc   443183173.3   433859696.0  -2.1% GOOD
                 T9872a(normal) ghc/alloc  1720926653.3  1693190072.0  -1.6% GOOD
                 T9872b(normal) ghc/alloc  2185618061.3  2162277568.0  -1.1% GOOD
                 T9872c(normal) ghc/alloc  1765842405.3  1733618088.0  -1.8% GOOD
   TcPlugin_RewritePerf(normal) ghc/alloc  2388882730.7  2365504696.0  -1.0%
                  WWRec(normal) ghc/alloc   607073186.7   597512216.0  -1.6%

                  T9203(normal) run/alloc   107284064.0   102881832.0  -4.1%
          haddock.Cabal(normal) run/alloc 24025329589.3 23768382560.0  -1.1%
           haddock.base(normal) run/alloc 25660521653.3 25370321824.0  -1.1%
       haddock.compiler(normal) run/alloc 74064171706.7 73358712280.0  -1.0%
```
The biggest exception to the rule is T13701 which seems to fluctuate as usual
(not unlike T12545). T14697 has a similar quality, being a generated
multi-module test. T5837 is small enough that it similarly doesn't measure
anything significant besides module loading overhead.
T13253 simply does one additional round of Simplification due to Nested CPR.

There are also some apparent regressions in T9198, T12234 and PmSeriesG that we
(@mpickering and I) were simply unable to reproduce locally. @mpickering tried
to run the CI script in a local Docker container and actually found that T9198
and PmSeriesG *improved*. In MRs that were rebased on top this one, like !4229,
I did not experience such increases. Let's not get hung up on these regression
tests, they were meant to test for asymptotic regressions.

The build-cabal test improves by 1.2% in -O0.

Metric Increase:
    T10421
    T12234
    T12545
    T13035
    T13056
    T13701
    T14697
    T18923
    T5837
    T9198
Metric Decrease:
    ManyConstructors
    T12545
    T12707
    T13056
    T14683
    T16577
    T18223
    T1969
    T3294
    T9203
    T9233
    T9675
    T9872a
    T9872b
    T9872c
    T9961
    TcPlugin_RewritePerf
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/205f0f921590a6365ed1c36d34f557a1e387bfa2" style="color: #1068bf;">205f0f92</a></strong>
<div>
<span>by Andrea Condoluci</span>
<i>at 2021-09-30T00:57:09-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>Trees That Grow refactor for HsTick and HsBinTick

Move HsTick and HsBinTick to XExpr, the extension tree of HsExpr.

Part of #16830 .
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/e0923b98a243809f08245b2ff04ecbe074b55873" style="color: #1068bf;">e0923b98</a></strong>
<div>
<span>by Ben Gamari</span>
<i>at 2021-09-30T00:57:44-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>ghc-boot: Eliminate unnecessary use of getEnvironment

Previously we were using `System.Environment.getEnvironment`, which
decodes all environment variables into Haskell `String`s, where a simple
environment lookup would do. This made the compiler's allocations
unnecessarily dependent on the environment.

Fixes #20431.
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/941d3792b2e6656bebdc4099be67b74a02d1f516" style="color: #1068bf;">941d3792</a></strong>
<div>
<span>by Sylvain Henry</span>
<i>at 2021-09-30T19:41:09-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>Rules for sized conversion primops (#19769)

Metric Decrease:
    T12545
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/adc41a7747a72a526dd30e63afb03c61cee13e9a" style="color: #1068bf;">adc41a77</a></strong>
<div>
<span>by Matthew Pickering</span>
<i>at 2021-09-30T19:41:44-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>driver: Fix -E -XCPP, copy output from CPP ouput rather than .hs output

Fixes #20416

I thought about adding a test for this case but I struggled to think of
something robust. Grepping -v3 will include different paths on different
systems and the structure of the result file depends on which
preprocessor you are using.
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/94f3ce7e4a4e0c952687eef511aa68cc38b1ad0d" style="color: #1068bf;">94f3ce7e</a></strong>
<div>
<span>by Matthew Pickering</span>
<i>at 2021-09-30T19:42:19-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>Recompilation: Handle -plugin-package correctly

If a plugins was specified using the -plugin-package-(id) flag then the
module it applied to was always recompiled.

The recompilation checker was previously using `findImportedModule`,
which looked for packages in the HPT and then in the package database
but only for modules specified using `-package`.

The correct lookup function for plugins is `findPluginModule`, therefore
we check normal imports with `findImportedModule` and plugins with
`findPluginModule`.

Fixes #20417
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/ef92a0095cee1f623fba1c285c1836e80bf16223" style="color: #1068bf;">ef92a009</a></strong>
<div>
<span>by Andreas Klebinger</span>
<i>at 2021-09-30T19:42:54-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>NCG: Linear-reg-alloc: A few small implemenation tweaks.

Removed an intermediate list via a fold.
realRegsAlias: Manually inlined the list functions to get better code.
Linear.hs added a bang somewhere.
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/9606774db875841916a7fef9fc169f39565d9f25" style="color: #1068bf;">9606774d</a></strong>
<div>
<span>by Aaron Allen</span>
<i>at 2021-10-01T09:04:10-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>Convert Diagnostics GHC.Tc.Gen.* (Part 3)

Converts all diagnostics in the `GHC.Tc.Gen.Expr` module.

(#20116)
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/9600a5fbd79c8434cf68aad078f26577da0530ad" style="color: #1068bf;">9600a5fb</a></strong>
<div>
<span>by Matthew Pickering</span>
<i>at 2021-10-01T09:04:46-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>code gen: Improve efficiency of findPrefRealReg

Old strategy: For each variable linearly scan through all the blocks and
check to see if the variable is any of the block register mappings. This
is very slow when you have a lot of blocks.

New strategy: Maintain a map from virtual registers to the first real
register the virtual register was assigned to. Consult this map in
findPrefRealReg.

The map is updated when the register mapping is updated and is hidden
behind the BlockAssigment abstraction.

On the mmark package this reduces compilation time from about 44s to
32s.

Ticket: #19471
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/e3701815d2b0e8c4f46ff67d7feb0b89faa919f9" style="color: #1068bf;">e3701815</a></strong>
<div>
<span>by Matthew Pickering</span>
<i>at 2021-10-01T09:05:20-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>ci: Unset CI_* variables before run_hadrian and test_make

The goal here is to somewhat sanitize the environment so that
performance tests don't fluctuate as much as they have been doing. In
particular the length of the commit message was causing benchmarks to
increase because gitlab stored the whole commit message twice in
environment variables. Therefore when we used `getEnvironment` it would
cause more allocation because more string would be created.

See #20431

-------------------------
Metric Decrease:
    T10421
    T13035
    T18140
    T18923
    T9198
    T12234
    T12425
-------------------------
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/e401274a56cbd7e1f790866ed2bc7d846f2556bd" style="color: #1068bf;">e401274a</a></strong>
<div>
<span>by Ben Gamari</span>
<i>at 2021-10-02T05:18:03-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>gitlab-ci: Bump docker images

To install libncurses-dev on Debian targets.
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/42f49c4ee681492db38273586dcaaccbcde6cf27" style="color: #1068bf;">42f49c4e</a></strong>
<div>
<span>by Ben Gamari</span>
<i>at 2021-10-02T05:18:03-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>Bump terminfo submodule to 0.4.1.5

Closes #20307.
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/cb862ecfc3d9d421ff64af35c0d87f6d6f835fa0" style="color: #1068bf;">cb862ecf</a></strong>
<div>
<span>by Andreas Schwab</span>
<i>at 2021-10-02T05:18:40-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>CmmToLlvm: Sign/Zero extend parameters for foreign calls on RISC-V

Like S390 and PPC64, RISC-V requires parameters for foreign calls to be
extended to full words.
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/0d455a18b027261981931cec4cf18d7f900c921d" style="color: #1068bf;">0d455a18</a></strong>
<div>
<span>by Richard Eisenberg</span>
<i>at 2021-10-02T05:19:16-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>Use eqType, not tcEqType, in metavar kind check

Close #20356.

See addendum to Note [coreView vs tcView] in GHC.Core.Type
for the details.

Also killed old Note about metaTyVarUpdateOK, which has been
gone for some time.

test case: typecheck/should_fail/T20356
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/4264e74d61d53e04d8109127cd52028a72a37eb2" style="color: #1068bf;">4264e74d</a></strong>
<div>
<span>by Ben Gamari</span>
<i>at 2021-10-02T05:19:51-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>rts: Add missing write barriers in MVar wake-up paths

Previously PerformPut failed to respect the non-moving collector's
snapshot invariant, hiding references to an MVar and its new value by
overwriting a stack frame without dirtying the stack. Fix this.

PerformTake exhibited a similar bug, failing to dirty (and therefore
mark) the blocked stack before mutating it.

Closes #20399.
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/040c347e3cc968d37e76bca228f1f5df997d3672" style="color: #1068bf;">040c347e</a></strong>
<div>
<span>by Ben Gamari</span>
<i>at 2021-10-02T05:19:51-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>rts: Unify stack dirtiness check

This fixes an inconsistency where one dirtiness check would not mask out
the STACK_DIRTY flag, meaning it may also be affected by the STACK_SANE
flag.
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/4bdafb48b40afd1eb185c1312302e5759f796472" style="color: #1068bf;">4bdafb48</a></strong>
<div>
<span>by Sylvain Henry</span>
<i>at 2021-10-02T05:20:29-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>Add (++)/literal rule

When we derive the Show instance of the big record in #16577, I get the
following compilation times (with -O):
  Before: 0.91s
  After:  0.77s

Metric Decrease:
    T19695
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/8b3d98ff376355317c64763cf619b1c41281b0d9" style="color: #1068bf;">8b3d98ff</a></strong>
<div>
<span>by Sylvain Henry</span>
<i>at 2021-10-02T05:21:07-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>Don't use FastString for UTF-8 encoding only
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/f4554f1d2a5684042484c38ed831a2b93536b9c6" style="color: #1068bf;">f4554f1d</a></strong>
<div>
<span>by Ben Gamari</span>
<i>at 2021-10-03T14:23:36-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>ci: Use https:// transport and access token to push perf notes

Previously we would push perf notes using a standard user and SSH
key-based authentication. However, configuring SSH is unnecessarily
fiddling. We now rather use HTTPS and a project access token.
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/91cd124843d3c03639ec12a62b2b43d9b45a8d52" style="color: #1068bf;">91cd1248</a></strong>
<div>
<span>by Ben Gamari</span>
<i>at 2021-10-03T14:23:45-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>ci/test-metrics: Clean up various bash quoting issues
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/ed0e29f1f51664dd7591935967838ff25de6a8bd" style="color: #1068bf;">ed0e29f1</a></strong>
<div>
<span>by Ben Gamari</span>
<i>at 2021-10-03T23:24:37-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>base: Update Unicode database to 14.0

Closes #20404.
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/e8693713a40072a0dec5e83b1a31ffb0ee881633" style="color: #1068bf;">e8693713</a></strong>
<div>
<span>by Ben Gamari</span>
<i>at 2021-10-03T23:25:11-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>configure: Fix redundant-argument warning from -no-pie check

Modern clang versions are quite picky when it comes to reporting
redundant arguments. In particular, they will warn when -no-pie is
passed when no linking is necessary.

Previously the configure script used a `$CC -Werror -no-pie -E`
invocation to test whether `-no-pie` is necessary. Unfortunately, this
meant that clang would throw a redundant argument warning, causing
configure to conclude that `-no-pie` was not supported. We now rather
use `$CC -Werror -no-pie`, ensuring that linking is necessary and
avoiding this failure mode.

Fixes #20463.
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/b3267fadd42429e6253cefd85d556aeea4dadd6f" style="color: #1068bf;">b3267fad</a></strong>
<div>
<span>by Sylvain Henry</span>
<i>at 2021-10-04T08:28:23+00:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>Constant folding for negate (#20347)

Only for small integral types for now.
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/2308a130cac014ab1383a1f90a693c75fdceca67" style="color: #1068bf;">2308a130</a></strong>
<div>
<span>by Vladislav Zavialov</span>
<i>at 2021-10-04T18:44:07-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>Clean up HiePass constraints
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/40c81dd297dcfb8259f35372d2367b00e3661603" style="color: #1068bf;">40c81dd2</a></strong>
<div>
<span>by Matthew Pickering</span>
<i>at 2021-10-04T23:45:11-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>ci: Run hadrian builds verbosely, but not tests

This reduces the output from the testsuite to a more manageable level.

Fixes #20432
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/347537a5999622def42da47572ca49580c53f29c" style="color: #1068bf;">347537a5</a></strong>
<div>
<span>by Ben Gamari</span>
<i>at 2021-10-04T23:45:46-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>compiler: Improve Haddocks of atomic MachOps
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/a0f44cebb217b3586d861750366301b973073dd1" style="color: #1068bf;">a0f44ceb</a></strong>
<div>
<span>by Ben Gamari</span>
<i>at 2021-10-04T23:45:46-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>compiler: Fix racy ticker counter registration

Previously registration of ticky entry counters was racy, performing a
read-modify-write to add the new counter to the ticky_entry_ctrs list.
This could result in the list becoming cyclic if multiple threads
entered the same closure simultaneously.

Fixes #20451.
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/a762933454f1dbecaa2048f810f6ab6bbfe3a93d" style="color: #1068bf;">a7629334</a></strong>
<div>
<span>by Vladislav Zavialov</span>
<i>at 2021-10-04T23:46:21-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>Bespoke TokenLocation data type

The EpaAnnCO we were using contained an Anchor instead of EpaLocation,
making it harder to work with.

At the same time, using EpaLocation by itself isn't possible either,
as we may have tokens without location information.

Hence the new data type:
        data TokenLocation = NoTokenLoc
                           | TokenLoc !EpaLocation
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/a14d0e6375d6b7163d98db8d32a2fc67434608b7" style="color: #1068bf;">a14d0e63</a></strong>
<div>
<span>by sheaf</span>
<i>at 2021-10-04T23:46:58-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>Bump TcLevel of failing kind equality implication

  Not bumping the TcLevel meant that we could end up
  trying to add evidence terms for the implication constraint
  created to wrap failing kind equalities (to avoid their deferral).

fixes #20043
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/48b0f17acff0c35df2d3b63dd6b624832cd54852" style="color: #1068bf;">48b0f17a</a></strong>
<div>
<span>by sheaf</span>
<i>at 2021-10-04T23:47:35-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>Add a regression test for #17723

  The underlying bug was fixed by b8d98827, see MR !2477
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/5601b9e249661a16f4bfb14958fe10d950e7e589" style="color: #1068bf;">5601b9e2</a></strong>
<div>
<span>by Matthías Páll Gissurarson</span>
<i>at 2021-10-05T03:18:39-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>Speed up valid hole-fits by adding early abort and checks.

By adding an early abort flag in `TcSEnv`, we can fail fast in the presence of
insoluble constraints. This helps us avoid a lot of work in valid hole-fits, and
we geta massive speed-up by avoiding a lot of useless work solving constraints that
never come into play.

Additionally, we add a simple check for degenerate hole types, such as
when the type of the hole is an immutable type variable (as is the case
when the hole is completely unconstrained). Then the only valid fits are
the locals, so we can ignore the global candidates.

This fixes #16875
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/298df16d7005a3cead2df1cc7280509ddf7c6c76" style="color: #1068bf;">298df16d</a></strong>
<div>
<span>by Krzysztof Gogolewski</span>
<i>at 2021-10-05T03:19:14-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>Reject type family equation with wrong name (#20260)

We should reject "type family Foo where Bar = ()".
This check was done in kcTyFamInstEqn but not in tcTyFamInstEqn.
I factored out arity checking, which was duplicated.
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/643b6f01fb501738e378c3149177966dc39eca46" style="color: #1068bf;">643b6f01</a></strong>
<div>
<span>by Sebastian Graf</span>
<i>at 2021-10-05T14:32:51-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>WorkWrap: Nuke CPR signatures of join points (#18824)

In #18824 we saw that the Simplifier didn't nuke a CPR signature of a join point
when it pushed a continuation into it when it better should have.

But join points are local, mostly non-exported bindings. We don't use their
CPR signature anyway and would discard it at the end of the Core pipeline.
Their main purpose is to propagate CPR info during CPR analysis and by the time
worker/wrapper runs the signature will have served its purpose. So we zap it!

Fixes #18824.
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/b4c0cc3636046b6ae1b9a39534b60779885c97d5" style="color: #1068bf;">b4c0cc36</a></strong>
<div>
<span>by Sebastian Graf</span>
<i>at 2021-10-05T14:32:51-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>Simplifier: Get rid of demand zapping based on Note [Arity decrease]

The examples in the Note were inaccurate (`$s$dm` has arity 1 and that seems OK)
and the code didn't actually nuke the demand *signature* anyway. Specialise has
to nuke it, but it starts from a clean IdInfo anyway (in `newSpecIdM`).

So I just deleted the code. Fixes #20450.
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/cd1b016f9cec5d206a6f23a97418d900d1801175" style="color: #1068bf;">cd1b016f</a></strong>
<div>
<span>by Sebastian Graf</span>
<i>at 2021-10-05T14:32:51-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>CprAnal: Activate Sum CPR for local bindings

We've had Sum CPR (#5075) for top-level bindings for a couple of years now.
That begs the question why we didn't also activate it for local bindings, and
the reasons for that are described in `Note [CPR for sum types]`. Only that it
didn't make sense! The Note said that Sum CPR would destroy let-no-escapes, but
that should be a non-issue since we have syntactic join points in Core now and
we don't WW for them (`Note [Don't w/w join points for CPR]`).

So I simply activated CPR for all bindings of sum type, thus fixing #5075 and
\#16570. NoFib approves:

```
--------------------------------------------------------------------------------
        Program         Allocs    Instrs
--------------------------------------------------------------------------------
  comp_lab_zift          -0.0%     +0.7%
          fluid          +1.7%     +0.7%
        reptile          +0.1%     +0.1%
--------------------------------------------------------------------------------
            Min          -0.0%     -0.2%
            Max          +1.7%     +0.7%
 Geometric Mean          +0.0%     +0.0%
```

There were quite a few metric decreases on the order of 1-4%, but T6048 seems to
regress significantly, by 26.1%. WW'ing for a `Just` constructor and the nested
data type meant additional Simplifier iterations and a 30% increase in term
sizes as well as a 200-300% in type sizes due to unboxed 9-tuples. There's not
much we can do about it, I'm afraid: We're just doing much more work there.

Metric Decrease:
    T12425
    T18698a
    T18698b
    T20049
    T9020
    WWRec
Metric Increase:
    T6048
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/000f2a30e0d77932275ac8d2b9d9e51191ff4e03" style="color: #1068bf;">000f2a30</a></strong>
<div>
<span>by Viktor Dukhovni</span>
<i>at 2021-10-05T14:33:29-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>Address some Foldable documentation nits

- Add link to laws from the class head
- Simplify wording of left/right associativity intro paragraph
- Avoid needless mention of "endomorphisms"
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/7059a72926e625c10695819b3e01cb63364bec2a" style="color: #1068bf;">7059a729</a></strong>
<div>
<span>by Viktor Dukhovni</span>
<i>at 2021-10-05T14:33:29-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>Add laws link and tweak Traversable class text
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/43358ab9d4cfd87971c8e07685d24713d713f7c8" style="color: #1068bf;">43358ab9</a></strong>
<div>
<span>by Viktor Dukhovni</span>
<i>at 2021-10-05T14:33:29-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>Note linear `elem` cost

This is a writeup of the state of play for better than linear `elem` via
a helper type class.
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/56899c8dce95a6fe4c47291a3a1dd1c49b0d0dfb" style="color: #1068bf;">56899c8d</a></strong>
<div>
<span>by Viktor Dukhovni</span>
<i>at 2021-10-05T14:33:29-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>Note elem ticket 20421
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/fb6b772fd016961be5d8d7755e83dea08f5cad99" style="color: #1068bf;">fb6b772f</a></strong>
<div>
<span>by Viktor Dukhovni</span>
<i>at 2021-10-05T14:33:29-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>Minor wording tweaks/fixes
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/f49c70122cf1599ca670b18fecbe5634c0cf9691" style="color: #1068bf;">f49c7012</a></strong>
<div>
<span>by Viktor Dukhovni</span>
<i>at 2021-10-05T14:33:29-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>Adopt David Feuer's explantion of foldl' via foldr
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/5282eaa17f976edc5bb2e43127fa40ab413a1441" style="color: #1068bf;">5282eaa1</a></strong>
<div>
<span>by Viktor Dukhovni</span>
<i>at 2021-10-05T14:33:29-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>Explain Endo, Dual, ... in laws
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/f52df067d288a023c52c4387841fe12a37bd1263" style="color: #1068bf;">f52df067</a></strong>
<div>
<span>by Alfredo Di Napoli</span>
<i>at 2021-10-05T14:34:04-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>Make GHC.Utils.Error.Validity type polymorphic

This commit makes the `Validity` type polymorphic:

```
data Validity' a
  = IsValid      -- ^ Everything is fine
  | NotValid a   -- ^ A problem, and some indication of why

-- | Monomorphic version of @Validity'@ specialised for 'SDoc's.
type Validity = Validity' SDoc
```

The type has been (provisionally) renamed to Validity' to not break
existing code, as the monomorphic `Validity` type is quite pervasive
in a lot of signatures in GHC.

Why having a polymorphic Validity? Because it carries the evidence of
"what went wrong", but the old type carried an `SDoc`, which clashed
with the new GHC diagnostic infrastructure (#18516). Having it
polymorphic it means we can carry an arbitrary, richer diagnostic type,
and this is very important for things like the
`checkOriginativeSideConditions` function, which needs to report the
actual diagnostic error back to `GHC.Tc.Deriv`.

It also generalises Validity-related functions to be polymorphic in @a@.
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/ac275f4237f1e4030c8b7b9e81e2d563e6903a81" style="color: #1068bf;">ac275f42</a></strong>
<div>
<span>by Alfredo Di Napoli</span>
<i>at 2021-10-05T14:34:04-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>Eradicate TcRnUnknownMessage from GHC.Tc.Deriv

This (big) commit finishes porting the GHC.Tc.Deriv module to support
the new diagnostic infrastructure (#18516) by getting rid of the legacy
calls to `TcRnUnknownMessage`. This work ended up being quite pervasive
and touched not only the Tc.Deriv module but also the Tc.Deriv.Utils and
Tc.Deriv.Generics module, which needed to be adapted to use the new
infrastructure. This also required generalising `Validity`.

More specifically, this is a breakdown of the work done:

* Add and use the TcRnUselessTypeable data constructor
* Add and use TcRnDerivingDefaults data constructor
* Add and use the TcRnNonUnaryTypeclassConstraint data constructor
* Add and use TcRnPartialTypeSignatures
* Add T13324_compile2 test to test another part of the
  TcRnPartialTypeSignatures diagnostic
* Add and use TcRnCannotDeriveInstance data constructor, which introduces a
  new data constructor to TcRnMessage called TcRnCannotDeriveInstance, which
  is further sub-divided to carry a `DeriveInstanceErrReason` which explains
  the reason why we couldn't derive a typeclass instance.
* Add DerivErrSafeHaskellGenericInst data constructor to DeriveInstanceErrReason
* Add DerivErrDerivingViaWrongKind and DerivErrNoEtaReduce
* Introduce the SuggestExtensionInOrderTo Hint, which adds (and use) a new
  constructor to the hint type `LanguageExtensionHint` called `SuggestExtensionInOrderTo`,
  which can be used to give a bit more "firm" recommendations when it's
  obvious what the required extension is, like in the case for the
  `DerivingStrategies`, which automatically follows from having enabled
  both `DeriveAnyClass` and `GeneralizedNewtypeDeriving`.
* Wildcard-free pattern matching in mk_eqn_stock, which removes `_` in
  favour of pattern matching explicitly on `CanDeriveAnyClass` and
  `NonDerivableClass`, because that determine whether or not we can
  suggest to the user `DeriveAnyClass` or not.
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/52400ebb537504eb0f8e0f4678f3f721b2fbc2d9" style="color: #1068bf;">52400ebb</a></strong>
<div>
<span>by Simon Peyton Jones</span>
<i>at 2021-10-05T14:34:39-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>Ensure top-level binders in scope in SetLevels

Ticket #20200 (the Agda failure) showed another case in which
lookupIdSubst would fail to find a local Id in the InScopeSet.
This time it was because SetLevels was given a program in which
the top-level bindings were not in dependency order.

The Simplifier (see Note [Glomming] in GHC.Core.Opt.Occuranal) and
the specialiser (see Note [Top level scope] in GHC.Core.Opt.Specialise)
may both produce top-level bindings where an early binding refers
to a later one.

One solution would be to run the occurrence analyser again to
put them all in the right order. But a simpler one is to make
SetLevels OK with this input by bringing all top-level binders into
scope at the start. That's what this patch does.
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/11240b7427c54c3233aa3cce5adc3a5209df8031" style="color: #1068bf;">11240b74</a></strong>
<div>
<span>by Sylvain Henry</span>
<i>at 2021-10-05T14:35:17-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>Constant folding for (.&.) maxBound (#20448)
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/29ee04f330514651537b0e851a948373a38fa231" style="color: #1068bf;">29ee04f3</a></strong>
<div>
<span>by Zubin Duggal</span>
<i>at 2021-10-05T14:35:52-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>docs: Clarify documentation of `getFileSystemEncoding` (#20344)

It may not always be a Unicode encoding
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/435ff39871776f73c946353689ea4f0305cc4501" style="color: #1068bf;">435ff398</a></strong>
<div>
<span>by Mann mit Hut</span>
<i>at 2021-10-06T00:11:07-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>Corrected types of thread ids obtained from the RTS

While the thread ids had been changed to 64 bit words in
e57b7cc6d8b1222e0939d19c265b51d2c3c2b4c0 the return type of the foreign
import function used to retrieve these ids - namely
'GHC.Conc.Sync.getThreadId' - was never updated accordingly.
In order to fix that this function returns now a 'CUULong'.

In addition to that the types used in the thread labeling subsystem were
adjusted as well and several format strings were modified throughout the
whole RTS to display thread ids in a consistent and correct way.

Fixes #16761
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/89e98bdf6e966f42b13a58dc4a5bbeb14d88ff15" style="color: #1068bf;">89e98bdf</a></strong>
<div>
<span>by Alan Zimmerman</span>
<i>at 2021-10-06T00:11:42-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>EPA: Remove duplicate AnnOpenP/AnnCloseP in DataDecl

The parens EPAs were added in the tyvars where they belong, but also
at the top level of the declaration.

Closes #20452
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/fc4c7ffbe4d65b936095ebedddf4f4ef6af54c8a" style="color: #1068bf;">fc4c7ffb</a></strong>
<div>
<span>by Ryan Scott</span>
<i>at 2021-10-06T00:12:17-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>Remove the Maybe in primRepName's type

There's no need for this `Maybe`, as it will always be instantiated to `Just`
in practice.

Fixes #20482.
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/4e91839acbfab71a525b58b7ac1785892b96e5ff" style="color: #1068bf;">4e91839a</a></strong>
<div>
<span>by sheaf</span>
<i>at 2021-10-06T00:12:54-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>Add a regression test for #13233

  This test fails on GHC 8.0.1, only when profiling is enabled,
  with the error:

    ghc: panic! (the 'impossible' happened)
      kindPrimRep.go a_12

  This was fixed by commit b460d6c9.
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/7fc986e1201bf1dc8f84fef9051be1d9429064b3" style="color: #1068bf;">7fc986e1</a></strong>
<div>
<span>by Sebastian Graf</span>
<i>at 2021-10-06T00:13:29-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>CprAnal: Two regression tests

For #16040 and #2387.
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/9af29e7fa81a8696a2d829a0ecbebcbc8be5badd" style="color: #1068bf;">9af29e7f</a></strong>
<div>
<span>by Matthew Pickering</span>
<i>at 2021-10-06T10:57:24-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>Disable -dynamic-too if -dynamic is also passed

Before if you passed both options then you would generate two identical
hi/dyn_hi and o/dyn_o files, both in the dynamic way. It's better to
warn this is happening rather than duplicating the work and causing
potential confusion.

-dynamic-too should only be used with -static.

Fixes #20436
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/a466b02492f73a43c6cb9ce69491fc85234b9559" style="color: #1068bf;">a466b024</a></strong>
<div>
<span>by sheaf</span>
<i>at 2021-10-06T10:58:03-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>Improve overlap error for polykinded constraints

There were two problems around `mkDictErr`:

  1. An outdated call to `flattenTys` meant that we missed out on some
     instances. As we no longer flatten type-family applications,
     the logic is obsolete and can be removed.

  2. We reported "out of scope" errors in a poly-kinded situation
     because `BoxedRep` and `Lifted` were considered out of scope.
     We fix this by using `pretendNameIsInScope`.

fixes #20465
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/b041fc6e0e79ef0377151178e83248297e3c89fd" style="color: #1068bf;">b041fc6e</a></strong>
<div>
<span>by Ben Gamari</span>
<i>at 2021-10-07T03:40:49-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>hadrian: Generate ghcii.sh in binary distributions

Technically we should probably generate this in the in-place build tree
as well, but I am not bothering to do so here as ghcii.sh will be
removed in 9.4 when WinIO becomes the default anyways (see #12720).

Fixes #19339.
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/75a766a362629a1b312ba9b95d2c41f91c3b20a5" style="color: #1068bf;">75a766a3</a></strong>
<div>
<span>by Ben Gamari</span>
<i>at 2021-10-07T03:40:49-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>hadrian: Fix incorrect ticket reference

This was supposed to refer to #20253.
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/6215728705f481861450cc197e5fbcfbf2c1a63f" style="color: #1068bf;">62157287</a></strong>
<div>
<span>by Teo Camarasu</span>
<i>at 2021-10-07T03:41:27-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>fix non-moving gc heap space requirements estimate

The space requirements of the non-moving gc are comparable to the
compacting gc, not the copying gc.

The copying gc requires a much larger overhead.

Fixes #20475
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/e82c8dd2157ee555ee74f1e713235b9b5fac4535" style="color: #1068bf;">e82c8dd2</a></strong>
<div>
<span>by Joachim Breitner</span>
<i>at 2021-10-07T03:42:01-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>Fix rst syntax mistakes in release notes
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/358f62221881e306cc7b005e8d594070561d8efd" style="color: #1068bf;">358f6222</a></strong>
<div>
<span>by Benjamin Maurer</span>
<i>at 2021-10-07T03:42:36-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>Removed left-over comment from `nonDetEltsUFM`-removal in `seqEltsUFM`.</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/0cf232636e613b2ba8d2285c9e0783c9ba6ff84f" style="color: #1068bf;">0cf23263</a></strong>
<div>
<span>by Alan Zimmerman</span>
<i>at 2021-10-07T03:43:11-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>EPA: Add comments to EpaDelta

The EpaDelta variant of EpaLocation cannot be sorted by location.

So we capture any comments that need to be printed between the prior
output and this location, when creating an EpaDelta offset in ghc-exactprint.

And make the EpaLocation fields strict.
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/e1d02fb0f04bcf3acea1da96d291a03bb749718d" style="color: #1068bf;">e1d02fb0</a></strong>
<div>
<span>by Sylvain Henry</span>
<i>at 2021-10-07T20:20:01-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>Bignum: allow naturalEq#/Ne# to inline (#20361)

We now perform constant folding on bigNatEq# instead.
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/44886aaba46230de003fb99153a3120667225302" style="color: #1068bf;">44886aab</a></strong>
<div>
<span>by Sylvain Henry</span>
<i>at 2021-10-07T20:20:01-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>Bignum: allow inlining of naturalEq/Ne/Gt/Lt/Ge/Le/Compare (#20361)

Perform constant folding on bigNatCompare instead.

Some functions of the Enum class for Natural now need to be inlined
explicitly to be specialized at call sites (because `x > lim` for
Natural is inlined and the resulting function is a little too big to
inline). If we don't do this, T17499 runtime allocations regresses by
16%.
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/3a5a5c859b59f596043b4c091d944f2a9951d0a2" style="color: #1068bf;">3a5a5c85</a></strong>
<div>
<span>by Sylvain Henry</span>
<i>at 2021-10-07T20:20:01-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>Bignum: allow naturalToWordClamp/Negate/Signum to inline (#20361)

We don't need built-in rules now that bignum literals (e.g. 123 :: Natural)
match with their constructors (e.g. NS 123##).
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/714568bb9e6fed883eb773435f71e075ac33b120" style="color: #1068bf;">714568bb</a></strong>
<div>
<span>by Sylvain Henry</span>
<i>at 2021-10-07T20:20:01-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>Bignum: remove outdated comment
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/4d44058d63182963b3cab069dd5e8975ef06b91a" style="color: #1068bf;">4d44058d</a></strong>
<div>
<span>by Sylvain Henry</span>
<i>at 2021-10-07T20:20:01-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>Bignum: transfer NOINLINE from Natural to BigNat
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/01f5324f8eaa2ce28d617922bc4d3b680ad4fc38" style="color: #1068bf;">01f5324f</a></strong>
<div>
<span>by Joachim Breitner</span>
<i>at 2021-10-07T20:20:36-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>Recover test case for T11547

commit 98c7749 has reverted commit 59d7ee53, including the test that
that file added. That test case is still valuable, so I am re-adding it.
I add it with it’s current (broken) behavior so that whoever fixes it
intentionally or accidentially will notice and then commit the actual
desired behavior (which is kinda unspecified, see
https://gitlab.haskell.org/ghc/ghc/-/issues/20455#note_382030)
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/3d31f11e83a3d60d17459457e036ae387fc95323" style="color: #1068bf;">3d31f11e</a></strong>
<div>
<span>by Sylvain Henry</span>
<i>at 2021-10-08T13:08:16-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>Don't link plugins' units with target code (#20218)

Before this patch, plugin units were linked with the target code even
when the unit was passed via `-plugin-package`. This is an issue to
support plugins in cross-compilers (plugins are definitely not ABI
compatible with target code).

We now clearly separate unit dependencies for plugins and unit
dependencies for target code and only link the latter ones.

We've also added a test to ensure that plugin units passed via
`-package` are linked with target code so that `thNameToGhcName` can
still be used in plugins that need it (see T20218b).
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/75aea7323602df9cb0db71e73e69ac14e07d4c6f" style="color: #1068bf;">75aea732</a></strong>
<div>
<span>by Joachim Breitner</span>
<i>at 2021-10-08T13:08:51-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>New test case: Variant of T14052 with data type definitions

previous attempts at fixing #11547 and #20455 were reverted because they
showed some quadratic behaviour, and the test case T15052 was added to
catch that.

I believe that similar quadratic behavor can be triggered with current
master, by using type definitions rather than value definitions, so this
adds a test case similar to T14052. I have hopes that my attempts at
fixing #11547 will lead to code that avoid the quadratic increase here.
Or not, we will see. In any case, having this in `master` and included
in future comparisons will be useful.
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/374a718e75ac5172674c1a789e1de5bbbddc9711" style="color: #1068bf;">374a718e</a></strong>
<div>
<span>by Teo Camarasu</span>
<i>at 2021-10-08T18:09:56-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>Fix nonmoving gen label in gc stats report

The current code assumes the non-moving generation is always
generation 1, but this isn't the case if the amount of generations
is greater than 2

Fixes #20461
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/a37275a376f84e041d1cde96098f8999777971c6" style="color: #1068bf;">a37275a3</a></strong>
<div>
<span>by Matthew Pickering</span>
<i>at 2021-10-08T18:10:31-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>ci: Remove BROKEN_TESTS for x86 darwin builds

The tests Capi_Ctype_001 Capi_Ctype_002 T12010 pass regularly on CI so
let's mark them unbroken and hopefully then we can fix #20013.
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/e683887275135575a4dbdda9d76683b5d3d53fc8" style="color: #1068bf;">e6838872</a></strong>
<div>
<span>by Matthew Pickering</span>
<i>at 2021-10-08T18:10:31-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>ci: Expect x86-darwin to pass

Closes #20013
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/1f160cd9c82c8cd21fbc733dc18c86a2abe3459f" style="color: #1068bf;">1f160cd9</a></strong>
<div>
<span>by Matthew Pickering</span>
<i>at 2021-10-08T18:10:31-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>Normalise output of T20199 test
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/816d256114858d01c99503c10e3be86ecdb15173" style="color: #1068bf;">816d2561</a></strong>
<div>
<span>by CarrieMY</span>
<i>at 2021-10-08T18:11:08-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>Fix -E -fno-code undesirable interactions #20439
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/55a6377a5d55d6e6e93cf3d087f1e2d17fe7d3f3" style="color: #1068bf;">55a6377a</a></strong>
<div>
<span>by Matthew Pickering</span>
<i>at 2021-10-08T18:11:43-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>code gen: Disable dead code elimination when -finfo-table-map is enabled

It's important that when -finfo-table-map is enabled that we generate
IPE entries just for those info tables which are actually used. To this
end, the info tables which are used are collected just before code
generation starts and entries only created for those tables.

Not accounted for in this scheme was the dead code elimination in the
native code generator. When compiling GHC this optimisation removed an
info table which had an IPE entry which resulting in the following kind
of linker error:

```
/home/matt/ghc-with-debug/_build/stage1/lib/../lib/x86_64-linux-ghc-9.3.20210928/libHSCabal-3.5.0.0-ghc9.3.20210928.so: error: undefined reference to '.Lc5sS_info'
/home/matt/ghc-with-debug/_build/stage1/lib/../lib/x86_64-linux-ghc-9.3.20210928/libHSCabal-3.5.0.0-ghc9.3.20210928.so: error: undefined reference to '.Lc5sH_info'
/home/matt/ghc-with-debug/_build/stage1/lib/../lib/x86_64-linux-ghc-9.3.20210928/libHSCabal-3.5.0.0-ghc9.3.20210928.so: error: undefined reference to '.Lc5sm_info'
collect2: error: ld returned 1 exit status
`cc' failed in phase `Linker'. (Exit code: 1)
Development.Shake.cmd, system command failed
```

Unfortunately, by the time this optimisation happens the structure of
the CmmInfoTable has been lost, we only have the generated code for the
info table to play with so we can no longer just collect all the used
info tables and generate the IPE map.

This leaves us with two options:

1. Return a list of the names of the discarded info tables and then
   remove them from the map. This is awkward because we need to do code
   generation for the map as well.
2. Just disable this small code size optimisation when -finfo-table-map
   is enabled. The option produces very big object files anyway.

Option 2 is much easier to implement and means we don't have to thread
information around awkwardly. It's at the cost of slightly larger object
files (as dead code is not eliminated).

Disabling this optimisation allows an IPE build of GHC to complete
successfully.

Fixes #20428
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/a76409c758d8c7bd837dcc6c0b58f8cce656b4f1" style="color: #1068bf;">a76409c7</a></strong>
<div>
<span>by Andrei Barbu</span>
<i>at 2021-10-08T19:45:29-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>Add defaulting plugins.

Like the built-in type defaulting rules these plugins can propose candidates
to resolve ambiguous type variables.

Machine learning and other large APIs like those for game engines introduce
new numeric types and other complex typed APIs. The built-in defaulting
mechanism isn't powerful enough to resolve ambiguous types in these cases forcing
users to specify minutia that they might not even know how to do. There is
an example defaulting plugin linked in the documentation. Applications include
defaulting the device a computation executes on, if a gradient should be
computed for a tensor, or the size of a tensor.

See https://github.com/ghc-proposals/ghc-proposals/pull/396 for details.
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/31983ab4c65204ad0fd14aac4c00648f5fa6ad6b" style="color: #1068bf;">31983ab4</a></strong>
<div>
<span>by sheaf</span>
<i>at 2021-10-09T04:46:05-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>Reject GADT pattern matches in arrow notation

  Tickets #20469 and #20470 showed that the current
  implementation of arrows is not at all up to the task
  of supporting GADTs: GHC produces ill-scoped Core programs
  because it doesn't propagate the evidence introduced by a GADT
  pattern match.

  For the time being, we reject GADT pattern matches in arrow notation.
  Hopefully we are able to add proper support for GADTs in arrows
  in the future.
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/a356bd5673301e0d17088d278100cca94db8664f" style="color: #1068bf;">a356bd56</a></strong>
<div>
<span>by Matthew Pickering</span>
<i>at 2021-10-10T15:07:52+02:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>driver: Fix assertion failure on self-import

Fixes #20459
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/245ab1662edd91a82c17de110c79450fec3f7b82" style="color: #1068bf;">245ab166</a></strong>
<div>
<span>by Ben Gamari</span>
<i>at 2021-10-10T17:55:10-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>hadrian: Include Cabal flags in verbose configure output
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/9f9d62807c620b65865705bacf773cc8f0bd02d9" style="color: #1068bf;">9f9d6280</a></strong>
<div>
<span>by Zejun Wu</span>
<i>at 2021-10-12T01:39:53-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>Derive Eq instance for the HieTypeFix type

We have `instance Eq a => Eq (HieType a)` already. This instance can be
handy when we want to impement a function to find all
`fromIntegral :: a -> a` using
`case ty of { Roll (HFunTy _ a b) -> a == b; _ -> False }`.
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/8d6de5416406be7b1c90f8e0c9a80f5bea1befff" style="color: #1068bf;">8d6de541</a></strong>
<div>
<span>by Ben Gamari</span>
<i>at 2021-10-12T01:40:29-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>nonmoving: Fix and factor out mark_trec_chunk

We need to ensure that the TRecChunk itself is marked, in addition to
the TRecs it contains.
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/aa520ba158d9f73a3e59af4fbce3b9d294254965" style="color: #1068bf;">aa520ba1</a></strong>
<div>
<span>by Ben Gamari</span>
<i>at 2021-10-12T01:40:29-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>rts/nonmoving: Rename mark_* to trace_*

These functions really do no marking; they merely trace pointers.
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/2c02ea8dc33fe008675b1c0629c0ffb0e8ca4482" style="color: #1068bf;">2c02ea8d</a></strong>
<div>
<span>by Ben Gamari</span>
<i>at 2021-10-12T01:40:29-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>rts/primops: Fix write barrier in stg_atomicModifyMutVarzuzh

Previously the call to dirty_MUT_VAR in stg_atomicModifyMutVarzuzh was
missing its final argument.

Fixes #20414.
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/2e0c13ab50b28d3e2ad5bfeed2b6651096921c9d" style="color: #1068bf;">2e0c13ab</a></strong>
<div>
<span>by Ben Gamari</span>
<i>at 2021-10-12T01:40:29-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>rts/nonmoving: Enable selector optimisation by default
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/2c06720e45efaf4d3a8e957f3ea7613d1ea311a8" style="color: #1068bf;">2c06720e</a></strong>
<div>
<span>by GHC GitLab CI</span>
<i>at 2021-10-12T01:41:04-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>rts/Linker: Fix __dso_handle handling

Previously the linker's handling of __dso_handle was quite wrong. Not
only did we claim that __dso_handle could be NULL when statically
linking (which it can not), we didn't even implement this mislead theory
faithfully and instead resolved the symbol to a random pointer. This
lead to the failing relocations on AArch64 noted in #20493.

Here we try to implement __dso_handle as a dynamic linker would do,
choosing an address within the loaded object (specifically its start
address) to serve as the object's handle.
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/58223dfacc709b6c2130b8fad466f0939d9a1043" style="color: #1068bf;">58223dfa</a></strong>
<div>
<span>by Carrie Xu</span>
<i>at 2021-10-12T01:41:41-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>Add Hint to "Empty 'do' block" Error Message#20147
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/8e88ef36f4915930fd33b993f81d2a4c1e7b2b2d" style="color: #1068bf;">8e88ef36</a></strong>
<div>
<span>by Carrie Xu</span>
<i>at 2021-10-12T01:41:41-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>Change affected tests stderr
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/44384696bb96d30106820aeee3f7da63ed8552d9" style="color: #1068bf;">44384696</a></strong>
<div>
<span>by Zubin Duggal</span>
<i>at 2021-10-12T01:42:15-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>driver: Share the graph of dependencies

We want to share the graph instead of recomputing it for each key.
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/e40feab039bcf687cdaefa7a3f7c862d10b9b517" style="color: #1068bf;">e40feab0</a></strong>
<div>
<span>by Matthew Pickering</span>
<i>at 2021-10-12T01:42:50-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>Make ms_ghc_prim_import field strict

If you don't promptly force this field then it ends up retaining a lot
of data structures related to parsing.

For example, the following retaining chain can be observed when using
GHCi.

```
PState 0x4289365ca0 0x4289385d68 0x4289385db0 0x7f81b37a7838 0x7f81b3832fd8 0x4289365cc8 0x4289365cd8 0x4289365cf0 0x4289365cd8 0x4289365d08 0x4289385e48 0x7f81b4e4c290 0x7f818f63f440 0x7f818f63f440 0x7f81925ccd18 0x7f81b4e41230 0x7f818f63f440 0x7f81925ccd18 0x7f818f63f4a8 0x7f81b3832fd8 0x7f81b3832fd8 0x4289365d20 0x7f81b38233b8 0 19 <PState:GHC.Parser.Lexer:_build-ipe/stage1/compiler/build/GHC/Parser/Lexer.hs:3779:46>
_thunk(  ) 0x4289384230 0x4289384160 <([LEpaComment], [LEpaComment]):GHC.Parser.Lexer:>
_thunk(  ) 0x4289383250 <EpAnnComments:GHC.Parser.Lexer:compiler/GHC/Parser/Lexer.x:2306:19-40>
_thunk(  ) 0x4289399850 0x7f818f63f440 0x4289399868 <SrcSpanAnnA:GHC.Parser:_build-ipe/stage1/compiler/build/GHC/Parser.hs:12527:13-30>
L 0x4289397600 0x42893975a8 <GenLocated:GHC.Parser:_build-ipe/stage1/compiler/build/GHC/Parser.hs:12527:32>
0x4289c4e8c8 : 0x4289c4e8b0 <[]:GHC.Parser.Header:compiler/GHC/Parser/Header.hs:104:36-54>
(0x4289c4da70,0x7f818f63f440) <(,):GHC.Parser.Header:compiler/GHC/Parser/Header.hs:104:36-54>
_thunk(  ) 0x4289c4d030 <Bool:GHC.Parser.Header:compiler/GHC/Parser/Header.hs:(112,22)-(115,27)>
ExtendedModSummary 0x422e9c8998 0x7f81b617be78 0x422e9c89b0 0x4289c4c0c0 0x7f81925ccd18 0x7f81925ccd18 0x7f81925ccd18 0x7f81925ccd18 0x7f818f63f440 0x4289c4c0d8 0x4289c4c0f0 0x7f81925ccd18 0x422e9c8a20 0x4289c4c108 0x4289c4c730 0x7f818f63f440 <ExtendedModSummary:GHC.Driver.Make:compiler/GHC/Driver/Make.hs:2041:30-38>
ModuleNode 0x4289c4b850 <ModuleGraphNode:GHC.Unit.Module.Graph:compiler/GHC/Unit/Module/Graph.hs:139:14-36>
0x4289c4b590 : 0x4289c4b578 <[]:GHC.Unit.Module.Graph:compiler/GHC/Unit/Module/Graph.hs:139:31-36>
ModuleGraph 0x4289c4b2f8 0x4289c4b310 0x4289c4b340 0x7f818f63f4a0 <ModuleGraph:GHC.Driver.Make:compiler/GHC/Driver/Make.hs:(242,19)-(244,40)>
HscEnv 0x4289d9a4a8 0x4289d9aad0 0x4289d9aae8 0x4217062a88 0x4217060b38 0x4217060b58 0x4217060b68 0x7f81b38a7ce0 0x4217060b78 0x7f818f63f440 0x7f818f63f440 0x4217062af8 0x4289d9ab10 0x7f81b3907b60 0x4217060c00 114 <HscEnv:GHC.Runtime.Eval:compiler/GHC/Runtime/Eval.hs:790:31-44>
```
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/5c266b593f0b065bb1d8389b5a404e24d06dd035" style="color: #1068bf;">5c266b59</a></strong>
<div>
<span>by Ben Gamari</span>
<i>at 2021-10-12T19:16:40-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>hadrian: Introduce `static` flavour
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/683011c7be9861d316a14ffb458341b8db68df34" style="color: #1068bf;">683011c7</a></strong>
<div>
<span>by Ben Gamari</span>
<i>at 2021-10-12T19:16:40-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>gitlab-ci: Introduce static Alpine job
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/9257abebdf4904407f607814c4cfa27002d404e8" style="color: #1068bf;">9257abeb</a></strong>
<div>
<span>by Ben Gamari</span>
<i>at 2021-10-12T19:16:40-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>testsuite: Drop :set from ghci scripts

The ghci scripts for T9293 and ghci057 used `:set` to print the
currently-set options. However, in neither case was this necessary to
the correctness of the test and moreover it would introduce spurious
platform-dependence (e.g. since `-fexternal-dynamic-refs` is set by
default only on platforms that support dynamic linking).
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/82a89df72fbf5da437f52a1375bf1d6ded1c61c5" style="color: #1068bf;">82a89df7</a></strong>
<div>
<span>by Ben Gamari</span>
<i>at 2021-10-12T19:16:40-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>rts/linker: Define _DYNAMIC when necessary

Usually the dynamic linker would define _DYNAMIC. However, when dynamic
linking is not supported (e.g. on musl) it is safe to define it to be
NULL.
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/fcd970b56853350c2de330decb5c2658fcf6e7f8" style="color: #1068bf;">fcd970b5</a></strong>
<div>
<span>by GHC GitLab CI</span>
<i>at 2021-10-12T19:16:40-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>rts/linker: Resolve __fini_array_* symbols to NULL

If the __fini_array_{start,end} symbols are not defined (e.g. as is
often the case when linking against musl) then resolve them to NULL.
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/852ec4f50fe16d0f47b19603035a34d4520de515" style="color: #1068bf;">852ec4f5</a></strong>
<div>
<span>by Ben Gamari</span>
<i>at 2021-10-12T19:16:40-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>testsuite: Mark T13702 as requiring share libraries

It fails on statically-built Alpine with
```
T13702.hs:1:1: error:
    Could not find module ‘Prelude’
    Perhaps you haven't installed the "dyn" libraries for package ‘base-4.15.0.0’?
    Use -v (or `:set -v` in ghci) to see a list of the files searched for.
  |
1 | {-# LANGUAGE ForeignFunctionInterface #-}
  | ^
```
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/b604bfd90b27c834e605c95ccff4ae76c1c987a6" style="color: #1068bf;">b604bfd9</a></strong>
<div>
<span>by Ben Gamari</span>
<i>at 2021-10-12T19:16:40-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>testsuite: Mark ghcilink00[25] as requiring dynamic linking
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/d709a133e239e3053f0432f1a8003877bfb84ec5" style="color: #1068bf;">d709a133</a></strong>
<div>
<span>by Ben Gamari</span>
<i>at 2021-10-12T19:16:40-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>testsuite: Mark all ghci/linking/dyn tests as requiring dynamic linking
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/99b8177a23983af7736f67b9d909dc504c4c04dd" style="color: #1068bf;">99b8177a</a></strong>
<div>
<span>by Ben Gamari</span>
<i>at 2021-10-12T19:16:40-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>testsuite: Mark T14931 as requiring dynamic linking
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/2687f65eeaac7e77bccc166231b6422bfa4b46f0" style="color: #1068bf;">2687f65e</a></strong>
<div>
<span>by Ben Gamari</span>
<i>at 2021-10-12T19:16:40-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>testsuite: Compile safeInfered tests with -v0

This eliminates some spurious platform-dependence due to static linking
(namely in UnsafeInfered02 due to dynamic-too).
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/587d7e662b44cc58ed6d8a03178abf6d3ce6100c" style="color: #1068bf;">587d7e66</a></strong>
<div>
<span>by Brian Jaress</span>
<i>at 2021-10-12T19:16:40-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>documentation: flavours.md static details
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/91cfe1213a09c2c24ebbc8d90dcfb16f95e569ca" style="color: #1068bf;">91cfe121</a></strong>
<div>
<span>by Ben Gamari</span>
<i>at 2021-10-12T19:16:40-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>testsuite: Make recomp021 less environment-sensitive

Suppress output from diff to eliminate unnecessary
environmental-dependence.
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/dc0945975e7bc446fe3d748535154bfff8158198" style="color: #1068bf;">dc094597</a></strong>
<div>
<span>by Ben Gamari</span>
<i>at 2021-10-12T19:16:40-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>testsuite: Make T12600 more robust

Previously we would depend upon `grep ... | head -n1`. In principle this
should work, but on Alpine Linux `grep` complains when its stdout stream
has been closed.
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/cdd45a61ecfc34d3610dff4b654f1bca5dcb6829" style="color: #1068bf;">cdd45a61</a></strong>
<div>
<span>by Ben Gamari</span>
<i>at 2021-10-12T19:16:40-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>gitlab-ci: Mark more broken tests on Alpine
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/9ebda74ec5331911881d734b21fbb31c00a0a22f" style="color: #1068bf;">9ebda74e</a></strong>
<div>
<span>by Ben Gamari</span>
<i>at 2021-10-12T19:16:40-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>rts/RtsSymbols: Add environ
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/08aa7a1d2bb046398a2fc4c236b4267aa83244be" style="color: #1068bf;">08aa7a1d</a></strong>
<div>
<span>by Ben Gamari</span>
<i>at 2021-10-12T19:16:40-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>rts/linker: Introduce a notion of strong symbols
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/005b1848eb4d1c5c5d2c175be0530a7b718bf7bf" style="color: #1068bf;">005b1848</a></strong>
<div>
<span>by Ben Gamari</span>
<i>at 2021-10-12T19:16:40-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>rts/RtsSymbols: Declare atexit as a strong symbol
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/5987357b2498db6b8014d96a6a2ef987b4158983" style="color: #1068bf;">5987357b</a></strong>
<div>
<span>by Ben Gamari</span>
<i>at 2021-10-12T19:16:40-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>rts/RtsSymbols: fini array
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/9074b7484a0e438a2c1fbb900ab213ae17c04641" style="color: #1068bf;">9074b748</a></strong>
<div>
<span>by Ben Gamari</span>
<i>at 2021-10-12T19:16:40-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>testsuite: Move big-obj test from ghci/linking/dyn to ghci/linking

There was nothing dynamic about this test.
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/3b1c12d353eef24b29601798874eb875978452cd" style="color: #1068bf;">3b1c12d3</a></strong>
<div>
<span>by Ben Gamari</span>
<i>at 2021-10-12T19:16:40-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>testsuite: Fix overzealous command-line mangling

Previously this attempt at suppressing make's -s flag would mangle
otherwise valid arguments.
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/05303f686fae8f1050c1cfb08225e39a5f13a7a1" style="color: #1068bf;">05303f68</a></strong>
<div>
<span>by Ben Gamari</span>
<i>at 2021-10-12T19:16:40-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>testsuite: Clean up dynlib support predicates

Previously it was unclear whether req_shared_libs should require:

 * that the platform supports dynamic library loading,
 * that GHC supports dynamic linking of Haskell code, or
 * that the dyn way libraries were built

Clarify by splitting the predicate into two:

 * `req_dynamic_lib_support` demands that the platform support dynamic
   linking
 * `req_dynamic_hs` demands that the GHC support dynamic linking of
   Haskell code on the target platform

Naturally `req_dynamic_hs` cannot be true unless
`req_dynamic_lib_support` is also true.
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/9859eede20bf5a8a11c1fe34a6fd8d125f9c35f6" style="color: #1068bf;">9859eede</a></strong>
<div>
<span>by Ben Gamari</span>
<i>at 2021-10-12T19:16:40-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>gitlab-ci: Bump docker images

Bumps bootstrap compiler to GHC 9.0.1.
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/af5ed1563a27ff1a4fabd8e20d1dcfbb5651bf5e" style="color: #1068bf;">af5ed156</a></strong>
<div>
<span>by Matthew Pickering</span>
<i>at 2021-10-12T19:17:15-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>Make the OccName field of NotOrphan strict

In GHCi, by default the ModIface is not written to disk, this can
leave a thunk which retains a TyCon which ends up retaining a great deal
more on the heap.

For example, here is the retainer trace from ghc-debug.

```
...
many other closures
...
<TyCon:GHC.Core.TyCon:compiler/GHC/Core/TyCon.hs:1755:34-97>
Just 0x423162aaa8 <Maybe:GHC.Core.TyCon:compiler/GHC/Core/TyCon.hs:(1936,11)-(1949,13)>
FamilyTyCon 0x4231628318 0x4210e06260 0x4231628328 0x4231628340 0x421730a398 0x4231628358 0x4231628380 0x4231628390 0x7f0f5a171d18 0x7f0f7b1d7850 0x42316283a8 0x7f0f7b1d7830 <TyCon:GHC.Core.TyCon:compiler/GHC/Cor
e/TyCon.hs:1948:30-32>
_thunk(  ) 0x4231624000 <OccName:GHC.Iface.Make:compiler/GHC/Iface/Make.hs:724:22-43>
NotOrphan 0x42357d8ed8 <IsOrphan:GHC.Iface.Make:compiler/GHC/Iface/Make.hs:724:12-43>
IfaceFamInst 0x4210e06260 0x42359aed10 0x4210e0c6b8 0x42359aed28 <IfaceFamInst:GHC.Iface.Make:>
```

Making the field strict squashes this retainer leak when using GHCi.
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/0c5d9ca8aa1e5574667e7da704a1ea24eb02cece" style="color: #1068bf;">0c5d9ca8</a></strong>
<div>
<span>by Matthew Pickering</span>
<i>at 2021-10-12T19:17:15-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>Be more careful about retaining KnotVars

It is quite easy to end up accidently retaining a KnotVars, which
contains pointers to a stale TypeEnv because they are placed in the
HscEnv.

One place in particular we have to be careful is when loading a module
into the EPS in `--make` mode, we have to remove the reference to
KnotVars as otherwise the interface loading thunks will forever retain
reference to the KnotVars which are live at the time the interface was
loaded.

These changes do not go as far as to enforce the invariant described in
Note [KnotVar invariants]

* At the end of upsweep, there should be no live KnotVars

but at least improve the situation.

This is left for future work (#20491)
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/105e2711a0e382863cccee6dbc3ccb0ee79b0ce6" style="color: #1068bf;">105e2711</a></strong>
<div>
<span>by Matthew Pickering</span>
<i>at 2021-10-12T19:17:15-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>driver: Pass hsc_env with empty HPT into upsweep

Otherwise you end up retaining the whole old HPT when reloading in GHCi.
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/7215f6dec0bb4db6fe1dc2ef0a126ea37a0d884b" style="color: #1068bf;">7215f6de</a></strong>
<div>
<span>by Matthew Pickering</span>
<i>at 2021-10-12T19:17:15-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>Make fields of Linkable strict

The Module field can end up retaining part of a large structure and is
always calculated by projection.
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/053d9deb3c107db0d292a6a8dc4ba8cf2d432743" style="color: #1068bf;">053d9deb</a></strong>
<div>
<span>by Matthew Pickering</span>
<i>at 2021-10-12T19:17:15-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>Make the fields of MakeEnv strict

There's no reason for them to be lazy, and in particular we would like
to make sure the old_hpt field is evaluated.
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/0d7117916541d6bb0041200e128ce4088086a973" style="color: #1068bf;">0d711791</a></strong>
<div>
<span>by Matthew Pickering</span>
<i>at 2021-10-12T19:17:15-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>More strictness around HomePackageTable

This patch makes some operations to do with HomePackageTable stricter

* Adding a new entry into the HPT would not allow the old HomeModInfo to be
  collected because the function used by insertWith wouldn't be forced.
* We're careful to force the new MVar value before it's inserted into
  the global MVar as otherwise we retain references to old entries.
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/ff0409d0847a24bdbd76c358960c86263b219179" style="color: #1068bf;">ff0409d0</a></strong>
<div>
<span>by Matthew Pickering</span>
<i>at 2021-10-12T19:17:15-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>driver: Filter out HPT modules **before** typecheck loop

It's better to remove the modules first before performing the
typecheckLoop as otherwise you can end up with thunks which reference
stale HomeModInfo which are difficult to force due to the knot-tie.
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/c2ce1b178575abc0cc37a6c232502644c9d863ac" style="color: #1068bf;">c2ce1b17</a></strong>
<div>
<span>by Matthew Pickering</span>
<i>at 2021-10-12T19:17:15-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>Add GHCi recompilation performance test
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/82938981a7916c2747ee3b97624c55f7c5467c84" style="color: #1068bf;">82938981</a></strong>
<div>
<span>by Matthew Pickering</span>
<i>at 2021-10-12T19:17:15-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>Force name_exe field to avoid retaining entire UnitEnv (including whole HPT)

Not forcing  this one place will result in GHCi using 2x memory on a
reload.
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/90f06a0e015e18c066fe1569fb2add318bec72ca" style="color: #1068bf;">90f06a0e</a></strong>
<div>
<span>by Haochen Tong</span>
<i>at 2021-10-12T19:17:53-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>Check for libatomic dependency for atomic operations

Some platforms (e.g. RISC-V) require linking against libatomic for some
(e.g. sub-word-sized) atomic operations.

Fixes #19119.
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/234bf3688b14299ad8cebc20206c1a5df34139d4" style="color: #1068bf;">234bf368</a></strong>
<div>
<span>by Haochen Tong</span>
<i>at 2021-10-12T19:17:53-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>Move libatomic check into m4/fp_gcc_supports_atomics.m4
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/4cf43b2a1d569a786e549962e867eb506f4fc76a" style="color: #1068bf;">4cf43b2a</a></strong>
<div>
<span>by Haochen Tong</span>
<i>at 2021-10-12T19:17:53-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>Rename fp_gcc_supports__atomics to fp_cc_supports__atomics
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/0aae1b4e7bc7398ea1ef6ed3084dfabf9cf80ce3" style="color: #1068bf;">0aae1b4e</a></strong>
<div>
<span>by Joachim Breitner</span>
<i>at 2021-10-13T01:07:45+00:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>shadowNames: Accept an OccName, not a GreName

previously, the `shadowNames` function would take `[GreName]`. This has
confused me for two reasons:

* Why `GreName` and not `Name`? Does the difference between a normal
  name and a field name matter? The code of `shadowNames` shows that it
  does not, but really its better if the type signatures says so.

* Why `Name` and not `OccName`? The point of `shadowNames` is to shadow
  _unqualified names_, at least in the two use cases I am aware of
  (names defined on the GHCI prompt or in TH splices).

  The code of `shadowNames` used to have cases that peek at the module
  of the given name and do something if that module appears in the
  `GlobalRdrElt`, but I think these cases are dead code, I don’t see
  how they could occur in the above use cases. Also, I replaced them
  with `errors` and GHC would still validate. Hence removing this code
  (yay!)

This change also allows `shadowNames` to accept an `OccSet` instead,
which allows for a faster implemenation; I’ll try that separately. This
in stead might help with !6703.
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/19cd403bced51bc27a11f0257c25497154e86889" style="color: #1068bf;">19cd403b</a></strong>
<div>
<span>by Norman Ramsey</span>
<i>at 2021-10-13T03:32:21-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>Define and export Outputable instance for StgOp
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/58bd0cc1e6dc95328879fc53e9c58b7079d4c292" style="color: #1068bf;">58bd0cc1</a></strong>
<div>
<span>by Zubin Duggal</span>
<i>at 2021-10-13T13:50:10+05:30</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>ci: build validate-x86_64-linux-deb9-debug with hyperlinked source (#20067)
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/4536e8ca27e2173af9bc72e2e5992be140ecb2d2" style="color: #1068bf;">4536e8ca</a></strong>
<div>
<span>by Zubin Duggal</span>
<i>at 2021-10-13T13:51:00+05:30</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>hadrian, testsuite: Teach Hadrian to query the testsuite driver for dependencies

Issues #19072, #17728, #20176
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/60d3e33df4e6842ad5cd5a1f774d8704e41b758b" style="color: #1068bf;">60d3e33d</a></strong>
<div>
<span>by Zubin Duggal</span>
<i>at 2021-10-13T13:51:03+05:30</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>hadrian: Fix location for haddocks in installed pkgconfs
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/337a31db4a6985e70ea1d852f4eb7e5d3f929c9b" style="color: #1068bf;">337a31db</a></strong>
<div>
<span>by Zubin Duggal</span>
<i>at 2021-10-13T13:51:03+05:30</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>testsuite: Run haddock tests on out of tree compiler
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/8c224b6d43e220930ef0a60e50636e4910d15229" style="color: #1068bf;">8c224b6d</a></strong>
<div>
<span>by Zubin Duggal</span>
<i>at 2021-10-13T13:51:03+05:30</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>ci: test in-tree compiler in hadrian
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/8d5a5ecf620bf440a5cb853687c2d0e7ed5f488f" style="color: #1068bf;">8d5a5ecf</a></strong>
<div>
<span>by Zubin Duggal</span>
<i>at 2021-10-13T13:51:03+05:30</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>hadrian: avoid building check-{exact,ppr} and count-deps when the tests don't need them

hadrian: build optional dependencies with test compiler
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/d0e87d0c90c028f1d506cd358d254ab1c4947b7f" style="color: #1068bf;">d0e87d0c</a></strong>
<div>
<span>by Zubin Duggal</span>
<i>at 2021-10-13T13:51:03+05:30</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>testsuite: remove 'req_smp' from testwsdeque
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/3c0e60b8079edb1fddc5376d5b39eabc5218a293" style="color: #1068bf;">3c0e60b8</a></strong>
<div>
<span>by Zubin Duggal</span>
<i>at 2021-10-13T13:51:03+05:30</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>testsuite: strip windows line endings for haddock

haddock: deterministic SCC

Updates haddock submodule

Metric Increase:
  haddock.Cabal
  haddock.base
  haddock.compiler
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/64460b20bce7d0979215bdde33f2f7d1248b5003" style="color: #1068bf;">64460b20</a></strong>
<div>
<span>by Ben Gamari</span>
<i>at 2021-10-13T18:44:12-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>distrib/configure: Add AC_CONFIG_MACRO_DIRS

Sadly, autoconf cannot warn when it encounters an undefined macro and
therefore this bug went unnoticed for altogether far too long.
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/e46edfcf47d674731935b2ea1443cc7927e071fb" style="color: #1068bf;">e46edfcf</a></strong>
<div>
<span>by sheaf</span>
<i>at 2021-10-13T18:44:49-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>Set logger flags in --backpack mode

  Backpack used to initialise the logger before obtaining the
  DynFlags. This meant that logging options (such as dump flags)
  were not set.
  Initialising the logger after the session flags have been set
  fixes the issue.

  fixes #20396
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/df016e4e74dbc9c0181b9fb28c29cec08a743ade" style="color: #1068bf;">df016e4e</a></strong>
<div>
<span>by Matthew Pickering</span>
<i>at 2021-10-14T08:41:17-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>Make sure paths are quoted in install Makefile

Previously it would fail with this error:

```
if [ -L wrappers/ghc ]; then echo "ghc is a symlink"; fi
ghc is a symlink
cp: target 'dir/bin/ghc' is not a directory
make: *** [Makefile:197: install_wrappers] Error 1
```

which is because the install path contains a space.

Fixes #20506
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/7f2ce0d6bc1404d6d91b3d8560efddc208f46a24" style="color: #1068bf;">7f2ce0d6</a></strong>
<div>
<span>by Joachim Breitner</span>
<i>at 2021-10-14T08:41:52-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>Move BreakInfo into own module

while working on GHCi stuff, e.g. `GHC.Runtime.Eval.Types`, I observed a
fair amount of modules being recompiled that I didn’t expect to depend
on this, from byte code interpreters to linkers. Turns out that the
rather simple `BreakInfo` type is all these modules need from the
`GHC.Runtime.Eval.*` hierarchy, so by moving that into its own file we
make the dependency tree wider and shallower, which is probably worth
it.
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/557d26fabacbbf4e47480feae385f20761e1096f" style="color: #1068bf;">557d26fa</a></strong>
<div>
<span>by Ziyang Liu</span>
<i>at 2021-10-14T14:32:57-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>Suggest -dynamic-too in failNonStd when applicable

I encountered an error that says

```
Cannot load -dynamic objects when GHC is built the normal way
To fix this, either:
  (1) Use -fexternal-interpreter, or
  (2) Build the program twice: once the normal way, and then
      with -dynamic using -osuf to set a different object file suffix.
```

Or it could say

```
(2) Use -dynamic-too
```
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/f450e9481eafa3a00c648c81154a9a8be2da7650" style="color: #1068bf;">f450e948</a></strong>
<div>
<span>by Joachim Breitner</span>
<i>at 2021-10-14T14:33:32-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>fuzzyLookup: More deterministic order

else the output may depend on the input order, which seems it may depend
on the concrete Uniques, which is causing headaches when including test
cases about that.
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/8b7f5424c67b5ec005e061db87d30e124cf7234d" style="color: #1068bf;">8b7f5424</a></strong>
<div>
<span>by Alan Zimmerman</span>
<i>at 2021-10-14T14:34:07-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>EPA: Preserve semicolon order in annotations

Ensure the AddSemiAnn items appear in increasing order, so that if
they are converted to delta format they are still in the correct
order.

Prior to this the exact printer sorted by Span, which is meaningless
for EpaDelta locations.
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/481e6b546cdbcb646086cd66f22f588c47e66151" style="color: #1068bf;">481e6b54</a></strong>
<div>
<span>by Matthew Pickering</span>
<i>at 2021-10-14T14:34:42-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>Some extra strictness in annotation fields

Locations can be quite long-lived so it's important that things which
live in locations, such as annotations are forced promptly. Otherwise
they end up retaining the entire PState, as evidenced by this retainer
trace:

```
PState 0x4277ce6cd8 0x4277ce6d00 0x7f61f12d37d8 0x7f61f12d37d8 0x7f61f135ef78 0x4277ce6d48 0x4277ce6d58 0x4277ce6d70 0x4277ce6d58 0x4277ce6d88 0x4277ce6da0 0x7f61f29782f0 0x7f61cd16b440 0x7f61cd16b440 0x7f61d00f8d18 0x7f61f296d290 0x7f61cd16b440 0x7f61d00f8d18 0x7f61cd16b4a8 0x7f61f135ef78 0x4277ce6db8 0x4277ce6dd0 0x7f61f134f358 0 3 <PState:GHC.Parser.Lexer:_build-ipe/stage1/compiler/build/GHC/Parser/Lexer.hs:3779:46>
_thunk(  ) 0x4277ce6280 0x4277ce68a0 <([LEpaComment], [LEpaComment]):GHC.Parser.Lexer:>
_thunk(  ) 0x4277ce6568 <EpAnnComments:GHC.Parser.Lexer:compiler/GHC/Parser/Lexer.x:2306:19-40>
_thunk(  ) 0x4277ce62b0 0x4277ce62c0 0x4277ce6280 0x7f61f287fc58 <EpAnn AnnList:GHC.Parser:_build-ipe/stage1/compiler/build/GHC/Parser.hs:12664:13-32>
SrcSpanAnn 0x4277ce6060 0x4277ce6048 <SrcSpanAnn':GHC.Parser:_build-ipe/stage1/compiler/build/GHC/Parser.hs:12664:3-35>
L 0x4277ce4e70 0x428f8c9158 <GenLocated:GHC.Data.BooleanFormula:compiler/GHC/Data/BooleanFormula.hs:40:23-29>
0x428f8c8318 : 0x428f8c8300 <[]:GHC.Base:libraries/base/GHC/Base.hs:1316:16-29>
Or 0x428f8c7890 <BooleanFormula:GHC.Data.BooleanFormula:compiler/GHC/Data/BooleanFormula.hs:40:23-29>
IfConcreteClass 0x7f61cd16b440 0x7f61cd16b440 0x428f8c7018 0x428f8c7030 <IfaceClassBody:GHC.Iface.Make:compiler/GHC/Iface/Make.hs:(640,12)-(645,13)>
```

Making these few places strict is sufficient for now but there are
perhaps more places which will need strictifying in future.

-------------------------
Metric Increase:
    parsing001
-------------------------
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/7a8171bc9db792b19a2ee4dda9e019de5e24ebe0" style="color: #1068bf;">7a8171bc</a></strong>
<div>
<span>by Tom Sydney Kerckhove</span>
<i>at 2021-10-15T06:51:18+00:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>Insert warnings in the documentation of dangerous functions
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/1cda768c86e533c917a495c8de0468960cbe7a52" style="color: #1068bf;">1cda768c</a></strong>
<div>
<span>by Joachim Breitner</span>
<i>at 2021-10-15T18:15:36-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>GHC.Builtin.Uniques: Remove unused code

a number of functions exported by this module are (no longer) used, so
let’s remove them.

In particular, it no longer seems to be the case that type variables
have tag `'t'`, so removed the special handling when showing them.

* the use of `initTyVarUnique` was removed in 7babb1 (with the notable
  commit message of "Before merging to HEAD we need to tidy up and write
  a proper commit message.")
* `mkPseudoUniqueD`and `mkPseudoUniqueH` were added in 423d477, but never ever used?
* `mkCoVarUnique` was added in 674654, but never ever used?
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/88e913d443203376454b5242efa5fff0928992a8" style="color: #1068bf;">88e913d4</a></strong>
<div>
<span>by Oleg Grenrus</span>
<i>at 2021-10-15T18:16:14-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>Null eventlog writer
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/bbb1f6dab34243af0a2841164e33eec451396b3f" style="color: #1068bf;">bbb1f6da</a></strong>
<div>
<span>by Sylvain Henry</span>
<i>at 2021-10-15T18:16:51-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>Hadrian: display command line above errors (#20490)
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/b6954f0ca8b6a4408f202405e30fea6328a68d92" style="color: #1068bf;">b6954f0c</a></strong>
<div>
<span>by Joachim Breitner</span>
<i>at 2021-10-15T18:17:26-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>shadowNames: Use OccEnv a, not [OccName]

this allows us to use a smarter implementation based on
`Data.IntSet.differenceWith`, which should do less work. Also, it will
unblock improvements to !6703.

The `OccEnv a` really denotes a set of `OccName`s. We are not using
`OccSet`, though, because that is an `OccEnv OccName`, and we in !6703
we want to use this with differently-valued `OccEnv`s. But `OccSet`s are
readily and safely coerced into `OccEnv`s.

There is no other use of `delLocalRdrEnvList` remaining, so removing
that.
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/c9922a8e4d598f1c6a048305ca58d0ecf34d6776" style="color: #1068bf;">c9922a8e</a></strong>
<div>
<span>by Matthew Pickering</span>
<i>at 2021-10-15T18:18:00-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>hadrian: Document lint targets

Fixes #20508
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/65bf3992aebb3c08f0c4e13a3fb89dd5620015a9" style="color: #1068bf;">65bf3992</a></strong>
<div>
<span>by Matthew Pickering</span>
<i>at 2021-10-17T14:06:08-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>ghci: Explicitly store and restore interface file cache

In the old days the old HPT was used as an interface file cache when
using ghci. The HPT is a `ModuleEnv HomeModInfo` and so if you were
using hs-boot files then the interface file from compiling the .hs file
would be present in the cache but not the hi-boot file. This used to be
ok, because the .hi file used to just be a better version of the
.hi-boot file, with more information so it was fine to reuse it. Now the
source hash of a module is kept track of in the interface file and the
source hash for the .hs and .hs-boot file are correspondingly different
so it's no longer safe to reuse an interface file.

I took the decision to move the cache management of interface files to
GHCi itself, and provide an API where `load` can be provided with a list
of interface files which can be used as a cache. An alternative would be
to manage this cache somewhere in the HscEnv but it seemed that an API
user should be responsible for populating and suppling the cache rather
than having it managed implicitly.

Fixes #20217
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/81740ce83976e9d6b68594f8a4b489452cca56e5" style="color: #1068bf;">81740ce8</a></strong>
<div>
<span>by sheaf</span>
<i>at 2021-10-17T14:06:46-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>Introduce Concrete# for representation polymorphism checks

PHASE 1: we never rewrite Concrete# evidence.

This patch migrates all the representation polymorphism checks to
the typechecker, using a new constraint form

  Concrete# :: forall k. k -> TupleRep '[]

Whenever a type `ty` must be representation-polymorphic
(e.g. it is the type of an argument to a function), we emit a new
`Concrete# ty` Wanted constraint. If this constraint goes
unsolved, we report a representation-polymorphism error to the user.
The 'FRROrigin' datatype keeps track of the context of the
representation-polymorphism check, for more informative error messages.

This paves the way for further improvements, such as
allowing type families in RuntimeReps and improving the soundness
of typed Template Haskell. This is left as future work (PHASE 2).

fixes #17907 #20277 #20330 #20423 #20426

updates haddock submodule

-------------------------
Metric Decrease:
    T5642
-------------------------
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/19d1237e1db9eb49320cfc222b5efe7bfb8f89de" style="color: #1068bf;">19d1237e</a></strong>
<div>
<span>by Koz Ross</span>
<i>at 2021-10-19T03:29:40-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>Fix infelicities in docs for lines, unlines, words, unwords
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/3035d1a2f28fcd26e85f22fb17ca2c9f30f8920a" style="color: #1068bf;">3035d1a2</a></strong>
<div>
<span>by Matthew Pickering</span>
<i>at 2021-10-19T03:30:16-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>tests: Remove $(CABAL_MINIMAL_CONFIGURATION) from T16219

There is a latent issue in T16219 where -dynamic-too is enabled
when compiling a signature file which causes us to enter the DT_Failed
state because library-a-impl doesn't generate dyn_o files. Somehow this
used to work in 8.10 (that also entered the DT_Failed state)

We don't need dynamic object files when compiling a signature file but
the code loads interfaces, and if dynamic-too is enabled then it will
also try to load the dyn_hi file and check the two are consistent.
There is another hack to do with this in `GHC.Iface.Recomp`.

The fix for this test is to remove CABAL_MINIMAL_CONFIGURATION, which
stops cabal building shared libraries by default.

I'm of the opinion that the DT_Failed state indicates an error somewhere
so we should hard fail rather than this confusing (broken) rerun logic.

Whether this captures the original intent of #16219 is debateable, but
it's not clear how it was supposed to work in the first place if the
libraries didn't build dynamic object files. Module C imports module A,
which is from a library where shared objects are not built so the test
would never have worked anyway (if anything from A was used in a TH
splice).
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/d25868b6dc4e4bfaf6977ef4173b7f5494e68f13" style="color: #1068bf;">d25868b6</a></strong>
<div>
<span>by Matthew Pickering</span>
<i>at 2021-10-19T03:30:16-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>dynamic-too: Expand GHC.Iface.Recomp comment about the backpack hack
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/837ce6cf607317b4462c0d77a640eb1b35b3db5a" style="color: #1068bf;">837ce6cf</a></strong>
<div>
<span>by Matthew Pickering</span>
<i>at 2021-10-19T03:30:16-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>driver: Check the correct flag to see if dynamic-too is enabled.

We just need to check the flag here rather than read the variable which
indicates whether dynamic-too compilation has failed.
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/981f2c74c20cc0a07413846a8200ebec4401ac27" style="color: #1068bf;">981f2c74</a></strong>
<div>
<span>by Matthew Pickering</span>
<i>at 2021-10-19T03:30:16-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>driver: Update cached DynFlags in ModSummary if we are enabling -dynamic-too
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/1bc77a859110e46b13ad6bf10ad75ae463e75666" style="color: #1068bf;">1bc77a85</a></strong>
<div>
<span>by Matthew Pickering</span>
<i>at 2021-10-19T03:30:16-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>dynamic-too: Check the dynamic-too status in hscPipeline

This "fixes" DT_Failed in --make mode, but only "fixes" because I still
believe DT_Failed is pretty broken.
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/51281e81601fb0b288c921728ea3b3f568f77af7" style="color: #1068bf;">51281e81</a></strong>
<div>
<span>by Matthew Pickering</span>
<i>at 2021-10-19T03:30:16-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>Add test for implicit dynamic too

This test checks that we check for missing dynamic objects if
dynamic-too is enabled implicitly by the driver.
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/8144a92f5a73dd22c0d855d5b2bead930111511c" style="color: #1068bf;">8144a92f</a></strong>
<div>
<span>by Matthew Pickering</span>
<i>at 2021-10-19T03:30:16-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>WW: Use module name rather than filename for absent error messages

WwOpts in WorkWrap.Utils initialised the wo_output_file field with the
result of outputFile dflags. This is misguided because outputFile is
only set when -o is specified, which is barely ever (and never in --make
mode).

It seems this is
just used to add more context to an error message, a more appropriate
thing to use I think would be a module name.

Fixes #20438
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/df419c1abd7daa3aa0231747582333357b8e9b85" style="color: #1068bf;">df419c1a</a></strong>
<div>
<span>by Matthew Pickering</span>
<i>at 2021-10-19T03:30:16-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>driver: Cleanups related to ModLocation

ModLocation is the data type which tells you the locations of all the
build products which can affect recompilation. It is now computed in one
place and not modified through the pipeline. Important locations will
now just consult ModLocation rather than construct the dynamic object
path incorrectly.

* Add paths for dynamic object and dynamic interface files to
  ModLocation.
* Always use the paths from mod location when looking for where to find
  any interface or object file.
* Always use the paths in a ModLocation when deciding where to write an
  interface and object file.
* Remove `dynamicOutputFile` and `dynamicOutputHi` functions which
  *calculated* (incorrectly) the location of `dyn_o` and `dyn_hi` files.
* Don't set `outputFile_` and so-on in `enableCodeGenWhen`, `-o` and
  hence `outputFile_` should not affect the location of object files in
  `--make` mode. It is now sufficient to just update the ModLocation with
  the temporary paths.
* In `hscGenBackendPipeline` don't recompute the `ModLocation` to
  account for `-dynamic-too`, the paths are now accurate from the start
  of the run.
* Rename `getLocation` to `mkOneShotModLocation`, as that's the only
  place it's used. Increase the locality of the definition by moving it
  close to the use-site.
* Load the dynamic interface from ml_dyn_hi_file rather than attempting
  to reconstruct it in load_dynamic_too.
* Add a variety of tests to check how -o -dyno etc interact with each
  other.

Some other clean-ups

* DeIOify mkHomeModLocation and friends, they are all pure functions.
* Move FinderOpts into GHC.Driver.Config.Finder, next to initFinderOpts.
* Be more precise about whether we mean outputFile or outputFile_: there
  were many places where outputFile was used but the result shouldn't have
  been affected by `-dyno` (for example the filename of the resulting
  executable). In these places dynamicNow would never be set but it's
  still more precise to not allow for this possibility.
* Typo fixes suffices -> suffixes in the appropiate places.
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/3d6eb85efcebb5854de880d24f9c8011688fb933" style="color: #1068bf;">3d6eb85e</a></strong>
<div>
<span>by Matthew Pickering</span>
<i>at 2021-10-19T03:30:16-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>driver: Correct output of -fno-code and -dynamic-too

Before we would print

[1 of 3] Compiling T[boot]          ( T.hs-boot, nothing, T.dyn_o )

Which was clearly wrong for two reasons.

1. No dynamic object file was produced for T[boot]
2. The file would be called T.dyn_o-boot if it was produced.

Fixes #20300
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/753b921da52c0b7da21856c5fe0bf4604505c7b3" style="color: #1068bf;">753b921d</a></strong>
<div>
<span>by Matthew Pickering</span>
<i>at 2021-10-19T03:30:16-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>Remove DT_Failed state

At the moment if `-dynamic-too` fails then we rerun the whole pipeline
as if we were just in `-dynamic` mode. I argue this is a misfeature and
we should remove the so-called `DT_Failed` mode.

In what situations do we fall back to `DT_Failed`?

1. If the `dyn_hi` file corresponding to a `hi` file is missing completely.
2. If the interface hash of `dyn_hi` doesn't match the interface hash of `hi`.

What happens in `DT_Failed` mode?

* The whole compiler pipeline is rerun as if the user had just passed `-dynamic`.
* Therefore `dyn_hi/dyn_o` files are used which don't agree with the
  `hi/o` files. (As evidenced by `dynamicToo001` test).
* This is very confusing as now a single compiler invocation has
  produced further `hi`/`dyn_hi` files which are different to each
  other.

Why should we remove it?

* In `--make` mode, which is predominately used `DT_Failed` does not
  work (#19782), there can't be users relying on this functionality.
* In `-c` mode, the recovery doesn't fix the root issue, which is the
  `dyn_hi` and `hi` files are mismatched. We should instead produce an
  error and pass responsibility to the build system using `-c` to ensure
  that the prerequisites for `-dynamic-too` (dyn_hi/hi) files are there
  before we start compiling.
* It is a misfeature to support use cases like `dynamicToo001` which
  allow you to mix different versions of dynamic/non-dynamic interface
  files. It's more likely to lead to subtle bugs in your resulting
  programs where out-dated build products are used rather than a
  deliberate choice.
* In practice, people are usually compiling with `-dynamic-too` rather
  than separately with `-dynamic` and `-static`, so the build products
  always match and `DT_Failed` is only entered due to compiler bugs (see
  !6583)

What should we do instead?

* In `--make` mode, for home packages check during recompilation
  checking that `dyn_hi` and `hi` are both present and agree, recompile
  the modules if they do not.
* For package modules, when loading the interface check that `dyn_hi`
  and `hi` are there and that they agree but fail with an
  error message if they are not.
* In `--oneshot` mode, fail with an error message if the right files
  aren't already there.

Closes #19782 #20446 #9176 #13616
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/7271bf78a9ffd865e590f1ce3f3ae975f5dc1a49" style="color: #1068bf;">7271bf78</a></strong>
<div>
<span>by Joachim Breitner</span>
<i>at 2021-10-19T03:30:52-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>InteractiveContext: Smarter caching when rebuilding the ic_rn_gbl_env

The GlobalRdrEnv of a GHCI session changes in odd ways: New bindings are
not just added "to the end", but also "in the middle", namely when
changing the set of imports: These are treated as if they happened
before all bindings from the prompt, even those that happened earlier.

Previously, this meant that the `ic_rn_gbl_env` is recalculated from the
`ic_tythings`. But this wasteful if `ic_tythings` has many entries that
define the same unqualified name. By separately keeping track of a
`GlobalRdrEnv` of all the locally defined things we can speed this
operation up significantly.

This change improves `T14052Type` by 60% (It used to be 70%, but it
looks that !6723 already reaped some of the rewards).
But more importantly, it hopefully unblocks #20455, becaues with this
smarter caching, the change needed to fix that issue will no longer make
`T14052` explode. I hope.

It does regress `T14052` by 30%; caching isn’t free. Oh well.

Metric Decrease:
    T14052Type

Metric Increase:
    T14052
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/53c0e771afa97083ce2addf8d30c7526025869a5" style="color: #1068bf;">53c0e771</a></strong>
<div>
<span>by Matthew Pickering</span>
<i>at 2021-10-19T03:31:27-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>Add test for T20509

This test checks to see whether a signature can depend on another home
module. Whether it should or not is up for debate, see #20509 for
more details.
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/fdfb3b03baaa81a532a7e4554e13ccd4d342461e" style="color: #1068bf;">fdfb3b03</a></strong>
<div>
<span>by Matthew Pickering</span>
<i>at 2021-10-19T03:31:27-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>Make the fields of Target and TargetId strict

Targets are long-lived through GHC sessions so we don't want to end up
retaining

In particular in 'guessTarget', the call to `unitIdOrHomeUnit` was
retaining reference to an entire stale HscEnv, which in turn retained
reference to a stale HomePackageTable. Making the fields strict forces
that place promptly and helps ensure that mistakes like this don't
happen again.
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/877e6685e3d802f159b1d9db785bc663a37c31cb" style="color: #1068bf;">877e6685</a></strong>
<div>
<span>by Matthew Pickering</span>
<i>at 2021-10-19T03:31:27-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>Temporary fix for leak with -fno-code (#20509)

This hack inserted for backpack caused a very bad leak when using
-fno-code where EPS entries would end up retaining stale
HomePackageTables. For any interactive user, such as HLS, this is really
bad as once the entry makes it's way into the EPS then it's there for
the rest of the session.

This is a temporary fix which "solves" the issue by filtering the HPT to
only the part which is needed for the hack to work, but in future we
want to separate out hole modules from the HPT entirely to avoid needing
to do this kind of special casing.

-------------------------
Metric Decrease:
    MultiLayerModulesDefsGhci
-------------------------
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/cfacac68970c4bcc632a25b641c89d331cd1a9f3" style="color: #1068bf;">cfacac68</a></strong>
<div>
<span>by Matthew Pickering</span>
<i>at 2021-10-19T03:31:27-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>Add performance test for ghci, -fno-code and reloading (#20509)

This test triggers the bad code path identified by #20509 where an entry
into the EPS caused by importing Control.Applicative will retain a stale
HomePackageTable.
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/12d74ef77c1ded52b247cf21ff1012adf0408d70" style="color: #1068bf;">12d74ef7</a></strong>
<div>
<span>by Richard Eisenberg</span>
<i>at 2021-10-19T13:36:36-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>Care about specificity in pattern type args

Close #20443.
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/79c9c816ac1866881f90ea7e6d5c182b54780a97" style="color: #1068bf;">79c9c816</a></strong>
<div>
<span>by Zubin Duggal</span>
<i>at 2021-10-19T13:37:12-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>Don't print Shake Diagnostic messages (#20484)
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/f8ce38e62c19fb346f33b246efc205fb37999d14" style="color: #1068bf;">f8ce38e6</a></strong>
<div>
<span>by Emily Martins</span>
<i>at 2021-10-19T22:21:26-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>Fix #19884: add warning to tags command, drop T10989
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/d73131b9315abf39fc2d307b1c59bf8edd1e43ac" style="color: #1068bf;">d73131b9</a></strong>
<div>
<span>by Ben Gamari</span>
<i>at 2021-10-19T22:22:02-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>hadrian: Fix quoting in binary distribution installation Makefile

Previously we failed to quote various paths in Hadrian's installation
Makefile, resulting in #20506.
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/949d739893a94eb5bdd1c632543ab7eccca08277" style="color: #1068bf;">949d7398</a></strong>
<div>
<span>by Matthew Pickering</span>
<i>at 2021-10-20T14:05:23-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>Add note about heap invariants [skip ci]

At the moment the note just covers three important invariants but now
there is a place to add more to if we think of them.
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/2f75ffac1f8b255335987d25831bbc6f51406d85" style="color: #1068bf;">2f75ffac</a></strong>
<div>
<span>by Ben Gamari</span>
<i>at 2021-10-20T14:06:00-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>hadrian/doc: Add margin to staged-compilation figure
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/5f274fbfd4188dda2e7d74d374f2105db22c5610" style="color: #1068bf;">5f274fbf</a></strong>
<div>
<span>by Ben Gamari</span>
<i>at 2021-10-20T14:06:00-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>hadrian: Fix binary-dist support for cross-compilers

Previously the logic which called ghc-pkg failed to account for the fact
that the executable name may be prefixed with a triple. Moreover, the
call must occur before we delete the settings file as ghc-pkg needs the
latter.

Fixes #20267.
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/3e4b51ff65f32722c0f35e34731e7001bc06e547" style="color: #1068bf;">3e4b51ff</a></strong>
<div>
<span>by Matthew Pickering</span>
<i>at 2021-10-20T14:06:36-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>Fix perf-nofib CI job

The main change is to install the necessary build dependencies into an
environment file using `caball install --lib`.

Also updates the nofib submodule with a few fixes needed for the job to
work.
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/ef92d88928651fa21b3b23d054f8a97d7b6104cd" style="color: #1068bf;">ef92d889</a></strong>
<div>
<span>by Matthew Pickering</span>
<i>at 2021-10-20T14:07:12-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>Distribute HomeModInfo cache before starting upsweep

This change means the HomeModInfo cache isn't retained until the end of
upsweep and each cached interface can be collected immediately after its
module is compiled.

The result is lower peak memory usage when using GHCi.

For Agda it reduced peak memory usage from about 1600M to 1200M.
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/05b8a21884fb3b283acb7d148afc875a95f7752c" style="color: #1068bf;">05b8a218</a></strong>
<div>
<span>by Matthew Pickering</span>
<i>at 2021-10-20T14:07:49-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>Make fields of GlobalRdrElt strict

In order to do this I thought it was prudent to change the list type to
a bag type to avoid doing a lot of premature work in plusGRE because of
++.

Fixes #19201
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/0b575899eca29a89ff18d84e0daa63ec35358976" style="color: #1068bf;">0b575899</a></strong>
<div>
<span>by Sylvain Henry</span>
<i>at 2021-10-20T17:49:07-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>Bignum: constant folding for bigNatCompareWord# (#20361)
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/758e0d7bbe517b67fb20c3fb591e76b65b2959af" style="color: #1068bf;">758e0d7b</a></strong>
<div>
<span>by Sylvain Henry</span>
<i>at 2021-10-20T17:49:07-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>Bignum: allow Integer predicates to inline (#20361)

T17516 allocations increase by 48% because Integer's predicates are
inlined in some Ord instance methods. These methods become too big to be
inlined while they probably should: this is tracked in #20516.

Metric Increase:
    T17516
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/a901a1ae6709b8e241cb93a9013b41f48fe3ecca" style="color: #1068bf;">a901a1ae</a></strong>
<div>
<span>by Sylvain Henry</span>
<i>at 2021-10-20T17:49:07-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>Bignum: allow Integer's signum to inline (#20361)

Allow T12545 to increase because it only happens on CI with dwarf
enabled and probably not related to this patch.

Metric Increase:
    T12545
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/9ded1b17f97ba3bd01757a0764ed022f7ed99e9b" style="color: #1068bf;">9ded1b17</a></strong>
<div>
<span>by Matthew Pickering</span>
<i>at 2021-10-20T17:49:42-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>Make sure ModIface values are still forced even if not written

When we are not writing a ModIface to disk then the result can retain a
lot of stuff. For example, in the case I was debugging the DocDeclsMap
field was holding onto the entire HomePackageTable due to a single
unforced thunk. Therefore, now if we're not going to write the interface
then we still force deeply it in order to remove these thunks.

The fields in the data structure are not made strict because when we
read the field from the interface we don't want to load it immediately
as there are parts of an interface which are unused a lot of the time.

Also added a note to explain why not all the fields in a ModIface field
are strict.

The result of this is being able to load Agda in ghci and not leaking
information across subsequent reloads.
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/268857af24c57156c14a5ddf98f23417763ca9dd" style="color: #1068bf;">268857af</a></strong>
<div>
<span>by Matthew Pickering</span>
<i>at 2021-10-20T17:50:19-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>ci: Move hlint jobs from quick-built into full-build

This somewhat fixes the annoyance of not getting any "useful" feedback
from a CI pipeline if you have a hlint failure. Now the hlint job runs
in parallel with the other CI jobs so the feedback is recieved at the
same time as other testsuite results.

Fixes #20507
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/f6f245152bb90de811213b4f724c9bf2f52a602b" style="color: #1068bf;">f6f24515</a></strong>
<div>
<span>by Joachim Breitner</span>
<i>at 2021-10-20T17:50:54-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>instance Ord Name: Do not repeat default methods

it is confusing to see what looks like it could be clever code, only to
see that it does precisely the same thing as the default methods.
Cleaning this up, to spare future readers the confusion.
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/56b2b04f6ff1961689d0ca7b74308879e3230e11" style="color: #1068bf;">56b2b04f</a></strong>
<div>
<span>by Ziyang Liu</span>
<i>at 2021-10-22T10:57:28-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>Document that `InScopeSet` is a superset of currently in-scope variables
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/7f4e0e91530117fd4d477d553a7f03993b86fe74" style="color: #1068bf;">7f4e0e91</a></strong>
<div>
<span>by Moritz Angermann</span>
<i>at 2021-10-22T10:58:04-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>Do not sign extend CmmInt's unless negative.

Might fix #20526.</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/77c6f3e6be3b94c48ec6c9b7015dab69ae47564e" style="color: #1068bf;">77c6f3e6</a></strong>
<div>
<span>by sheaf</span>
<i>at 2021-10-22T10:58:44-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>Use tcEqType in GHC.Core.Unify.uVar

  Because uVar used eqType instead of tcEqType, it was possible
  to accumulate a substitution that unified Type and Constraint.

  For example, a call to `tc_unify_tys` with arguments

    tys1 = [ k, k ]
    tys2 = [ Type, Constraint ]

  would first add `k = Type` to the substitution. That's fine, but then
  the second call to `uVar` would claim that the substitution also
  unifies `k` with `Constraint`. This could then be used to cause
  trouble, as per #20521.

  Fixes #20521
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/fa5870d3ac0a64515d3e76af256e81b9dc8590bd" style="color: #1068bf;">fa5870d3</a></strong>
<div>
<span>by Sylvain Henry</span>
<i>at 2021-10-22T19:20:05-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>Add test for #19641

Now that Bignum predicates are inlined (!6696), we only need to add a
test.

Fix #19641
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/6fd7da745a518a93f6685171701a27283cfe2d4e" style="color: #1068bf;">6fd7da74</a></strong>
<div>
<span>by Sylvain Henry</span>
<i>at 2021-10-22T19:20:44-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>Remove Indefinite

We no longer need it after previous IndefUnitId refactoring.
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/806e49ae36a058dbe4494055a6b936dd153c6194" style="color: #1068bf;">806e49ae</a></strong>
<div>
<span>by Sylvain Henry</span>
<i>at 2021-10-22T19:20:44-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>Refactor package imports

Use an (Raw)PkgQual datatype instead of `Maybe FastString` to represent
package imports. Factorize the code that renames RawPkgQual into PkgQual
in function `rnPkgQual`. Renaming consists in checking if the FastString
is the magic "this" keyword, the home-unit unit-id or something else.

Bump haddock submodule
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/47ba842b1753b2870c720fb2297371731d444c35" style="color: #1068bf;">47ba842b</a></strong>
<div>
<span>by Haochen Tong</span>
<i>at 2021-10-22T19:21:21-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>Fix compilerConfig stages

Fix the call to compilerConfig because it accepts 1-indexed stage
numbers. Also fixes `make stage=3`.
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/621608c990d01dd35cb2c4fb8fc49089bef81d57" style="color: #1068bf;">621608c9</a></strong>
<div>
<span>by Matthew Pickering</span>
<i>at 2021-10-22T19:21:56-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>driver: Don't use the log queue abstraction when j = 1

This simplifies the code path for -j1 by not using the log queue queue
abstraction. The result is that trace output isn't interleaved with
other dump output like it can be with -j<N>.
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/dd2dba808aaa957c3d036b0025b412c499aace3d" style="color: #1068bf;">dd2dba80</a></strong>
<div>
<span>by Sebastian Graf</span>
<i>at 2021-10-22T19:22:31-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>WorkWrap: `isRecDataCon` should not eta-reduce NewTyCon field tys (#20539)

In #20539 we had a type
```hs
newtype Measured a = Measured { unmeasure :: () -> a }
```
and `isRecDataCon Measured` recursed into `go_arg_ty` for `(->) ()`, because
`unwrapNewTyConEtad_maybe` eta-reduced it. That triggered an assertion error a
bit later. Eta reducing the field type is completely wrong to do here! Just call
`unwrapNewTyCon_maybe` instead.

Fixes #20539 and adds a regression test T20539.
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/8300ca2e3bcc3e74f7524116f85688da6167bb2f" style="color: #1068bf;">8300ca2e</a></strong>
<div>
<span>by Ben Gamari</span>
<i>at 2021-10-24T01:26:11-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>driver: Export wWarningFlagMap

A new feature requires Ghcide to be able to convert warnings to CLI
flags (WarningFlag -> String). This is most easily implemented in terms
of the internal function flagSpecOf, which uses an inefficient
implementation based on linear search through a linked list. This PR
derives Ord for WarningFlag, and replaces that list with a Map.

Closes #19087.
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/3bab222c585343f8febe2a627d280b7be9401e92" style="color: #1068bf;">3bab222c</a></strong>
<div>
<span>by Sebastian Graf</span>
<i>at 2021-10-24T01:26:46-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>DmdAnal: Implement Boxity Analysis (#19871)

This patch fixes some abundant reboxing of `DynFlags` in
`GHC.HsToCore.Match.Literal.warnAboutOverflowedLit` (which was the topic
of #19407) by introducing a Boxity analysis to GHC, done as part of demand
analysis. This allows to accurately capture ad-hoc unboxing decisions previously
made in worker/wrapper in demand analysis now, where the boxity info can
propagate through demand signatures.

See the new `Note [Boxity analysis]`. The actual fix for #19407 is described in
`Note [No lazy, Unboxed demand in demand signature]`, but
`Note [Finalising boxity for demand signature]` is probably a better entry-point.

To support the fix for #19407, I had to change (what was)
`Note [Add demands for strict constructors]` a bit
(now `Note [Unboxing evaluated arguments]`). In particular, we now take care of
it in `finaliseBoxity` (which is only called from demand analaysis) instead of
`wantToUnboxArg`.

I also had to resurrect `Note [Product demands for function body]` and rename
it to `Note [Unboxed demand on function bodies returning small products]` to
avoid huge regressions in `join004` and `join007`, thereby fixing #4267 again.
See the updated Note for details.

A nice side-effect is that the worker/wrapper transformation no longer needs to
look at strictness info and other bits such as `InsideInlineableFun` flags
(needed for `Note [Do not unbox class dictionaries]`) at all. It simply collects
boxity info from argument demands and interprets them with a severely simplified
`wantToUnboxArg`. All the smartness is in `finaliseBoxity`, which could be moved
to DmdAnal completely, if it wasn't for the call to `dubiousDataConInstArgTys`
which would be awkward to export.

I spent some time figuring out the reason for why `T16197` failed prior to my
amendments to `Note [Unboxing evaluated arguments]`. After having it figured
out, I minimised it a bit and added `T16197b`, which simply compares computed
strictness signatures and thus should be far simpler to eyeball.

The 12% ghc/alloc regression in T11545 is because of the additional `Boxity`
field in `Poly` and `Prod` that results in more allocation during `lubSubDmd`
and `plusSubDmd`. I made sure in the ticky profiles that the number of calls
to those functions stayed the same. We can bear such an increase here, as we
recently improved it by -68% (in b760c1f).
T18698* regress slightly because there is more unboxing of dictionaries
happening and that causes Lint (mostly) to allocate more.

Fixes #19871, #19407, #4267, #16859, #18907 and #13331.

Metric Increase:
    T11545
    T18698a
    T18698b

Metric Decrease:
    T12425
    T16577
    T18223
    T18282
    T4267
    T9961
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/691c450f1e9cc3fd83b662be3c0134fde03e97db" style="color: #1068bf;">691c450f</a></strong>
<div>
<span>by Alan Zimmerman</span>
<i>at 2021-10-24T01:27:21-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>EPA: Use LocatedA for ModuleName

This allows us to use an Anchor with a DeltaPos in it when exact
printing.
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/3417a81a34fdf74857138a105b2ab4ee32e658c4" style="color: #1068bf;">3417a81a</a></strong>
<div>
<span>by Joachim Breitner</span>
<i>at 2021-10-24T01:27:57-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>undefined: Neater CallStack in error message

Users of `undefined` don’t want to see
```
files.hs: Prelude.undefined:
CallStack (from HasCallStack):
  error, called at libraries/base/GHC/Err.hs:79:14 in base:GHC.Err
  undefined, called at file.hs:151:19 in main:Main
```
but want to see
```
files.hs: Prelude.undefined:
CallStack (from HasCallStack):
  undefined, called at file.hs:151:19 in main:Main
```
so let’s make that so.

The function for that is `withFrozenCallStack`, but that is not usable
here (module dependencies, and also not representation-polymorphic). And
even if it were, it could confuse GHC’s strictness analyzer, leading to
big regressions in some perf tests (T10421 in particular).

So after shuffling modules and definitions around, I eventually noticed
that the easiest way is to just not call `error` here.

Fixes #19886
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/98aa29d3fe447cce3407e6864b015892244bb475" style="color: #1068bf;">98aa29d3</a></strong>
<div>
<span>by John Ericson</span>
<i>at 2021-10-24T01:28:33-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>Fix dangling reference to RtsConfig.h

It hasn't existed since a2a67cd520b9841114d69a87a423dabcb3b4368e -- in
2009!
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/9cde38a007c94c9598e73330f995a80a0177773e" style="color: #1068bf;">9cde38a0</a></strong>
<div>
<span>by John Ericson</span>
<i>at 2021-10-25T17:45:15-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>Remove stray reference to `dist-ghcconstants`

I think this hasn't been a thing since
86054b4ab5125a8b71887b06786d0a428539fb9c, almost 10 years ago!
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/0f7541dc37d25d8a1056586bbeb57bf0dd2826a0" style="color: #1068bf;">0f7541dc</a></strong>
<div>
<span>by Viktor Dukhovni</span>
<i>at 2021-10-25T17:45:51-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>Tweak descriptions of lines and unlines

It seems more clear to think of lines as LF-terminated rather than
LF-separated.
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/0255ef38b1bb0d4f3608bf92ebc8a93955ccb30a" style="color: #1068bf;">0255ef38</a></strong>
<div>
<span>by Zubin Duggal</span>
<i>at 2021-10-26T12:36:24-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>Warn if unicode bidirectional formatting characters are found in the source (#20263)
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/9cc6c1932dbbd3d27405a8ebe5586a0ef09dd7fd" style="color: #1068bf;">9cc6c193</a></strong>
<div>
<span>by sheaf</span>
<i>at 2021-10-26T12:37:02-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>Don't default type variables in type families

  This patch removes the following defaulting of type variables
  in type and data families:

    - type variables of kind RuntimeRep defaulting to LiftedRep
    - type variables of kind Levity defaulting to Lifted
    - type variables of kind Multiplicity defaulting to Many

  It does this by passing "defaulting options" to the `defaultTyVars`
  function; when calling from `tcTyFamInstEqnGuts` or
  `tcDataFamInstHeader` we pass options that avoid defaulting.

  This avoids wildcards being defaulted, which caused type families
  to unexpectedly fail to reduce.

  Note that kind defaulting, applicable only with -XNoPolyKinds,
  is not changed by this patch.

  Fixes #17536

-------------------------
Metric Increase:
    T12227
-------------------------
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/cc113616401b653020de081ec3ea5f2ec64747d9" style="color: #1068bf;">cc113616</a></strong>
<div>
<span>by Artyom Kuznetsov</span>
<i>at 2021-10-26T20:27:33+00:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>Change CaseAlt and LambdaExpr to FunRhs in deriving Foldable and Traversable (#20496)
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/9bd6daa4af5893b9da97e75060248a8c2faf3b0b" style="color: #1068bf;">9bd6daa4</a></strong>
<div>
<span>by John Ericson</span>
<i>at 2021-10-27T13:29:39-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>Make build system: Generalize and/or document distdirs

`manual-package-config` should not hard-code the distdir, and no
longer does

Elsewhere, we must continue to hard-code due to inconsitent distdir
names across stages, so we document this referring to the existing note
"inconsistent distdirs".
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/9d577ea118e362a50db5713378e097f4f92aa77f" style="color: #1068bf;">9d577ea1</a></strong>
<div>
<span>by John Ericson</span>
<i>at 2021-10-27T13:30:15-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>Compiler dosen't need to know about certain settings from file

 - RTS and libdw
 - SMP
 - RTS ways

I am leaving them in the settings file because `--info` currently prints
all the fields in there, but in the future I do believe we should
separate the info GHC actually needs from "extra metadata". The latter
could go in `+RTS --info` and/or a separate file that ships with the RTS
for compile-time inspection instead.
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/ed9ec655dcbd538383d5f1191440f152113adad2" style="color: #1068bf;">ed9ec655</a></strong>
<div>
<span>by Ben Gamari</span>
<i>at 2021-10-27T13:30:55-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>base: Note export of Data.Tuple.Solo in changelog
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/638f65482ca5265c268aa97abfcc14cdc27e46ba" style="color: #1068bf;">638f6548</a></strong>
<div>
<span>by Ben Gamari</span>
<i>at 2021-10-27T13:30:55-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>hadrian: Turn the `static` flavour into a transformer

This turns the `static` flavour into the `+fully_static` flavour
transformer.
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/522eab3f056905db47110c73dac1833f4a2880f2" style="color: #1068bf;">522eab3f</a></strong>
<div>
<span>by Ziyang Liu</span>
<i>at 2021-10-29T05:01:50-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>Show family TyCons in mk_dict_error in the case of a single match
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/7170052651ff02bfcf1e9611f0813dd20a7c8558" style="color: #1068bf;">71700526</a></strong>
<div>
<span>by Sebastian Graf</span>
<i>at 2021-10-29T05:02:25-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>Add more INLINABLE and INLINE pragmas to `Enum Int*` instances

Otherwise the instances aren't good list producers.
See Note [Stable Unfolding for list producers].
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/925c47b46529d202190f18bd653a6945caa51823" style="color: #1068bf;">925c47b4</a></strong>
<div>
<span>by Sebastian Graf</span>
<i>at 2021-10-29T05:02:25-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>WorkWrap: Update Unfolding with WW'd body prior to `tryWW` (#20510)

We have a function in #20510 that is small enough to get a stable unfolding in WW:
```hs
small :: Int -> Int
small x = go 0 x
  where
    go z 0 = z * x
    go z y = go (z+y) (y-1)
```
But it appears we failed to use the WW'd RHS as the stable unfolding. As a result,
inlining `small` would expose the non-WW'd version of `go`. That appears to regress
badly in #19727 which is a bit too large to extract a reproducer from that is
guaranteed to reproduce across GHC versions.

The solution is to simply update the unfolding in `certainlyWillInline` with the
WW'd RHS.

Fixes #20510.
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/7b67724bd1e6237f843241506d9650ea6f27cee2" style="color: #1068bf;">7b67724b</a></strong>
<div>
<span>by John Ericson</span>
<i>at 2021-10-29T16:57:48-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>make build system: RTS should use dist-install not dist

This is the following find and replace:

 - `rts/dist` -> `rts/dist-install` # for paths
 - `rts_dist` -> `rts_dist-install` # for make rules and vars
 - `,dist` -> `,dist-install` # for make, just in rts/ghc.mk`

Why do this? Does it matter when the RTS is just built once? The answer
is, yes, I think it does, because I want the distdir--stage
correspondence to be consistent.

In particular, for #17191 and continuing from
d5de970dafd5876ef30601697576167f56b9c132 I am going to make the headers
(`rts/includes`) increasingly the responsibility of the RTS (hence their
new location). However, those headers are current made for multiple
stages. This will probably become unnecessary as work on #17191
progresses and the compiler proper becomes more of a freestanding cabal
package (e.g. a library that can be downloaded from Hackage and built
without any autoconf). However, until that is finished, we have will
transitional period where the RTS and headers need to agree on dirs for
multiple stages.

I know the make build system is going away, but it's not going yet, so I
need to change it to unblock things :).
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/b0a1ed5579a7e80b744d16b0d78d4968284787d9" style="color: #1068bf;">b0a1ed55</a></strong>
<div>
<span>by Sylvain Henry</span>
<i>at 2021-10-29T16:58:35-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>Add test for T15547 (#15547)

Fix #15547
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/c8d89f62a32f05bb2f7aa9a8edda4651301cb76f" style="color: #1068bf;">c8d89f62</a></strong>
<div>
<span>by Sylvain Henry</span>
<i>at 2021-10-29T16:58:35-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>Bignum: add missing rule

Add missing "Natural -> Integer -> Word#" rule.
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/2a4581ffcf3dd80e5933684f46ddfe30447a3ced" style="color: #1068bf;">2a4581ff</a></strong>
<div>
<span>by sheaf</span>
<i>at 2021-10-29T16:59:13-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>User's guide: data family kind-inference changes

  Explain that the kind of a data family instance must now be
  fully determined by the header of the instance, and how one
  might migrate code to account for this change.

  Fixes #20527
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/ea862ef5b3779476e0aa2d20bbae1946d07430f1" style="color: #1068bf;">ea862ef5</a></strong>
<div>
<span>by Ben Gamari</span>
<i>at 2021-10-30T15:43:28-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>ghci: Make getModBreaks robust against DotO Unlinked

Previously getModBreaks assumed that an interpreted linkable will have
only a single `BCOs` `Unlinked` entry. However, in general an object may
also contain `DotO`s; ignore these.

Fixes #20570.
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/e4095c0c85b9c9f70f3c3d665370916e8fd4f616" style="color: #1068bf;">e4095c0c</a></strong>
<div>
<span>by John Ericson</span>
<i>at 2021-10-31T09:04:41-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>Make build system: Put make generated include's in RTS distdirs

These are best thought of as being part of the RTS.

 - After !6791, `ghcautoconf.h` won't be used by the compiler
   inappropriately.

 - `ghcversion.h` is only used once outside the RTS, which is
   `compiler/cbits/genSym.c`. Except we *do* mean the RTS GHC is built
   against there, so it's better if we always get get the installed
   version.

 - `ghcplatform.h` alone is used extensively outside the RTS, but
   since we no longer have a target platform it is perfectly
   safe/correct to get the info from the previous RTS.

All 3 are exported from the RTS currently and in the bootstrap window.

This commit just swaps directories around, such that the new headers may
continue to be used in stage 0 despite the reasoning above, but the idea
is that we can subsequently make more interesting changes doubling down
on the reasoning above.

In particular, in !6803 we'll start "morally" moving `ghcautonconf.h`
over, introducing an RTS configure script and temporary header of its
`AC_DEFINE`s until the top-level configure script doesn't define any
more.

Progress towards #17191
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/f5471c0baaa5c05488888f6d51485031e621a90b" style="color: #1068bf;">f5471c0b</a></strong>
<div>
<span>by John Ericson</span>
<i>at 2021-10-31T09:05:16-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>Modularize autoconf platform detection

This will allow better reuse of it, such as in the upcoming RTS
configure script.

Progress towards #17191
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/6b38c8a6ee395f5f6d23806dd609ee5ad1ff5472" style="color: #1068bf;">6b38c8a6</a></strong>
<div>
<span>by Ben Gamari</span>
<i>at 2021-10-31T09:05:52-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>ghc: Bump Cabal-Version to 1.22

This is necessary to use reexported-modules
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/6544446db9582bb7abefd829be817b43ef8c991b" style="color: #1068bf;">6544446d</a></strong>
<div>
<span>by Ben Gamari</span>
<i>at 2021-10-31T09:05:52-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>configure: Hide error output from --target check
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/7445bd714c1bea39207f9a2fa497c325b95ba2c7" style="color: #1068bf;">7445bd71</a></strong>
<div>
<span>by Andreas Klebinger</span>
<i>at 2021-11-01T12:13:45+00:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>Update comment in Lint.hs

mkWwArgs has been renamed to mkWorkerArgs.</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/f1a782dd29480c4570465ea0aa06008bbf444e13" style="color: #1068bf;">f1a782dd</a></strong>
<div>
<span>by Vladislav Zavialov</span>
<i>at 2021-11-02T01:36:32-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>HsToken for let/in (#19623)

One more step towards the new design of EPA.
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/37a37139160f628a0ce3b27d8269fcf86d226f71" style="color: #1068bf;">37a37139</a></strong>
<div>
<span>by John Ericson</span>
<i>at 2021-11-02T01:37:08-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>Separate some AC_SUBST / AC_DEFINE

Eventually, the RTS configure alone will need the vast majority of
AC_DEFINE, and the top-level configure will need the most AC_SUBST. By
removing the "side effects" of the macros like this we make them more
reusable so they can be shared between the two configures without doing
too much.
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/2f69d102d775f8a95f1c0b0f62d4fd630c4d1737" style="color: #1068bf;">2f69d102</a></strong>
<div>
<span>by John Ericson</span>
<i>at 2021-11-02T01:37:43-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>Remove `includes_GHCCONSTANTS` from make build system

It is dead code.
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/da1a8e2986731b767f5c977cb873034e771d9371" style="color: #1068bf;">da1a8e29</a></strong>
<div>
<span>by John Ericson</span>
<i>at 2021-11-02T01:37:43-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>Treat generated RTS headers in a more consistent manner

We can depend on all of them at once the same way.
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/a7e1be3d84d2b7d0515f909175cdfa5dcf0dc55c" style="color: #1068bf;">a7e1be3d</a></strong>
<div>
<span>by Ryan Scott</span>
<i>at 2021-11-02T01:38:53-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>Fix #20590 with another application of mkHsContextMaybe

We were always converting empty GADT contexts to `Just []` in `GHC.ThToHs`,
which caused the pretty-printer to always print them as `() => ...`. This is
easily fixed by using the `mkHsContextMaybe` function when converting GADT
contexts so that empty contexts are turned to `Nothing`. This is in the same
tradition established in commit 4c87a3d1d14f9e28c8aa0f6062e9c4201f469ad7.

In the process of fixing this, I discovered that the `Cxt` argument to
`mkHsContextMaybe` is completely unnecessary, as we can just as well check if
the `LHsContext GhcPs` argument is empty.

Fixes #20590.
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/39eed84c2188b15ed312b4468f1a44c6a49fb268" style="color: #1068bf;">39eed84c</a></strong>
<div>
<span>by Alan Zimmerman</span>
<i>at 2021-11-02T21:39:32+00:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>EPA: Get rid of bare SrcSpan's in the ParsedSource

The ghc-exactPrint library has had to re-introduce the relatavise
phase.

This is needed if you change the length of an identifier and want the
layout to be preserved afterwards.

It is not possible to relatavise a bare SrcSpan, so introduce `SrcAnn
NoEpAnns` for them instead.

Updates haddock submodule.
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/9f42a6dcebf12a8c3e7c18d8291c0fa95e3c4d86" style="color: #1068bf;">9f42a6dc</a></strong>
<div>
<span>by ARATA Mizuki</span>
<i>at 2021-11-03T09:19:17-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>hadrian: Use $bindir instead of `dirname $0` in ghci wrapper

`dirname $0` doesn't work when the wrapper is called via a symbolic link.

Fix #20589
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/bf6f96a61397ba8e48d030395f5c58a999f98499" style="color: #1068bf;">bf6f96a6</a></strong>
<div>
<span>by Vladislav Zavialov</span>
<i>at 2021-11-03T16:35:50+03:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>Generalize the type of wrapLocSndMA
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/1419fb1653b3d440d182efba3844848ff89491f9" style="color: #1068bf;">1419fb16</a></strong>
<div>
<span>by Matthew Pickering</span>
<i>at 2021-11-04T00:36:09-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>ci: Don't run alpine job in fast-ci
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/6020905a626b52dc383848025cd73f944f68b903" style="color: #1068bf;">6020905a</a></strong>
<div>
<span>by Takenobu Tani</span>
<i>at 2021-11-04T09:40:42+00:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>Correct load_load_barrier for risc-v

This patch corrects the instruction for load_load_barrier().
Current load_load_barrier() incorrectly uses `fence w,r`.
It means a store-load barrier.

See also linux-kernel's smp_rmb() implementation:
  https://github.com/torvalds/linux/blob/v5.14/arch/riscv/include/asm/barrier.h#L27
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/086e288c6bb121581debd9308a8c2278f294e35a" style="color: #1068bf;">086e288c</a></strong>
<div>
<span>by Richard Eisenberg</span>
<i>at 2021-11-04T13:04:44-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>Tiny renamings and doc updates

Close #20433
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/f0b920d1613db43925c01f02b0f550e29b11a86b" style="color: #1068bf;">f0b920d1</a></strong>
<div>
<span>by CarrieMY</span>
<i>at 2021-11-05T05:30:13-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>Fix deferOutOfScopeVariables for qualified #20472
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/59dfb00584e6d24d82d3f5338c6299bae48e0468" style="color: #1068bf;">59dfb005</a></strong>
<div>
<span>by Simon Peyton Jones</span>
<i>at 2021-11-05T05:30:48-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>Remove record field from Solo

Ticket #20562 revealed that Solo, which is a wired-in TyCon, had
a record field that wasn't being added to the type env. Why not?
Because wired-in TyCons don't have record fields.

It's not hard to change that, but it's tiresome for this one use-case,
and it seems easier simply to make `getSolo` into a standalone
function.

On the way I refactored the handling of Solo slightly, to put it
into wiredInTyCons (where it belongs) rather than only in
knownKeyNames
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/be3750a5a3cbc59a7b84f1f7603f308aee1cc80b" style="color: #1068bf;">be3750a5</a></strong>
<div>
<span>by Matthew Pickering</span>
<i>at 2021-11-05T10:12:16-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>Allow CApi FFI calls in GHCi

At some point in the past this started working. I noticed this when
working on multiple home units and couldn't load GHC's dependencies into
the interpreter.

Fixes #7388
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/d96ce59dc86799f0cf07da2ce5a55b189a50c130" style="color: #1068bf;">d96ce59d</a></strong>
<div>
<span>by John Ericson</span>
<i>at 2021-11-05T10:12:52-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>make: Futher systematize handling of generated headers

This will make it easier to add and remove generated headers, as we will
do when we add a configure script for the RTS.
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/3645abac01b634b61b2ea2508ba67e88ef9ee219" style="color: #1068bf;">3645abac</a></strong>
<div>
<span>by John Ericson</span>
<i>at 2021-11-05T20:25:32-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>Avoid GHC_STAGE and other include bits

We should strive to make our includes in terms of the RTS as much as
possible. One place there that is not possible, the llvm version, we
make a new tiny header

Stage numbers are somewhat arbitrary, if we simple need a newer RTS, we
should say so.
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/4896a6a6d28821ff1b1da3f2cc542e696d2b31b4" style="color: #1068bf;">4896a6a6</a></strong>
<div>
<span>by Matthew Pickering</span>
<i>at 2021-11-05T20:26:07-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>Fix boolean confusion with Opt_NoLlvmMangler flag

I accidently got the two branches of the if expression the wrong way
around when refactoring.

Fixes #20567
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/d74cc01ef5fd077439bab71ffa063632efb40be4" style="color: #1068bf;">d74cc01e</a></strong>
<div>
<span>by Ziyang Liu</span>
<i>at 2021-11-06T07:53:06-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>Export `withTcPlugins` and `withHoleFitPlugins`
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/ecd6d14215eb40ac441c075e432ddaa0237f3c72" style="color: #1068bf;">ecd6d142</a></strong>
<div>
<span>by Sylvain Henry</span>
<i>at 2021-11-06T07:53:42-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>i386: fix codegen of 64-bit comparisons
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/e279ea6479279b0899d1d2cd683ceb70bb4a77f3" style="color: #1068bf;">e279ea64</a></strong>
<div>
<span>by Sylvain Henry</span>
<i>at 2021-11-06T07:53:42-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>Add missing Int64/Word64 constant-folding rules
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/4c86df25d360d4001a4a61415bbd86d4fc76d18c" style="color: #1068bf;">4c86df25</a></strong>
<div>
<span>by Sylvain Henry</span>
<i>at 2021-11-06T07:53:42-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>Fix Int64ToInt/Word64ToWord rules on 32-bit architectures

When the input literal was larger than 32-bit it would crash in a
compiler with assertion enabled because it was creating an out-of-bound
word-sized literal (32-bit).
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/646c3e21dd30a2eaae46aafb8678d29f8e06054d" style="color: #1068bf;">646c3e21</a></strong>
<div>
<span>by Sylvain Henry</span>
<i>at 2021-11-06T07:53:42-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>CI: allow perf-nofib to fail
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/20956e5784fe43781d156dd7ab02f0bff4ab41fb" style="color: #1068bf;">20956e57</a></strong>
<div>
<span>by Sylvain Henry</span>
<i>at 2021-11-06T07:53:42-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>Remove target dependent CPP for Word64/Int64 (#11470)

Primops types were dependent on the target word-size at *compiler*
compilation time. It's an issue for multi-target as GHC may not have the
correct primops types for the target.

This patch fixes some primops types: if they take or return fixed 64-bit
values they now always use `Int64#/Word64#`, even on 64-bit
architectures (where they used `Int#/Word#` before). Users of these
primops may now need to convert from Int64#/Word64# to Int#/Word# (a
no-op at runtime).

This is a stripped down version of !3658 which goes the all way of
changing the underlying primitive types of Word64/Int64. This is left
for future work.

T12545 allocations increase ~4% on some CI platforms and decrease ~3% on
AArch64.

Metric Increase:
    T12545

Metric Decrease:
    T12545
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/2800eee24d006cfe5ed224e35e856154ae0cd444" style="color: #1068bf;">2800eee2</a></strong>
<div>
<span>by Sylvain Henry</span>
<i>at 2021-11-06T07:53:42-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>Make Word64 use Word64# on every architecture
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/be9d78625f13ec011e94ec5b68e471d13068b38f" style="color: #1068bf;">be9d7862</a></strong>
<div>
<span>by Sylvain Henry</span>
<i>at 2021-11-06T07:53:42-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>Fix Int64/Word64's Enum instance fusion

Performance improvement:
  T15185(normal) run/alloc        51112.0        41032.0 -19.7% GOOD

Metric Decrease:
    T15185
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/6f2d6a5d833810515b1e2ab11e10196ca2ba24ce" style="color: #1068bf;">6f2d6a5d</a></strong>
<div>
<span>by Nikolay Yakimov</span>
<i>at 2021-11-06T11:24:50-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>Add regression test for #20568

GHC produced broken executables with rebindable if and -fhpc if `ifThenElse` expected non-Bool condition until GHC 9.0. This adds a simple regression test.
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/7045b7831cae974ed3a96aa8246ec93846aa868b" style="color: #1068bf;">7045b783</a></strong>
<div>
<span>by Vladislav Zavialov</span>
<i>at 2021-11-06T11:25:25-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>Refactor HdkM using deriving via

* No more need for InlineHdkM, mkHdkM
* unHdkM is now just a record selector
* Update comments
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/0d8a883e4b880453e044af3a69a96a648496926f" style="color: #1068bf;">0d8a883e</a></strong>
<div>
<span>by Andreas Klebinger</span>
<i>at 2021-11-07T12:54:30-05:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>Don't undersaturate join points through eta-reduction.

In #20599 I ran into an issue where the unfolding for a join point was
eta-reduced removing the required lambdas.

This patch adds guards that should prevent this from happening going
forward.
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/3d7e3d911c3dbfc114b7af33ad4b28cd2af29bbc" style="color: #1068bf;">3d7e3d91</a></strong>
<div>
<span>by Vladislav Zavialov</span>
<i>at 2021-11-07T12:55:05-05:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>Print the Type kind qualified when ambiguous (#20627)

The Type kind is printed unqualified:
        ghci> :set -XNoStarIsType
        ghci> :k (->)
        (->) :: Type -> Type -> Type

This is the desired behavior unless the user has defined
their own Type:
        ghci> data Type

Then we want to resolve the ambiguity by qualification:
        ghci> :k (->)
        (->) :: GHC.Types.Type -> GHC.Types.Type -> GHC.Types.Type
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/184f6bc6f17360421eb101c9deffb7f701072885" style="color: #1068bf;">184f6bc6</a></strong>
<div>
<span>by John Ericson</span>
<i>at 2021-11-07T16:26:10-05:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>Factor out unregisterised and tables next to code m4 macros

These will be useful for upcoming RTS configure script.
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/56705da84a8e954d9755270ca8bb37a43d7d03a9" style="color: #1068bf;">56705da8</a></strong>
<div>
<span>by Sebastian Graf</span>
<i>at 2021-11-07T16:26:46-05:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>Pmc: Do inhabitation test for unlifted vars (#20631)

Although I thought we were already set to handle unlifted datatypes correctly,
it appears we weren't. #20631 showed that it's wrong to assume
`vi_bot=IsNotBot` for `VarInfo`s of unlifted types from their inception if we
don't follow up with an inhabitation test to see if there are any habitable
constructors left. We can't trigger the test from `emptyVarInfo`, so now we
instead fail early in `addBotCt` for variables of unlifted types.

Fixed #20631.
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/28334b475a109bdeb8d53d58c48adb1690e2c9b4" style="color: #1068bf;">28334b47</a></strong>
<div>
<span>by sheaf</span>
<i>at 2021-11-08T13:40:05+01:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>Default kind vars in tyfams with -XNoPolyKinds

  We should still default kind variables in type families
  in the presence of -XNoPolyKinds, to avoid suggesting enabling
  -XPolyKinds just because the function arrow introduced kind variables,
  e.g.

    type family F (t :: Type) :: Type where
      F (a -> b) = b

  With -XNoPolyKinds, we should still default `r :: RuntimeRep`
  in `a :: TYPE r`.

  Fixes #20584
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/3f103b1ae4018cf35dabc00d4c9f77eaf8a35ff0" style="color: #1068bf;">3f103b1a</a></strong>
<div>
<span>by John Ericson</span>
<i>at 2021-11-08T19:35:12-05:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>Factor out GHC_ADJUSTORS_METHOD m4 macro
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/ba9fdc51d6db174b6973109def8acba773f04d50" style="color: #1068bf;">ba9fdc51</a></strong>
<div>
<span>by John Ericson</span>
<i>at 2021-11-08T19:35:12-05:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>Factor out FP_FIND_LIBFFI and use in RTS configure too
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/2929850f0139778c579fc7144831c88e11353a9b" style="color: #1068bf;">2929850f</a></strong>
<div>
<span>by Sylvain Henry</span>
<i>at 2021-11-09T10:02:06-05:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>RTS: open timerfd synchronously (#20618)
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/bc498fdfa482dfe796e3a12ac8f9d71913930740" style="color: #1068bf;">bc498fdf</a></strong>
<div>
<span>by Sylvain Henry</span>
<i>at 2021-11-09T10:02:46-05:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>Bignum: expose backendName (#20495)
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/79a26df1475505ee1e87eb7fda04e5fefdf6aa4c" style="color: #1068bf;">79a26df1</a></strong>
<div>
<span>by Sylvain Henry</span>
<i>at 2021-11-09T10:02:46-05:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>Don't expose bignum backend in ghc --info (#20495)

GHC is bignum backend agnostic and shouldn't report this information as
in the future ghc-bignum will be reinstallable potentially with a
different backend that GHC is unaware of. Moreover as #20495 shows the
returned information may be wrong currently.
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/e485f4f21132a8a9c178b19272b06826e3dad133" style="color: #1068bf;">e485f4f2</a></strong>
<div>
<span>by Andreas Klebinger</span>
<i>at 2021-11-09T19:54:31-05:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>SpecConstr - Attach evaldUnfolding to known evaluated arguments.
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/983a99f0730b230367a327c5ef28cb5ec5dfedc2" style="color: #1068bf;">983a99f0</a></strong>
<div>
<span>by Ryan Scott</span>
<i>at 2021-11-09T19:55:07-05:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>deriving: infer DatatypeContexts from data constructors, not type constructor

Previously, derived instances that use `deriving` clauses would infer
`DatatypeContexts` by using `tyConStupidTheta`. But this sometimes causes
redundant constraints to be included in the derived instance contexts, as the
constraints that appear in the `tyConStupidTheta` may not actually appear in
the types of the data constructors (i.e., the `dataConStupidTheta`s). For
instance, in `data Show a => T a = MkT deriving Eq`, the type of `MkT` does
not require `Show`, so the derived `Eq` instance should not require `Show`
either. This patch makes it so with some small tweaks to
`inferConstraintsStock`.

Fixes #20501.
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/bdd7b2be6e61f24d467e7b4881b7309d524e2034" style="color: #1068bf;">bdd7b2be</a></strong>
<div>
<span>by Ryan Scott</span>
<i>at 2021-11-09T19:55:07-05:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>Flesh out Note [The stupid context] and reference it

`Note [The stupid context]` in `GHC.Core.DataCon` talks about stupid contexts
from `DatatypeContexts`, but prior to this commit, it was rather outdated.
This commit spruces it up and references it from places where it is relevant.
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/95563259847454efdacfbbff9f28de040089132f" style="color: #1068bf;">95563259</a></strong>
<div>
<span>by Li-yao Xia</span>
<i>at 2021-11-10T09:16:21-05:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>Fix rendering of Applicative law
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/0f852244da36778e9980c41febb39df5c335ad4a" style="color: #1068bf;">0f852244</a></strong>
<div>
<span>by Viktor Dukhovni</span>
<i>at 2021-11-10T09:16:58-05:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>Improve ZipList section of Traversable overview

- Fix cut/paste error by adding missing `c` pattern in `Vec3`
  traversable instance.

- Add a bit of contextual prose above the Vec2/Vec3 instance
  sample code.
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/c4cd13b8cf5c9bd693c787cac46d7e55dc742566" style="color: #1068bf;">c4cd13b8</a></strong>
<div>
<span>by Richard Eisenberg</span>
<i>at 2021-11-10T18:18:19-05:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>Fix Note [Function types]

Close #19938.
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/dfb9913c530d9132700fd5252c763e43976ece45" style="color: #1068bf;">dfb9913c</a></strong>
<div>
<span>by sheaf</span>
<i>at 2021-11-10T18:18:59-05:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>Improvements to rank_polymorphism.rst

  - rename the function f4 to h1 for consistency with
    the naming convention
  - be more explicit about the difference between
      `Int -> (forall a. a -> a)`
    and
      `forall a. Int -> (a -> a)`
  - reorder the section to make it flow better

Fixes #20585
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/1540f556a4501056056eec7d45d3c9246e8213d9" style="color: #1068bf;">1540f556</a></strong>
<div>
<span>by sheaf</span>
<i>at 2021-11-10T18:19:37-05:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>Clarify hs-boot file default method restrictions

  The user guide wrongly stated that default methods should not
  be included in hs-boot files. In fact, if the class is not left
  abstract (no methods, no superclass constraints, ...) then the
  defaults must be provided and match with those given in the .hs
  file.

  We add some tests for this, as there were no tests in the testsuite
  that gave rise to the "missing default methods" error.

  Fixes #20588
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/8c0aec38c129ca58c270f687e009a1c457fd0a10" style="color: #1068bf;">8c0aec38</a></strong>
<div>
<span>by Sylvain Henry</span>
<i>at 2021-11-10T18:20:17-05:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>Hadrian: fix building/registering of .dll libraries
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/11c9a469b8857ff49aa2f0744bec001a904761e9" style="color: #1068bf;">11c9a469</a></strong>
<div>
<span>by Matthew Pickering</span>
<i>at 2021-11-11T07:21:28-05:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>testsuite: Convert hole fit performance tests into proper perf tests

Fixes #20621
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/c2ed85cb1e2430c089e4d00c070a2bfa2d84a4ba" style="color: #1068bf;">c2ed85cb</a></strong>
<div>
<span>by Matthew Pickering</span>
<i>at 2021-11-11T07:22:03-05:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>driver: Cache the transitive dependency calculation in ModuleGraph

Two reasons for this change:

1. Avoid computing the transitive dependencies when compiling each
   module, this can save a lot of repeated work.
2. More robust to forthcoming changes to support multiple home units.
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/4230e4fb8c12da16ad994a9af6b81ff755084bc6" style="color: #1068bf;">4230e4fb</a></strong>
<div>
<span>by Matthew Pickering</span>
<i>at 2021-11-11T07:22:03-05:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>driver: Use shared transitive dependency calculation in hptModulesBelow

This saves a lot of repeated work on big dependency graphs.

-------------------------
Metric Decrease:
    MultiLayerModules
    T13719
-------------------------
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/af653b5f8e1d81eeb28ecf730d41e4c83fe76241" style="color: #1068bf;">af653b5f</a></strong>
<div>
<span>by Matthew Bauer</span>
<i>at 2021-11-11T07:22:39-05:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>Only pass -pie, -no-pie when linking

Previously, these flags were passed when both compiling and linking
code. However, `-pie` and `-no-pie` are link-time-only options. Usually,
this does not cause issues, but when using Clang with `-Werror` set
results in errors:

    clang: error: argument unused during compilation: '-nopie' [-Werror,-Wunused-command-line-argument]

This is unused by Clang because this flag has no effect at compile time
(it’s called `-nopie` internally by Clang but called `-no-pie` in GHC
for compatibility with GCC). Just passing these flags at linking time
resolves this.

Additionally, update #15319 hack to look for `-pgml` instead.

Because of the main change, the value of `-pgmc` does not matter when
checking for the workaround of #15319. However, `-pgml` *does* still
matter as not all `-pgml` values support `-no-pie`.

To cover all potential values, we assume that no custom `-pgml` values
support `-no-pie`. This means that we run the risk of not using
`-no-pie` when it is otherwise necessary for in auto-hardened
toolchains! This could be a problem at some point, but this workaround
was already introduced in 8d008b71 and we might as well continue
supporting it.

Likewise, mark `-pgmc-supports-no-pie` as deprecated and create a new
`-pgml-supports-no-pie`.
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/7cc6ebdfdcf37d25b5ce88a68a0181c6ec0f71dd" style="color: #1068bf;">7cc6ebdf</a></strong>
<div>
<span>by Sebastian Graf</span>
<i>at 2021-11-11T07:23:14-05:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>Add regression test for #20598

Fixes #20598, which is mostly a duplicate of #18824 but for GHC 9.2.
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/7b44c816b089de0e4f1a1a4d40a371524c79ab12" style="color: #1068bf;">7b44c816</a></strong>
<div>
<span>by Simon Jakobi</span>
<i>at 2021-11-12T21:20:17-05:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>Turn GHC.Data.Graph.Base.Graph into a newtype
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/a57cc7548fc66a712f6f6cffdbda0a9c3c498829" style="color: #1068bf;">a57cc754</a></strong>
<div>
<span>by John Ericson</span>
<i>at 2021-11-12T21:20:52-05:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>Make: Do not generate ghc.* headers in stage0

GHC should get everything it needs from the RTS, which for stage0 is the
"old" RTS that comes from the bootstrap compiler.
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/265ead8a7401e20d75ed4e476805508ea695f37f" style="color: #1068bf;">265ead8a</a></strong>
<div>
<span>by Richard Eisenberg</span>
<i>at 2021-11-12T21:21:27-05:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>Improve redundant-constraints warning

Previously, we reported things wrong with

  f :: (Eq a, Ord a) => a -> Bool
  f x = x == x

saying that Eq a was redundant. This is fixed now, along with
some simplification in Note [Replacement vs keeping]. There's
a tiny bit of extra complexity in setImplicationStatus, but
it's explained in Note [Tracking redundant constraints].

Close #20602
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/ca90ffa321a31842a32be1b5b6e26743cd677ec5" style="color: #1068bf;">ca90ffa3</a></strong>
<div>
<span>by Richard Eisenberg</span>
<i>at 2021-11-12T21:21:27-05:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>Use local instances with least superclass depth

See new Note [Use only the best local instance] in
GHC.Tc.Solver.Interact.

This commit also refactors the InstSC/OtherSC mechanism
slightly.

Close #20582.
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/dfc4093ccb7c4b7402830ab7c715b55d90980af1" style="color: #1068bf;">dfc4093c</a></strong>
<div>
<span>by Vladislav Zavialov</span>
<i>at 2021-11-12T21:22:03-05:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>Implement -Wforall-identifier (#20609)

In accordance with GHC Proposal #281 "Visible forall in types of terms":

        For three releases before this change takes place, include a new
        warning -Wforall-identifier in -Wdefault. This warning will be triggered
        at definition sites (but not use sites) of forall as an identifier.

Updates the haddock submodule.
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/4143bd21bbef16022628a4260d77a945523ce4b8" style="color: #1068bf;">4143bd21</a></strong>
<div>
<span>by Cheng Shao</span>
<i>at 2021-11-12T21:22:39-05:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>hadrian: use /bin/sh in timeout wrapper

/usr/bin/env doesn't work within a nix build.
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/43cab5f752b6dcbeda5caa76861089539f54ef54" style="color: #1068bf;">43cab5f7</a></strong>
<div>
<span>by Simon Peyton Jones</span>
<i>at 2021-11-12T21:23:15-05:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>Get the in-scope set right in simplArg

This was a simple (but long standing) error in simplArg,
revealed by #20639
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/578b8b489fa191211f14819355901147ee9b6f4d" style="color: #1068bf;">578b8b48</a></strong>
<div>
<span>by Ben Gamari</span>
<i>at 2021-11-12T21:23:51-05:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>gitlab-ci: Allow draft MRs to fail linting jobs

Addresses #20623 by allowing draft MRs to fail linting jobs.</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/908e49fadc8e827743a9816b3414020b9bf725af" style="color: #1068bf;">908e49fa</a></strong>
<div>
<span>by Ben Gamari</span>
<i>at 2021-11-12T21:23:51-05:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>Fix it</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/051666609cd1fce5d612ba66d44ac0b782f9cc2b" style="color: #1068bf;">05166660</a></strong>
<div>
<span>by Ben Gamari</span>
<i>at 2021-11-12T21:23:51-05:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>Fix it</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/e41cffb0aa4a34e77006be4f35a3ae82fce15542" style="color: #1068bf;">e41cffb0</a></strong>
<div>
<span>by Ben Gamari</span>
<i>at 2021-11-12T21:23:51-05:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>Fix it</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/cce3a0257908c01c25a698c3b53c4d64bbe9bb03" style="color: #1068bf;">cce3a025</a></strong>
<div>
<span>by Ben Gamari</span>
<i>at 2021-11-12T21:23:51-05:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>Fix it</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/4499db7dd63c31bff5f934e1461648eea0fdddd0" style="color: #1068bf;">4499db7d</a></strong>
<div>
<span>by Ben Gamari</span>
<i>at 2021-11-12T21:23:51-05:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>Fix it</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/dd1be88bbf1cb4da5256e39406d68c052cc83712" style="color: #1068bf;">dd1be88b</a></strong>
<div>
<span>by Travis Whitaker</span>
<i>at 2021-11-12T21:24:29-05:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>mmapForLinkerMarkExecutable: do nothing when len = 0
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/4c6ace75435f23774de8ee3f317c9503bb1c5139" style="color: #1068bf;">4c6ace75</a></strong>
<div>
<span>by John Ericson</span>
<i>at 2021-11-12T21:25:04-05:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>Delete compiler/MachDeps.h

This was accidentally added back in
28334b475a109bdeb8d53d58c48adb1690e2c9b4 after it is was no longer
needed by the compiler proper in
20956e5784fe43781d156dd7ab02f0bff4ab41fb.
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/490e8c750ea23ce8e2b7309e0d514b7d27f231bb" style="color: #1068bf;">490e8c75</a></strong>
<div>
<span>by John Ericson</span>
<i>at 2021-11-12T21:25:40-05:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>Generate ghcversion.h with the top-level configure

This is, rather unintuitively, part of the goal of making the packages
that make of the GHC distribution more freestanding. `ghcversion.h` is
very simple, so we easily can move it out of the main build systems
(make and Hadrian). By doing so, the RTS becomes less of a special case
to those build systems as the header, already existing in the source
tree, appears like any other.

We could do this with the upcomming RTS configure, but it hardly matters
because there is nothing platform-specific here, it is just versioning
information like the other files the top-level configure can be
responsible for.
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/bba156f3581913a52cefbcbcb8031f274aaa189a" style="color: #1068bf;">bba156f3</a></strong>
<div>
<span>by John Ericson</span>
<i>at 2021-11-12T21:26:15-05:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>Remove bit about size_t in ghc-llvm-version.h

This shouldn't be here. It wasn't causing a problem because this header
was only used from Haskell, but still.
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/0b1da2f1e911e941310a20ed7650670d624f6ebe" style="color: #1068bf;">0b1da2f1</a></strong>
<div>
<span>by John Ericson</span>
<i>at 2021-11-12T21:26:50-05:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>Make: Install RTS headers in `$libdir/rts/include` not `$libdir/include`

Before we were violating the convention of every other package. This
fixes that. It matches the changes made in
d5de970dafd5876ef30601697576167f56b9c132 to the location of the files in
the repo.
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/b040d0d4f1aab4fda1b862fa1f81df1aee8372d4" style="color: #1068bf;">b040d0d4</a></strong>
<div>
<span>by Sebastian Graf</span>
<i>at 2021-11-12T21:27:26-05:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>Add regression test for #20663
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/c60652929ebd2510e52c05a2f61d52e2bf1846ad" style="color: #1068bf;">c6065292</a></strong>
<div>
<span>by John Ericson</span>
<i>at 2021-11-12T21:28:02-05:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>Make: Move remaining built RTS headers to ...build/include

This allows us to clean up the rts include dirs in the package conf.
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/aa3729722bc1aa601c89788c590460ce719bfaed" style="color: #1068bf;">aa372972</a></strong>
<div>
<span>by Ryan Scott</span>
<i>at 2021-11-15T10:17:57-05:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>Refactoring: Consolidate some arguments with DerivInstTys

Various functions in GHC.Tc.Deriv.* were passing around `TyCon`s and
`[Type]`s that ultimately come from the same `DerivInstTys`. This patch
moves the definition of `DerivInstTys` to `GHC.Tc.Deriv.Generate` so that
all of these `TyCon` and `[Type]` arguments can be consolidated into a
single `DerivInstTys`. Not only does this make the code easier to read
(in my opinion), this will also be important in a subsequent commit where we
need to add another field to `DerivInstTys` that will also be used from
`GHC.Tc.Deriv.Generate` and friends.
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/564a19af184dfb56246fff6034acdd7a5e3c8089" style="color: #1068bf;">564a19af</a></strong>
<div>
<span>by Ryan Scott</span>
<i>at 2021-11-15T10:17:57-05:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>Refactoring: Move DataConEnv to GHC.Core.DataCon

`DataConEnv` will prove to be useful in another place besides
`GHC.Core.Opt.SpecConstr` in a follow-up commit.
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/3e5f0595eaa732fdbf1c273194280105bb5bd862" style="color: #1068bf;">3e5f0595</a></strong>
<div>
<span>by Ryan Scott</span>
<i>at 2021-11-15T10:17:57-05:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>Instantiate field types properly in stock-derived instances

Previously, the `deriving` machinery was very loosey-goosey about how it used
the types of data constructor fields when generating code. It would usually
just consult `dataConOrigArgTys`, which returns the _uninstantiated_ field
types of each data constructor. Usually, you can get away with this, but
issues #20375 and #20387 revealed circumstances where this approach fails.

Instead, when generated code for a stock-derived instance
`C (T arg_1 ... arg_n)`, one must take care to instantiate the field types of
each data constructor with `arg_1 ... arg_n`. The particulars of how this is
accomplished is described in the new
`Note [Instantiating field types in stock deriving]` in
`GHC.Tc.Deriv.Generate`. Some highlights:

* `DerivInstTys` now has a new `dit_dc_inst_arg_env :: DataConEnv [Type]`
  field that caches the instantiated field types of each data constructor.
  Whenever we need to consult the field types somewhere in `GHC.Tc.Deriv.*`
  we avoid using `dataConOrigArgTys` and instead look it up in
  `dit_dc_inst_arg_env`.
* Because `DerivInstTys` now stores the instantiated field types of each
  constructor, some of the details of the `GHC.Tc.Deriv.Generics.mkBindsRep`
  function were able to be simplified. In particular, we no longer need to
  apply a substitution to instantiate the field types in a `Rep(1)` instance,
  as that is already done for us by `DerivInstTys`. We still need a
  substitution to implement the "wrinkle" section of
  `Note [Generating a correctly typed Rep instance]`, but the code is
  nevertheless much simpler than before.
* The `tyConInstArgTys` function has been removed in favor of the new
  `GHC.Core.DataCon.dataConInstUnivs` function, which is really the proper tool
  for the job. `dataConInstUnivs` is much like `tyConInstArgTys` except that it
  takes a data constructor, not a type constructor, as an argument, and it adds
  extra universal type variables from that data constructor at the end of the
  returned list if need be. `dataConInstUnivs` takes care to instantiate the
  kinds of the universal type variables at the end, thereby avoiding a bug in
  `tyConInstArgTys` discovered in
  https://gitlab.haskell.org/ghc/ghc/-/issues/20387#note_377037.

Fixes #20375. Fixes #20387.
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/25d36c3178945d926f936ee32e57894d1743063c" style="color: #1068bf;">25d36c31</a></strong>
<div>
<span>by John Ericson</span>
<i>at 2021-11-15T10:18:32-05:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>Make: Get rid of GHC_INCLUDE_DIRS

These dirs should not be included in all stages. Instead make the
per-stage `BUILD_*_INCLUDE_DIR` "plural" to insert `rts/include` in the
right place.
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/b679721a097161315b47c0f186ff72ec84c1389c" style="color: #1068bf;">b679721a</a></strong>
<div>
<span>by John Ericson</span>
<i>at 2021-11-15T10:18:32-05:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>Delete dead code knobs for building GHC itself

As GHC has become target agnostic, we've left behind some now-useless
logic in both build systems.
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/3302f42a57a9e26423e30221e455de5a173cd6c5" style="color: #1068bf;">3302f42a</a></strong>
<div>
<span>by Sylvain Henry</span>
<i>at 2021-11-15T13:19:42-05:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>Fix windres invocation

I've already fixed this 7 months ago in the comments of #16780 but it
never got merged. Now we need this for #20657 too.
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/d9f5490591c290295e161431008d60a4495c2390" style="color: #1068bf;">d9f54905</a></strong>
<div>
<span>by Sylvain Henry</span>
<i>at 2021-11-15T13:19:42-05:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>Hadrian: fix windows cross-build (#20657)

Many small things to fix:

* Hadrian: platform triple is "x86_64-w64-mingw32" and this wasn't recognized by
  Hadrian (note "w64" instead of "unknown")

* Hadrian was using the build platform ("isWindowsHost") to detect
  the use of the Windows toolchain, which was wrong. We now use the
  "targetOs" setting.

* Hadrian was doing the same thing for Darwin so we fixed both at once,
  even if cross-compilation to Darwin is unlikely to happen afaik (cf
  "osxHost" vs "osxTarget" changes)

* Hadrian: libffi name was computed in two different places and one of
  them wasn't taking the different naming on Windows into account.

* Hadrian was passing "-Irts/include" when building the stage1 compiler
  leading to the same error as in #18143 (which is using make).
  stage1's RTS is stage0's one so mustn't do this.

* Hadrian: Windows linker doesn't seem to support "-zorigin" so we
  don't pass it (similarly to Darwin)

* Hadrian: hsc2hs in cross-compilation mode uses a trick (taken from
  autoconf): it defines "static int test_array[SOME_EXPR]" where
  SOME_EXPR is a constant expression. However GCC reports an error
  because SOME_EXPR is supposedly not constant. This is fixed by using
  another method enabled with the `--via-asm` flag of hsc2hs. It has been
  fixed in `make` build system (5f6fcf7808b16d066ad0fb2068225b3f2e8363f7)
  but not in Hadrian.

* Hadrian: some packages are specifically built only on Windows but they
  shouldn't be when building a cross-compiler (`touchy` and
  `ghci-wrapper`). We now correctly detect this case and disable these
  packages.

* Base: we use `iNVALID_HANDLE_VALUE` in a few places. It fixed some
  hsc2hs issues before we switched to `--via-asm` (see above). I've kept
  these changes are they make the code nicer.

* Base: `base`'s configure tries to detect if it is building for Windows
  but for some reason the `$host_alias` value is `x86_64-windows` in my
  case and it wasn't properly detected.

* Base: libraries/base/include/winio_structs.h imported "Windows.h" with
  a leading uppercase. It doesn't work on case-sensitive systems when
  cross-compiling so we have to use "windows.h".

* RTS: rts/win32/ThrIOManager.c was importin "rts\OSThreads.h" but this
  path isn't valid when cross-compiling. We replaced "\" with "/".

* DeriveConstants: this tool derives the constants from the target
  RTS header files. However these header files define `StgAsyncIOResult`
  only when `mingw32_HOST_OS` is set hence it seems we have to set it
  explicitly.
  Note that deriveConstants is called more than once (why? there is
  only one target for now so it shouldn't) and in the second case this
  value is correctly defined (probably coming indirectly from the import
  of "rts/PosixSource.h"). A better fix would probably be to disable the
  unneeded first run of deriveconstants.
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/cc635da167fdec2dead0603b0026cb841f0aa645" style="color: #1068bf;">cc635da1</a></strong>
<div>
<span>by Richard Eisenberg</span>
<i>at 2021-11-15T13:20:18-05:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>Link to ghc-proposals repo from README

A potential contributor said that they weren't aware of
ghc-proposals. This might increase visibility.
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/a8e1a75673e9c79a1504f16e87c6bd57488b3fbc" style="color: #1068bf;">a8e1a756</a></strong>
<div>
<span>by Ben Gamari</span>
<i>at 2021-11-16T03:12:34-05:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>gitlab-ci: Refactor toolchain provision

This makes it easier to invoke ci.sh on Darwin by teaching it to manage
the nix business.
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/1f0014a852e9b0a1553bc7a29b5844b4a81d950f" style="color: #1068bf;">1f0014a8</a></strong>
<div>
<span>by Ben Gamari</span>
<i>at 2021-11-16T03:12:34-05:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>gitlab-ci: Fail if dynamic references are found in a static bindist

Previously we called error, which just prints an error, rather than
fail, which actually fails.
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/85f2c0ba760377e68673d9efb336ac762e04683c" style="color: #1068bf;">85f2c0ba</a></strong>
<div>
<span>by Ben Gamari</span>
<i>at 2021-11-16T03:12:34-05:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>gitlab-ci/darwin: Move SDK path discovery into toolchain.nix

Reduce a bit of duplication and a manual step when running builds
manually.
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/3e94b5a7ebddf156f00599c6bd2e9ba1af437a6c" style="color: #1068bf;">3e94b5a7</a></strong>
<div>
<span>by John Ericson</span>
<i>at 2021-11-16T03:13:10-05:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>Make: Get rid of `BUILD_.*_INCLUDE_DIRS`

First, we improve some of the rules around -I include dirs, and CPP
opts.

Then, we just specify the RTS's include dirs normally (locally per the
package and in the package conf), and then everything should work
normally.

The primops.txt.pp rule needs no extra include dirs at all, as it no
longer bakes in a target platfom.

Reverts some of the extra stage arguments I added in
05419e55cab272ed39790695f448b311f22669f7, as they are no longer needed.
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/083a7583d70c190b090fedcf9f955eff65d4baeb" style="color: #1068bf;">083a7583</a></strong>
<div>
<span>by Ben Gamari</span>
<i>at 2021-11-17T05:10:27-05:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>Increase type sharing

Fixes #20541 by making mkTyConApp do more sharing of types.
In particular, replace

* BoxedRep Lifted    ==>  LiftedRep
* BoxedRep Unlifted  ==>  UnliftedRep
* TupleRep '[]       ==>  ZeroBitRep
* TYPE ZeroBitRep    ==>  ZeroBitType

In each case, the thing on the right is a type synonym
for the thing on the left, declared in ghc-prim:GHC.Types.
See Note [Using synonyms to compress types] in GHC.Core.Type.

The synonyms for ZeroBitRep and ZeroBitType are new, but absolutely
in the same spirit as the other ones.   (These synonyms are mainly
for internal use, though the programmer can use them too.)

I also renamed GHC.Core.Ty.Rep.isVoidTy to isZeroBitTy, to be
compatible with the "zero-bit" nomenclature above.  See discussion
on !6806.

There is a tricky wrinkle: see GHC.Core.Types
  Note [Care using synonyms to compress types]

Compiler allocation decreases by up to 0.8%.
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/20a4f2513d67a454edaa207bac97a9dd6f4db757" style="color: #1068bf;">20a4f251</a></strong>
<div>
<span>by Ben Gamari</span>
<i>at 2021-11-17T05:11:03-05:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>hadrian: Factor out --extra-*-dirs=... pattern

We repeated this idiom quite a few times. Give it a name.
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/4cec6cf284d65449bbdaf015fadd7768770ec52b" style="color: #1068bf;">4cec6cf2</a></strong>
<div>
<span>by Ben Gamari</span>
<i>at 2021-11-17T05:11:03-05:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>hadrian: Ensure that term.h is in include search path

terminfo now requires term.h but previously neither build system offered
any way to add the containing directory to the include search path. Fix
this in Hadrian.

Also adds libnuma includes to global include search path as it was
inexplicably missing earlier.
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/29086749b8d6bec162414fbec8921df0382d0627" style="color: #1068bf;">29086749</a></strong>
<div>
<span>by Sebastian Graf</span>
<i>at 2021-11-17T05:11:38-05:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>Pmc: Don't case split on wildcard matches (#20642)

Since 8.10, when formatting a pattern match warning, we'd case split on a
wildcard match such as
```hs
foo :: [a] -> [a]
foo [] = []
foo xs = ys
  where
  (_, ys@(_:_)) = splitAt 0 xs
-- Pattern match(es) are non-exhaustive
-- In a pattern binding:
--     Patterns not matched:
--         ([], [])
--         ((_:_), [])
```
But that's quite verbose and distracts from which part of the pattern was
actually the inexhaustive one. We'd prefer a wildcard for the first pair
component here, like it used to be in GHC 8.8.

On the other hand, case splitting is pretty handy for `-XEmptyCase` to know the
different constructors we could've matched on:
```hs
f :: Bool -> ()
f x = case x of {}
-- Pattern match(es) are non-exhaustive
-- In a pattern binding:
--     Patterns not matched:
--         False
--         True
```
The solution is to communicate that we want a top-level case split to
`generateInhabitingPatterns` for `-XEmptyCase`, which is exactly what
this patch arranges. Details in `Note [Case split inhabiting patterns]`.

Fixes #20642.
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/c591ab1f951586cb4ec81ecb96571a6ed240888b" style="color: #1068bf;">c591ab1f</a></strong>
<div>
<span>by Sebastian Graf</span>
<i>at 2021-11-17T05:11:38-05:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>testsuite: Refactor pmcheck all.T
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/33c0c83d565cc87413f98b929e042d5a7d5204bb" style="color: #1068bf;">33c0c83d</a></strong>
<div>
<span>by Andrew Pritchard</span>
<i>at 2021-11-17T05:12:17-05:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>Fix Haddock markup on Data.Type.Ord.OrdCond.
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/7bcd91f45f468abf158753ac46679d4d3aeccd4a" style="color: #1068bf;">7bcd91f4</a></strong>
<div>
<span>by Andrew Pritchard</span>
<i>at 2021-11-17T05:12:17-05:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>Provide in-line kind signatures for Data.Type.Ord.Compare.

Haddock doesn't know how to render SAKS, so the only current way to make
the documentation show the kind is to write what it should say into the
type family declaration.
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/16d86b97ee3056b54441e7dfd349477f32347a26" style="color: #1068bf;">16d86b97</a></strong>
<div>
<span>by ARATA Mizuki</span>
<i>at 2021-11-17T05:12:56-05:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>bitReverse functions in GHC.Word are since base-4.14.0.0, not 4.12.0.0

They were added in 33173a51c77d9960d5009576ad9b67b646dfda3c, which constitutes GHC 8.10.1 / base-4.14.0.0
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/7850142c09090a2eef1e1b0281acd641e843356a" style="color: #1068bf;">7850142c</a></strong>
<div>
<span>by Morrow</span>
<i>at 2021-11-17T11:14:37+00:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>Improve handling of import statements in GHCi (#20473)

Currently in GHCi, when given a line of user input we:

1. Attempt to parse and handle it as a statement
2. Otherwise, attempt to parse and handle a single import
3. Otherwise, check if there are imports present (and if so display an error message)
4. Otherwise, attempt to parse a module and only handle the declarations

This patch simplifies the process to:

Attempt to parse and handle it as a statement
Otherwise, attempt to parse a module and handle the imports and declarations

This means that multiple imports in a multiline are now accepted, and a multiline containing both imports and declarations is now accepted (as well as when separated by semicolons).
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/09d44b4cba9e24c4122fe85dccb80b9876a6b136" style="color: #1068bf;">09d44b4c</a></strong>
<div>
<span>by Zubin Duggal</span>
<i>at 2021-11-18T01:37:36-05:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>hadrian: add threadedDebug RTS way to devel compilers
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/5fa45db7874363b2abfee64d64acf702db289629" style="color: #1068bf;">5fa45db7</a></strong>
<div>
<span>by Zubin Duggal</span>
<i>at 2021-11-18T01:37:36-05:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>testsuite: disable some tests when we don't have dynamic libraries
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/f8c1c549bbb02cb0a943a9ae49dee922c96d85c4" style="color: #1068bf;">f8c1c549</a></strong>
<div>
<span>by Matthew Pickering</span>
<i>at 2021-11-18T01:38:11-05:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>Revert "base: Use one-shot kqueue on macOS"

This reverts commit 41117d71bb58e001f6a2b6a11c9314d5b70b9182</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/f55ae1803ef0eea3f99243be5dc1bd41eeb69048" style="color: #1068bf;">f55ae180</a></strong>
<div>
<span>by Simon Peyton Jones</span>
<i>at 2021-11-18T14:44:45-05:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>Add one line of comments (c.f. !5706)

Ticket #19815 suggested changing coToMCo to use
isReflexiveCo rather than isReflCo.  But perf results
weren't encouraging. This patch just adds a comment to
point to the data, such as it is.
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/12d023d1b4706665645cc0783dd1ae67625357a3" style="color: #1068bf;">12d023d1</a></strong>
<div>
<span>by Vladislav Zavialov</span>
<i>at 2021-11-18T14:45:20-05:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>testsuite: check for FlexibleContexts in T17563

The purpose of testsuite/tests/typecheck/should_fail/T17563.hs is to
make sure we do validity checking on quantified constraints.

In particular, see the following functions in GHC.Tc.Validity:
  * check_quant_pred
  * check_pred_help
  * check_class_pred

The original bug report used a~b constraints as an example of a
constraint that requires validity checking. But with GHC Proposal #371,
equality constraints no longer require GADTs or TypeFamilies; instead,
they require TypeOperators, which are checked earlier in the pipeline,
in the renamer.

Rather than simply remove this test, we change the example to use
another extension: FlexibleContexts. Since we decide whether a
constraint requires this extension in check_class_pred, the regression
test continues to exercise the relevant code path.
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/78d4bca01c1efe481c6ce2356497593d3058fb95" style="color: #1068bf;">78d4bca0</a></strong>
<div>
<span>by Ben Gamari</span>
<i>at 2021-11-18T22:27:20-05:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>ghc-cabal, make: Add support for building C++ object code

Co-Authored By: Matthew Pickering <matthew@well-typed.com>
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/a8b4961b51693531019fb53644f6521a2f707f7d" style="color: #1068bf;">a8b4961b</a></strong>
<div>
<span>by Ben Gamari</span>
<i>at 2021-11-18T22:27:20-05:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>Bump Cabal submodule
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/59e8a90093aa5f37f58047718865fd81887ca6ac" style="color: #1068bf;">59e8a900</a></strong>
<div>
<span>by Ben Gamari</span>
<i>at 2021-11-18T22:27:20-05:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>Bump text and parsec submodules

Accommodates text-2.0.

Metric Decrease:
    T15578
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/7f7d7888572358a4df43b3db6b3bb0061fccfd10" style="color: #1068bf;">7f7d7888</a></strong>
<div>
<span>by Ben Gamari</span>
<i>at 2021-11-18T22:27:20-05:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>ghc-cabal: Use bootstrap compiler's text package

This avoids the need to build `text` without Cabal, in turn avoiding the
need to reproduce the workaround for #20010 contained therein.
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/048f8d965b2f303a083e9e7c537c8b92a8bfb9d6" style="color: #1068bf;">048f8d96</a></strong>
<div>
<span>by Ben Gamari</span>
<i>at 2021-11-18T22:27:20-05:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>gitlab-ci: Bump MACOSX_DEPLOYMENT_TARGET

It appears that Darwin's toolchain includes system headers in the
dependency makefiles it generates with `-M` with older
`MACOSX_DEPLOYMENT_TARGETS`. To avoid this we have bumped the deployment
target for x86-64/Darwin to 10.10.
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/0acbbd2021033245c2fb70e8fc8a79fcab168394" style="color: #1068bf;">0acbbd20</a></strong>
<div>
<span>by Ben Gamari</span>
<i>at 2021-11-18T22:27:20-05:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>testsuite: Use libc++ rather than libstdc++ in objcpp-hi

It appears that libstdc++ is no longer available in recent XCode
distributions.

Closes #16083.
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/aed98ddaf72cc38fb570d8415cac5de9d8888818" style="color: #1068bf;">aed98dda</a></strong>
<div>
<span>by John Ericson</span>
<i>at 2021-11-18T22:27:55-05:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>Hadrian: bring up to date with latest make improvements

Headers should be associated with the RTS, and subject to less hacks.

The most subtle issue was that the package-grained dependencies on
generated files were being `need`ed before calculating Haskell deps, but
not before calculating C/C++ deps.
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/aabff1093f7b80d968c2847d3a3de4280e72391f" style="color: #1068bf;">aabff109</a></strong>
<div>
<span>by Ben Gamari</span>
<i>at 2021-11-20T05:34:27-05:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>Bump deepseq submodule to 1.4.7.0-pre

Addresses #20653.
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/3d6b78dbd19f9061387c60e553638f9c26839d50" style="color: #1068bf;">3d6b78db</a></strong>
<div>
<span>by Matthew Pickering</span>
<i>at 2021-11-20T05:35:02-05:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>Remove unused module import syntax from .bkp mode

.bkp mode had this unused feature where you could write

  module A

and it would go looking for A.hs on the file system and use that rather
than provide the definition inline.

This isn't use anywhere in the testsuite and the code to find the module
A looks dubious. Therefore to reduce .bkp complexity I propose to remove
it.

Fixes #20701
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/bdeea37efc76bc22a0d2e17f66dbf2ae8ad556fc" style="color: #1068bf;">bdeea37e</a></strong>
<div>
<span>by Sylvain Henry</span>
<i>at 2021-11-20T05:35:42-05:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>More support for optional home-unit

This is a preliminary refactoring for #14335 (supporting plugins in
cross-compilers). In many places the home-unit must be optional because
there won't be one available in the plugin environment (we won't be
compiling anything in this environment). Hence we replace "HomeUnit"
with "Maybe HomeUnit" in a few places and we avoid the use of
"hsc_home_unit" (which is partial) in some few others.
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/29e0307185ea98d262e0fca4c5a72503634ebf5b" style="color: #1068bf;">29e03071</a></strong>
<div>
<span>by Ben Gamari</span>
<i>at 2021-11-20T05:36:18-05:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>rts: Ensure that markCAFs marks object code

Previously `markCAFs` would only evacuate CAFs' indirectees. This would
allow reachable object code to be unloaded by the linker as `evacuate`
may never be called on the CAF itself, despite it being reachable via
the `{dyn,revertible}_caf_list`s.

To fix this we teach `markCAFs` to explicit call `markObjectCode`,
ensuring that the linker is aware of objects reachable via the CAF
lists.

Fixes #20649.
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/b2933ea95273f11b05f7ff796a9646a2e912d7fc" style="color: #1068bf;">b2933ea9</a></strong>
<div>
<span>by Ben Gamari</span>
<i>at 2021-11-20T05:36:54-05:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>gitlab-ci: Set HOME to plausible but still non-existent location

We have been seeing numerous CI failures on aarch64/Darwin of the form:

    CI_COMMIT_BRANCH:
    CI_PROJECT_PATH: ghc/ghc
    error: creating directory '/nonexistent': Read-only file system

Clearly *something* is attempting to create `$HOME`. A bit of sleuthing
by @int-e found that the culprit is likely `nix`, although it's not
clear why. For now we avoid the issue by setting `HOME` to a fresh
directory in the working tree.
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/bc7e9f038112496c45aeb81d1504e57acb3722c7" style="color: #1068bf;">bc7e9f03</a></strong>
<div>
<span>by Zubin Duggal</span>
<i>at 2021-11-20T17:39:25+00:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>Use 'NonEmpty' for the fields in an 'HsProjection' (#20389)

T12545 is very inconsistently affected by this change for some reason.
There is a decrease in allocations on most configurations, but
an increase on validate-x86_64-linux-deb9-unreg-hadrian. Accepting it
as it seems unrelated to this patch.

Metric Decrease:
    T12545
Metric Increase:
    T12545
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/742d8b6049c30f3b0cd1704d7a34d865bef41712" style="color: #1068bf;">742d8b60</a></strong>
<div>
<span>by sheaf</span>
<i>at 2021-11-20T18:13:23-05:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>Include "not more specific" info in overlap msg

  When instances overlap, we now include additional information
  about why we weren't able to select an instance: perhaps
  one instance overlapped another but was not strictly more specific,
  so we aren't able to directly choose it.

Fixes #20542
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/f748988bbea1442b898ba107653216543a293b4d" style="color: #1068bf;">f748988b</a></strong>
<div>
<span>by Simon Peyton Jones</span>
<i>at 2021-11-22T11:53:02-05:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>Better wrapper activation calculation

As #20709 showed, GHC could prioritise a wrapper over a SPEC
rule, which is potentially very bad.  This patch fixes that
problem.

The fix is is described in Note [Wrapper activation], especially
item 4, 4a, and Conclusion.

For now, it has a temporary hack (replicating what was there before
to make sure that wrappers inline no earlier than phase 2.  But
it should be temporary; see #19001.
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/f0bac29baea62e7e1cd1a2659107cc7c029c9165" style="color: #1068bf;">f0bac29b</a></strong>
<div>
<span>by Simon Peyton Jones</span>
<i>at 2021-11-22T11:53:02-05:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>Make INLINE/NOINLINE pragmas a bgi less constraining

We can inline a bit earlier than the previous pragmas said.  I think
they dated from an era in which the InitialPhase did no inlining.

I don't think this patch will have much effect, but it's
a bit cleaner.
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/68a3665a73c2a41820587be5a79674321d0793a0" style="color: #1068bf;">68a3665a</a></strong>
<div>
<span>by Sylvain Henry</span>
<i>at 2021-11-22T11:53:47-05:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>Hadrian: bump stackage LTS to 18.18 (GHC 8.10.7)
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/680ef2c8eafa102d8ed5866d5ccf2872f5d0f269" style="color: #1068bf;">680ef2c8</a></strong>
<div>
<span>by Andreas Klebinger</span>
<i>at 2021-11-23T01:07:29-05:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>CmmSink: Be more aggressive in removing no-op assignments.

No-op assignments like R1 = R1 are not only wasteful. They can also
inhibit other optimizations like inlining assignments that read from
R1.

We now check for assignments being a no-op before and after we
simplify the RHS in Cmm sink which should eliminate most of these
no-ops.
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/1ed2aa90da7973283408a8a121103d596b05f81b" style="color: #1068bf;">1ed2aa90</a></strong>
<div>
<span>by Andreas Klebinger</span>
<i>at 2021-11-23T01:07:29-05:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>Don't include types in test output
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/3ab3631f41efe9a1ae32a5b1f709152228edb09a" style="color: #1068bf;">3ab3631f</a></strong>
<div>
<span>by Krzysztof Gogolewski</span>
<i>at 2021-11-23T01:08:05-05:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>Add a warning for GADT match + NoMonoLocalBinds (#20485)

Previously, it was an error to pattern match on a GADT
without GADTs or TypeFamilies.
This is now allowed. Instead, we check the flag MonoLocalBinds;
if it is not enabled, we issue a warning, controlled by -Wgadt-mono-local-binds.

Also fixes #20485: pattern synonyms are now checked too.
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/9dcb2ad15df54e209cfae3dd1f51cf8e8d6c69d5" style="color: #1068bf;">9dcb2ad1</a></strong>
<div>
<span>by Ben Gamari</span>
<i>at 2021-11-23T16:09:39+00:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>gitlab-ci: Bump DOCKER_REV</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/1669037430f968dd25a6339edfc95d6091974b61" style="color: #1068bf;">16690374</a></strong>
<div>
<span>by nineonine</span>
<i>at 2021-11-23T22:32:51-08:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>Combine STG free variable traversals (#17978)

Previously we would traverse the STG AST twice looking for free variables.
 * Once in `annTopBindingsDeps` which considers top level and imported ids free.
   Its output is used to put bindings in dependency order. The pass happens
   in STG pipeline.
 * Once in `annTopBindingsFreeVars` which only considers non-top level ids free.
   Its output is used by the code generator to compute offsets into closures.
   This happens in Cmm (CodeGen) pipeline.

Now these two traversal operations are merged into one - `FVs.depSortWithAnnotStgPgm`.
The pass happens right at the end of STG pipeline. Some type signatures had to be
updated due to slight shifts of StgPass boundaries (for example, top-level CodeGen
handler now directly works with CodeGen flavoured Stg AST instead of Vanilla).

Due to changed order of bindings, a few debugger type reconstruction bugs
have resurfaced again (see tests break018, break021) - work item #18004 tracks this
investigation.

authors: simonpj, nineonine
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/91c0a657aaf4da8d2b01a1bb4a1d9521ef54ea8d" style="color: #1068bf;">91c0a657</a></strong>
<div>
<span>by Matthew Pickering</span>
<i>at 2021-11-25T01:03:17-05:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>Correct retypechecking in --make mode

Note [Hydrating Modules]
~~~~~~~~~~~~~~~~~~~~~~~~

What is hydrating a module?

* There are two versions of a module, the ModIface is the on-disk version and the ModDetails is a fleshed-out in-memory version.
* We can **hydrate** a ModIface in order to obtain a ModDetails.

Hydration happens in three different places

* When an interface file is initially loaded from disk, it has to be hydrated.
* When a module is finished compiling, we hydrate the ModIface in order to generate
  the version of ModDetails which exists in memory (see Note)
* When dealing with boot files and module loops (see Note [Rehydrating Modules])

Note [Rehydrating Modules]
~~~~~~~~~~~~~~~~~~~~~~~~~~~

If a module has a boot file then it is critical to rehydrate the modules on
the path between the two.

Suppose we have ("R" for "recursive"):
```
R.hs-boot:   module R where
               data T
               g :: T -> T

A.hs:        module A( f, T, g ) where
                import {-# SOURCE #-} R
                data S = MkS T
                f :: T -> S = ...g...

R.hs:        module R where
                data T = T1 | T2 S
                g = ...f...
```

After compiling A.hs we'll have a TypeEnv in which the Id for `f` has a type
type uses the AbstractTyCon T; and a TyCon for `S` that also mentions that same
AbstractTyCon. (Abstract because it came from R.hs-boot; we know nothing about
it.)

When compiling R.hs, we build a TyCon for `T`.  But that TyCon mentions `S`, and
it currently has an AbstractTyCon for `T` inside it.  But we want to build a
fully cyclic structure, in which `S` refers to `T` and `T` refers to `S`.

Solution: **rehydration**.  *Before compiling `R.hs`*, rehydrate all the
ModIfaces below it that depend on R.hs-boot.  To rehydrate a ModIface, call
`typecheckIface` to convert it to a ModDetails.  It's just a de-serialisation
step, no type inference, just lookups.

Now `S` will be bound to a thunk that, when forced, will "see" the final binding
for `T`; see [Tying the knot](https://gitlab.haskell.org/ghc/ghc/-/wikis/commentary/compiler/tying-the-knot).
But note that this must be done *before* compiling R.hs.

When compiling R.hs, the knot-tying stuff above will ensure that `f`'s unfolding
mentions the `LocalId` for `g`.  But when we finish R, we carefully ensure that
all those `LocalIds` are turned into completed `GlobalIds`, replete with
unfoldings etc.   Alas, that will not apply to the occurrences of `g` in `f`'s
unfolding. And if we leave matters like that, they will stay that way, and *all*
subsequent modules that import A will see a crippled unfolding for `f`.

Solution: rehydrate both R and A's ModIface together, right after completing R.hs.

We only need rehydrate modules that are
* Below R.hs
* Above R.hs-boot

There might be many unrelated modules (in the home package) that don't need to be
rehydrated.

This dark corner is the subject of #14092.

Suppose we add to our example
```
X.hs     module X where
           import A
           data XT = MkX T
           fx = ...g...
```
If in `--make` we compile R.hs-boot, then A.hs, then X.hs, we'll get a `ModDetails` for `X` that has an AbstractTyCon for `T` in the the argument type of `MkX`.  So:

* Either we should delay compiling X until after R has beeen compiled.
* Or we should rehydrate X after compiling R -- because it transitively depends on R.hs-boot.

Ticket #20200 has exposed some issues to do with the knot-tying logic in GHC.Make, in `--make` mode.
this particular issue starts [here](https://gitlab.haskell.org/ghc/ghc/-/issues/20200#note_385758).

The wiki page [Tying the knot](https://gitlab.haskell.org/ghc/ghc/-/wikis/commentary/compiler/tying-the-knot) is helpful.
Also closely related are
    * #14092
    * #14103

Fixes tickets #20200 #20561
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/f0c5d8d33b669b80cbf715867d30793b0ee7a888" style="color: #1068bf;">f0c5d8d3</a></strong>
<div>
<span>by Matthew Pickering</span>
<i>at 2021-11-25T01:03:17-05:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>Make T14075 more robust
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/6907e9fae4bda5807872073fa98667db327ad0bb" style="color: #1068bf;">6907e9fa</a></strong>
<div>
<span>by Matthew Pickering</span>
<i>at 2021-11-25T01:03:17-05:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>Revert "Convert lookupIdSubst panic back to a warning (#20200)"

This reverts commit df1d808f26544cbb77d85773d672137c65fd3cc7.
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/baa8ffeeb471b72b9bcc3e6a5b4149f488ae01f5" style="color: #1068bf;">baa8ffee</a></strong>
<div>
<span>by Greg Steuck</span>
<i>at 2021-11-25T01:03:54-05:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>Use getExecutablePath in getBaseDir on OpenBSD

While OpenBSD doesn't have a general mechanism for determining the
path of the executing program image, it is reasonable to rely on
argv[0] which happens as a fallback in getExecutablePath.

With this change on top of T18173 we can get a bit close to fixing #18173.
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/e3c59191fbd526a244b5ac71de5d6b6803374aea" style="color: #1068bf;">e3c59191</a></strong>
<div>
<span>by Christiaan Baaij</span>
<i>at 2021-11-25T01:04:32-05:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>Ensure new Ct/evidence invariant

The `ctev_pred` field of a `CtEvidence` is a just a cache for the type
of the evidence.  More precisely:
* For Givens, `ctev_pred` = `varType ctev_evar`
* For Wanteds, `ctev_pred` = `evDestType ctev_dest`

This new invariant is needed because evidence can become part of a
type, via `Castty ty kco`.
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/3639ad8ffbf0bfc2cb600ba138d6bfda2ccd29fe" style="color: #1068bf;">3639ad8f</a></strong>
<div>
<span>by Christiaan Baaij</span>
<i>at 2021-11-25T01:04:32-05:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>Compare types of recursive let-bindings in alpha-equivalence

This commit fixes #20641 by checking the types of recursive
let-bindings when performing alpha-equality.

The `Eq (DeBruijn CoreExpr)` instance now also compares
`BreakPoint`s similarly to `GHC.Core.Utils.eqTickish`, taking
bound variables into account.

In addition, the `Eq (DeBruijn Type)` instance now correctly
compares the kinds of the types when one of them contains a
Cast: the instance is modeled after `nonDetCmpTypeX`.
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/7c65687e5b14eb2f496c25198ddf761546bc4675" style="color: #1068bf;">7c65687e</a></strong>
<div>
<span>by CarrieMY</span>
<i>at 2021-11-25T01:05:11-05:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>Enable UnboxedTuples in `genInst`, Fixes #20524
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/e33412d078c544b19b88cd19bfb3b13a71099378" style="color: #1068bf;">e33412d0</a></strong>
<div>
<span>by Krzysztof Gogolewski</span>
<i>at 2021-11-25T01:05:46-05:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>Misc cleanup

* Remove `getTag_RDR` (unused), `tidyKind` and `tidyOpenKind`
  (already available as `tidyType` and `tidyOpenType`)

* Remove Note [Explicit Case Statement for Specificity].
  Since 0a709dd9876e40 we require GHC 8.10 for bootstrapping.

* Change the warning to `cmpAltCon` to a panic.
  This shouldn't happen.  If it ever does, the code was wrong anyway:
  it shouldn't always return `LT`, but rather `LT` in one case
  and `GT` in the other case.

* Rename `verifyLinearConstructors` to `verifyLinearFields`

* Fix `Note [Local record selectors]` which was not referenced

* Remove vestiges of `type +v`

* Minor fixes to StaticPointers documentation, part of #15603
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/bb71f7f1597476b53678b66feb00bf88b19060bf" style="color: #1068bf;">bb71f7f1</a></strong>
<div>
<span>by Greg Steuck</span>
<i>at 2021-11-25T01:06:25-05:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>Reorder `sed` arguments to work with BSD sed

The order was swapped in 490e8c750ea23ce8e2b7309e0d514b7d27f231bb
causing the build on OpenBSD to fail with:
`sed: 1: "mk/config.h": invalid command code m`
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/c18a51f035622d53bf96b950ec0129b210ab758d" style="color: #1068bf;">c18a51f0</a></strong>
<div>
<span>by John Ericson</span>
<i>at 2021-11-25T01:06:25-05:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>Apply 1 suggestion(s) to 1 file(s)</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/d530c46c89acd85a5cb0d1d1dc87fd1960f654b0" style="color: #1068bf;">d530c46c</a></strong>
<div>
<span>by sheaf</span>
<i>at 2021-11-25T01:07:04-05:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>Add Data.Bits changes to base 4.16 changelog

  Several additions since 4.15 had not been recorded in the changelog:

    - newtypes And, Ior, Xor and Iff,
    - oneBits
    - symbolic synonyms `.^.`, `.>>.`, `!>>.`, `.<<.` and `!<<.`.

  Fixes #20608.
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/4d34bf15e3bebb9f31467278e609f64a3e5b255d" style="color: #1068bf;">4d34bf15</a></strong>
<div>
<span>by Matthew Pickering</span>
<i>at 2021-11-25T01:07:40-05:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>Don't use implicit lifting when deriving Lift

It isn't much more complicated to be more precise when deriving Lift so
we now generate

```
data Foo = Foo Int Bool

instance Lift Foo where
  lift (Foo a b) = [| Foo $(lift a) $(lift b) |]
  liftTyped (Foo a b) = [|| Foo $$(lift a) $$(lift b) |]
```

This fixes #20688 which complained about using implicit lifting in the
derived code.
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/8961d632f34cffd90594406c697712d9dde4a626" style="color: #1068bf;">8961d632</a></strong>
<div>
<span>by Greg Steuck</span>
<i>at 2021-11-25T01:08:18-05:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>Disable warnings for unused goto labels

Clang on OpenBSD aborts compilation with this diagnostics:
```
% "inplace/bin/ghc-stage1" -optc-Wno-error=unused-label -optc-Wall -optc-Werror -optc-Wall -optc-Wextra -optc-Wstrict-prototypes -optc-Wmissing-prototypes -optc-Wmissing-declarations -optc-Winline -optc-Wpointer-arith -optc-Wmissing-noreturn -optc-Wnested-externs -optc-Wredundant-decls -optc-Wno-aggregate-return -optc-fno-strict-aliasing -optc-fno-common -optc-Irts/dist-install/build/./autogen -optc-Irts/include/../dist-install/build/include -optc-Irts/include/. -optc-Irts/. -optc-DCOMPILING_RTS -optc-DFS_NAMESPACE=rts -optc-Wno-unknown-pragmas -optc-O2 -optc-fomit-frame-pointer -optc-g -optc-DRtsWay=\"rts_v\" -static  -O0 -H64m -Wall -fllvm-fill-undef-with-garbage    -Werror -this-unit-id rts -dcmm-lint     -package-env - -i -irts -irts/dist-install/build -Irts/dist-install/build -irts/dist-install/build/./autogen -Irts/dist-install/build/./autogen -Irts/include/../dist-install/build/include -Irts/include/. -Irts/. -optP-DCOMPILING_RTS -optP-DFS_NAMESPACE=rts        -O2 -Wcpp-undef   -Wnoncanonical-monad-instances  -c rts/linker/Elf.c -o rts/dist-install/build/linker/Elf.o

rts/linker/Elf.c:2169:1: error:
     error: unused label 'dl_iterate_phdr_fail' [-Werror,-Wunused-label]
     |
2169 | dl_iterate_phdr_fail:
     | ^
dl_iterate_phdr_fail:
^~~~~~~~~~~~~~~~~~~~~

rts/linker/Elf.c:2172:1: error:
     error: unused label 'dlinfo_fail' [-Werror,-Wunused-label]
     |
2172 | dlinfo_fail:
     | ^
dlinfo_fail:
^~~~~~~~~~~~
2 errors generated.
```
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/5428b8c689111c11a71c81ffb58b617d3158634f" style="color: #1068bf;">5428b8c6</a></strong>
<div>
<span>by Zubin Duggal</span>
<i>at 2021-11-25T01:08:54-05:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>testsuite: debounce title updates
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/96b3899efc578f467037f6282551b7aae510081a" style="color: #1068bf;">96b3899e</a></strong>
<div>
<span>by Ben Gamari</span>
<i>at 2021-11-25T01:09:29-05:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>gitlab-ci: Add release jobs for Darwin targets

As noted in #20707, the validate jobs which we previously used lacked
profiling support.

Also clean up some variable definitions.

Fixes #20707.
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/52cdc2fe84b5d27de10845795ef56d0c89ff3091" style="color: #1068bf;">52cdc2fe</a></strong>
<div>
<span>by Pepe Iborra</span>
<i>at 2021-11-25T05:00:43-05:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>Monoid instance for InstalledModuleEnv
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/47f36440075b766dcb0bab75ff6d51c6e6c843b2" style="color: #1068bf;">47f36440</a></strong>
<div>
<span>by Pepe Iborra</span>
<i>at 2021-11-25T05:00:43-05:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>Drop  instance Semigroup ModuleEnv

There is more than one possible Semigroup and it is not needed since plusModuleEnv can be used directly
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/b742475a2388b8d8a0905f6eb23a8e4fb652f77f" style="color: #1068bf;">b742475a</a></strong>
<div>
<span>by Pepe Iborra</span>
<i>at 2021-11-25T05:00:43-05:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>drop instance Semigroup InstalledModuleEnv

Instead, introduce plusInstalledModuleEnv
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/b24e8d912cf3fe37a132c91fa640939fcff79215" style="color: #1068bf;">b24e8d91</a></strong>
<div>
<span>by Roland Senn</span>
<i>at 2021-11-25T05:01:21-05:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>GHCi Debugger - Improve RTTI

When processing the heap, use also `APClosures` to create additional type
constraints. This adds more equations and therefore improves the unification
process to infer the correct type of values at breakpoints.
(Fix the `incr` part of #19559)
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/cf5279ed3733943eabd5fcd2dccab119ebfab9c2" style="color: #1068bf;">cf5279ed</a></strong>
<div>
<span>by Gergo ERDI</span>
<i>at 2021-11-25T05:01:59-05:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>Use `simplify` in non-optimizing build pipeline (#20500)
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/c9cead1ff7c5d3304543d52522ef4da96b802652" style="color: #1068bf;">c9cead1f</a></strong>
<div>
<span>by Gergo ERDI</span>
<i>at 2021-11-25T05:01:59-05:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>Add specific optimization flag for fast PAP calls (#6084, #20500)
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/be0a9470ad76f7dc63e05a84215a2a4d0fd833fd" style="color: #1068bf;">be0a9470</a></strong>
<div>
<span>by Gergo ERDI</span>
<i>at 2021-11-25T05:01:59-05:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>Add specific optimization flag for Cmm control flow analysis (#20500)
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/b52a9a3fa3caf6672fa8c04ac3bd1df353af44cf" style="color: #1068bf;">b52a9a3f</a></strong>
<div>
<span>by Gergo ERDI</span>
<i>at 2021-11-25T05:01:59-05:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>Add `llvmOptLevel` to `DynFlags` (#20500)
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/f27a63fe12c60e6d6ec52e286dd0a0980eae206d" style="color: #1068bf;">f27a63fe</a></strong>
<div>
<span>by sheaf</span>
<i>at 2021-11-25T05:02:39-05:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>Allow boring class declarations in hs-boot files

  There are two different ways of declaring a class in an hs-boot file:

    - a full declaration, where everything is written as it is
      in the .hs file,
    - an abstract declaration, where class methods and superclasses
      are left out.

  However, a declaration with no methods and a trivial superclass,
  such as:

    class () => C a

  was erroneously considered to be an abstract declaration, because
  the superclass is trivial.
  This is remedied by a one line fix in GHC.Tc.TyCl.tcClassDecl1.

  This patch also further clarifies the documentation around
  class declarations in hs-boot files.

  Fixes #20661, #20588.
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/cafb1f999401df00941193b004074f258d2af480" style="color: #1068bf;">cafb1f99</a></strong>
<div>
<span>by Ben Gamari</span>
<i>at 2021-11-25T05:03:15-05:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>compiler: Mark GHC.Prelude as Haddock no-home

This significantly improves Haddock documentation generated by nix.
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/bd92c9b207143532827008ec2ea1be55f30843cb" style="color: #1068bf;">bd92c9b2</a></strong>
<div>
<span>by Sebastian Graf</span>
<i>at 2021-11-25T05:03:51-05:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>hadrian: Add `collect_stats` flavour transformer

This is useful for later consumption with
https://gitlab.haskell.org/bgamari/ghc-utils/-/blob/master/ghc_timings.py
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/774fc4d63f920d4f8057450c3d50a483b025a536" style="color: #1068bf;">774fc4d6</a></strong>
<div>
<span>by Ilias Tsitsimpis</span>
<i>at 2021-11-25T08:34:54-05:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>Link against libatomic for 64-bit atomic operations

Some platforms (e.g., armel) require linking against libatomic for
64-bit atomic operations.

Fixes #20549
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/20101d9ca016fca17605dd4f641640a60bdadca4" style="color: #1068bf;">20101d9c</a></strong>
<div>
<span>by Greg Steuck</span>
<i>at 2021-11-25T08:35:31-05:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>Permit multiple values in config_args for validate

The whitespace expansion should be permitted to pass multiple
arguments to configure.
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/e2c48b98c6a201eae09b4c84e73bb77608d03ec8" style="color: #1068bf;">e2c48b98</a></strong>
<div>
<span>by Greg Steuck</span>
<i>at 2021-11-25T08:36:09-05:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>Kill a use of %n format specifier

This format has been used as a security exploit vector for decades
now.  Some operating systems (OpenBSD, Android, MSVC). It is targeted
for removal in C2X standard:
http://www.open-std.org/jtc1/sc22/wg14/www/docs/n2834.htm

This requires extending the debug message function to return the
number of bytes written (like printf(3)), to permit %n format
specifier in one in one invocation of statsPrintf() in
report_summary().

Implemented by Matthias Kilian (kili<AT>outback.escape.de)
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/ff0c45f367ff6e978e9f48cfce7ab5d6ceebb1d5" style="color: #1068bf;">ff0c45f3</a></strong>
<div>
<span>by Bodigrim</span>
<i>at 2021-11-26T16:01:09-05:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>Rename Data.ByteArray to Data.Array.ByteArray + add Trustworthy
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/9907d54098b5b40c9ddb300833e4aa0e57ddb1c6" style="color: #1068bf;">9907d540</a></strong>
<div>
<span>by Bodigrim</span>
<i>at 2021-11-26T16:01:09-05:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>Rename Data.Array.ByteArray -> Data.Array.Byte
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/0c8e1b4db3bee70cbd06251f6410106a870ddbe2" style="color: #1068bf;">0c8e1b4d</a></strong>
<div>
<span>by Kai Prott</span>
<i>at 2021-11-26T16:01:47-05:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>Improve error message for mis-typed plugins #20671

Previously, when a plugin could not be loaded because it was incorrectly typed, the error message only printed the expected but not the actual type. 
This commit augments the error message such that both types are printed and the corresponding module is printed as well.</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/51bcb986f786229df6b5ff3726570eba74fcb9d0" style="color: #1068bf;">51bcb986</a></strong>
<div>
<span>by Kai Prott</span>
<i>at 2021-11-26T16:01:47-05:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>Remove duplicate import
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/1830eea7a4053bf1973222c4750cd2796470d55f" style="color: #1068bf;">1830eea7</a></strong>
<div>
<span>by Kai Prott</span>
<i>at 2021-11-26T16:01:47-05:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>Simplify printQualification

</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/69e62032a5a6db046b14f1e9b31d657818d9fb92" style="color: #1068bf;">69e62032</a></strong>
<div>
<span>by Kai Prott</span>
<i>at 2021-11-26T16:01:47-05:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>Fix plugin type to GHC.Plugins.Plugin

</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/0a6776a3ce6a54d886439fc20991f7a8ac706eb2" style="color: #1068bf;">0a6776a3</a></strong>
<div>
<span>by Kai Prott</span>
<i>at 2021-11-26T16:01:47-05:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>Adapt plugin test case

</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/7e18b3041321b19876e74b88ffed3b44e4665c23" style="color: #1068bf;">7e18b304</a></strong>
<div>
<span>by Kai Prott</span>
<i>at 2021-11-26T16:01:47-05:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>Reflect type change in the haddock comment
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/02372be119bd1a4e7099d2c7d5bb3de096e99409" style="color: #1068bf;">02372be1</a></strong>
<div>
<span>by Matthew Pickering</span>
<i>at 2021-11-26T16:02:23-05:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>Allow keywords which can be used as variables to be used with OverloadedDotSyntax

There are quite a few keywords which are allowed to be used as
variables. Such as "as", "dependency" etc. These weren't accepted by
OverloadedDotSyntax.

The fix is pretty simple, use the varid production rather than raw
VARID.

Fixes #20723
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/13ef345ce8ccb8d135659bf341c12ad39a688708" style="color: #1068bf;">13ef345c</a></strong>
<div>
<span>by John Ericson</span>
<i>at 2021-11-27T19:41:11+00:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>Factor our `FP_CAPITALIZE_YES_NO`

This deduplicates converting from yes/no to YES/NO in the configure
scripts while also making it safer.
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/88481c942a24e8ffa1705fc51b0bc900ca311ea7" style="color: #1068bf;">88481c94</a></strong>
<div>
<span>by John Ericson</span>
<i>at 2021-11-27T19:46:16+00:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>Fix top-level configure script so --disable-foo works
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/f67060c6dcc2ba14949ab5e8a4ffe46bceadc14f" style="color: #1068bf;">f67060c6</a></strong>
<div>
<span>by John Ericson</span>
<i>at 2021-11-27T19:47:09+00:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>Make ambient MinGW support a proper settings

Get rid of `USE_INPLACE_MINGW_TOOLCHAIN` and use a settings file entry
instead.

The CPP setting was originally introduced in f065b6b012.
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/1dc0d7af974cbd88a7aa70ba61fc0d7369a20433" style="color: #1068bf;">1dc0d7af</a></strong>
<div>
<span>by Ben Gamari</span>
<i>at 2021-11-29T11:02:43-05:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>linker: Introduce linker_verbose debug output

This splits the -Dl RTS debug output into two distinct flags:

 * `+RTS -Dl` shows errors and debug output which scales with at most
   O(# objects)
 * `+RTS -DL` shows debug output which scales with O(# symbols)t
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/7ea665bfed7c9915038d8ea6cb820479970a10fa" style="color: #1068bf;">7ea665bf</a></strong>
<div>
<span>by Krzysztof Gogolewski</span>
<i>at 2021-11-29T11:03:19-05:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>TTG: replace Void/NoExtCon with DataConCantHappen

There were two ways to indicate that a TTG constructor is unused in a phase:
`NoExtCon` and `Void`. This unifies the code, and uses the name
'DataConCantHappen', following the discussion at MR 7041.

Updates haddock submodule
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/14e9cab675f5b0abf2c303a0aa455237768103d1" style="color: #1068bf;">14e9cab6</a></strong>
<div>
<span>by Sylvain Henry</span>
<i>at 2021-11-29T11:04:03-05:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>Use Monoid in hptSomeThingsBelowUs

It seems to have a moderate but good impact on perf tests in CI.

In particular:

  MultiLayerModules(normal) ghc/alloc  3125771138.7  3065532240.0  -1.9%

So it's likely that huge projects will benefit from this.
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/22bbf449a5e4dd260b92ae19de180e9cc34e1d81" style="color: #1068bf;">22bbf449</a></strong>
<div>
<span>by Anton-Latukha</span>
<i>at 2021-11-29T20:03:52+00:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>docs/users_guide/bugs.rst: Rewording

It is either "slightly" || "significantly".

If it is "bogus" - then no quotes around "optimization" & overall using
word "bogus" or use quotes in that way in documentation is... Instead,
something like "hack" or "heuristic" can be used there.
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/9345bfeda8f463d3fc79054166cb90fe89ea3469" style="color: #1068bf;">9345bfed</a></strong>
<div>
<span>by Mitchell Rosen</span>
<i>at 2021-11-30T01:32:22-05:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>Fix caluclation of nonmoving GC elapsed time

Fixes #20751
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/c7613493e637718492f03c2f9a020198244a7b18" style="color: #1068bf;">c7613493</a></strong>
<div>
<span>by PHO</span>
<i>at 2021-12-01T03:07:32-05:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>rts/ProfHeap.c: Use setlocale() on platforms where uselocale() is not available

Not all platforms have per-thread locales. NetBSD doesn't have uselocale() in particular. Using setlocale() is of course not a safe thing to do, but it would be better than no GHC at all.
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/4acfa0db473fa04a434c38b44da195d5c4455956" style="color: #1068bf;">4acfa0db</a></strong>
<div>
<span>by Ben Gamari</span>
<i>at 2021-12-01T03:08:07-05:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>rts: Refactor SRT representation selection

The goal here is to make the SRT selection logic a bit clearer and allow
configurations which we currently don't support (e.g. using a full word
in the info table even when TNTC is used).
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/87bd9a675441513871de55c3cca47a7bb3341639" style="color: #1068bf;">87bd9a67</a></strong>
<div>
<span>by Ben Gamari</span>
<i>at 2021-12-01T03:08:07-05:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>gitlab-ci: Introduce no_tntc job

A manual job for testing the non-tables-next-to-code configuration.
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/7acb945d443e26c7e51850c9c51321b0a5a7978a" style="color: #1068bf;">7acb945d</a></strong>
<div>
<span>by Carrie Xu</span>
<i>at 2021-12-01T03:08:46-05:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>Dump non-module specific info to file #20316

- Change the dumpPrefix to FilePath, and default to non-module
- Add dot to seperate dump-file-prefix and suffix
- Modify user guide to introduce how dump files are named
- This commit does not affect Ghci dump file naming.

See also #17500
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/7bdca2ba9802e5c1c334b2cd23e6cc2010a79346" style="color: #1068bf;">7bdca2ba</a></strong>
<div>
<span>by Ben Gamari</span>
<i>at 2021-12-01T03:09:21-05:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>rts/RtsSymbols: Provide a proper prototype for environ

Previously we relied on Sym_NeedsProto, but this gave the symbol a type
which conflicts with the definition that may be provided by unistd.h.

Fixes #20577.
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/91d1a773891e4b9fdb8d1d4f0bc4d6426d76b7cf" style="color: #1068bf;">91d1a773</a></strong>
<div>
<span>by Ben Gamari</span>
<i>at 2021-12-01T03:09:21-05:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>hadrian: Don't pass empty paths via -I

Previously we could in some cases add empty paths to `cc`'s include file
search path. See #20578.
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/d8d57729e1630229b2810abfc7eda78c4a08eec8" style="color: #1068bf;">d8d57729</a></strong>
<div>
<span>by Ben Gamari</span>
<i>at 2021-12-01T03:09:21-05:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>ghc-cabal: Manually specify -XHaskell2010

Otherwise we end up with issues like #19631 when bootstrapping using GHC
9.2 and above.

Fixes #19631.
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/1c0c140aee48e35a2afdb4fa2b0ecc4fd08d3893" style="color: #1068bf;">1c0c140a</a></strong>
<div>
<span>by Ben Gamari</span>
<i>at 2021-12-01T03:09:21-05:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>ghc-compact: Update cabal file

Improve documentation, bump bounds and cabal-version.
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/322b6b457debdfaa4b013f3120cc48c2ac4a5d13" style="color: #1068bf;">322b6b45</a></strong>
<div>
<span>by Ben Gamari</span>
<i>at 2021-12-01T03:09:21-05:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>hadrian: Document fully_static flavour transformer
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/4c434c9e3bf3c906285d168bfd98e1b276808f47" style="color: #1068bf;">4c434c9e</a></strong>
<div>
<span>by Ben Gamari</span>
<i>at 2021-12-01T03:09:21-05:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>user-guide: Fix :since: of -XCApiFFI

Closes #20504.
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/0833ad5516738ebd65907cad17a383da9e3bded9" style="color: #1068bf;">0833ad55</a></strong>
<div>
<span>by Matthew Pickering</span>
<i>at 2021-12-01T03:09:58-05:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>Add failing test for #20674
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/c2cb5e9a72cc97c2ad16217813f5826782541afd" style="color: #1068bf;">c2cb5e9a</a></strong>
<div>
<span>by Ben Gamari</span>
<i>at 2021-12-01T03:10:34-05:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>testsuite: Print geometric mean of stat metrics

As suggested in #20733.
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/59b2794550611879362c7170d6005c6b4f08e3c5" style="color: #1068bf;">59b27945</a></strong>
<div>
<span>by Ben Gamari</span>
<i>at 2021-12-01T03:11:09-05:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>users-guide: Describe requirements of DWARF unwinding

As requested in #20702
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/c2f6cbef77203b7698f6484719ed9902f905496c" style="color: #1068bf;">c2f6cbef</a></strong>
<div>
<span>by Matthew Pickering</span>
<i>at 2021-12-01T03:11:45-05:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>Fix several quoting issues in testsuite

This fixes the ./validate script on my machine.

I also took the step to add some linters which would catch problems like
these in future.

Fixes #20506
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/bffd407410e00935f0098dbfda3bc2b402a36e04" style="color: #1068bf;">bffd4074</a></strong>
<div>
<span>by John Ericson</span>
<i>at 2021-12-01T03:12:21-05:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>rts.cabal.in: Move `extra-source-files` so it is valid
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/86c14db5fdd07fe94a7c9016368f0d7cc6a02be8" style="color: #1068bf;">86c14db5</a></strong>
<div>
<span>by John Ericson</span>
<i>at 2021-12-01T03:12:21-05:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>Switch RTS cabal file / package conf to use Rts.h not Stg.h

When we give cabal a configure script, it seems to begin checking
whether or not Stg.h is valid, and then gets tripped up on all the
register stuff which evidentally requires obscure command line flags to
go.

We can side-step this by making the test header Rts.h instead, which is
more normal.

I was a bit sketched out making this change, as I don't know why the
Cabal library would suddenly beging checking the header. But I did
confirm even without my RTS configure script the header doesn't compile
stand-alone, and also the Stg.h is a probably-arbitrary choice since it
dates all the way back to 2002 in
2cc5b907318f97e19b28b2ad8ed9ff8c1f401dcc.
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/defd8d548572f04765a3f056e5d6181101528342" style="color: #1068bf;">defd8d54</a></strong>
<div>
<span>by John Ericson</span>
<i>at 2021-12-01T03:12:21-05:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>Avoid raw `echo` in `FPTOOLS_SET_PLATFORM_VARS`

This ensures quiet configuring works.
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/b53f122749af4dec41e3b4fde4c4c3bfcd459982" style="color: #1068bf;">b53f1227</a></strong>
<div>
<span>by John Ericson</span>
<i>at 2021-12-01T03:12:21-05:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>Factor our `$dir_$distdir_PKGDATA` make variable

This makes a few things cleaner.
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/f124f2a0ca3ba2b80839d8f107763ffe3b48b6e0" style="color: #1068bf;">f124f2a0</a></strong>
<div>
<span>by Ben Gamari</span>
<i>at 2021-12-01T03:12:56-05:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>rts: Annotate benign race in pthread ticker's exit test

Previously TSAN would report spurious data races due to
the unsynchronized access of `exited`. I would have thought
that using a relaxed load on `exited` would be enough to convince
TSAN that the race was intentional, but apparently not.

Closes #20690.</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/d3c7f9be47ac99637ac0ede0759f77da320afaad" style="color: #1068bf;">d3c7f9be</a></strong>
<div>
<span>by Viktor Dukhovni</span>
<i>at 2021-12-01T03:13:34-05:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>Use POSIX shell syntax to redirect stdout/err

FreeBSD (and likely NetBSD) /bin/sh does not support '>& word' to
redirect stdout + stderr.  (Also the preferred syntax in bash would
be '&> word' to avoid surprises when `word` is "-" or a number).

Resolves: #20760
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/1724ac37633b2796e2410296e8a34bc8e1fa4934" style="color: #1068bf;">1724ac37</a></strong>
<div>
<span>by Ben Gamari</span>
<i>at 2021-12-02T18:13:30-05:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>nativeGen/x86: Don't encode large shift offsets

Handle the case of a shift larger than the width of the shifted value.
This is necessary since x86 applies a mask of 0x1f to the shift amount,
meaning that, e.g., `shr 47, $eax` will actually shift by
47 & 0x1f == 15.

See #20626.

(cherry picked from commit 31370f1afe1e2f071b3569fb5ed4a115096127ca)
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/5b950a7f939a35538abf61ea8e86ddd07cc75237" style="color: #1068bf;">5b950a7f</a></strong>
<div>
<span>by Ben Gamari</span>
<i>at 2021-12-02T18:13:30-05:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>cmm: narrow when folding signed quotients

Previously the constant-folding behavior for MO_S_Quot and MO_S_Rem
failed to narrow its arguments, meaning that a program like:

    %zx64(%quot(%lobits8(0x00e1::bits16), 3::bits8))

would be miscompiled. Specifically, this program should reduce as

                %lobits8(0x00e1::bits16)                 == -31
          %quot(%lobits8(0x00e1::bits16), 3::bits8)      == -10
    %zx64(%quot(%lobits8(0x00e1::bits16), 3::bits8))     == 246

However, with this bug the `%lobits8(0x00e1::bits16)` would instead
be treated as `+31`, resulting in the incorrect result of `75`.

(cherry picked from commit 94e197e3dbb9a48991eb90a03b51ea13d39ba4cc)
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/78b78ac463b0b8aad688edcea3c4af447854b929" style="color: #1068bf;">78b78ac4</a></strong>
<div>
<span>by Ben Gamari</span>
<i>at 2021-12-02T18:13:30-05:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>ncg/aarch64: Don't sign extend loads

Previously we would emit the sign-extending LDS[HB] instructions for
sub-word loads. However, this is wrong, as noted in #20638.
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/35bbc251b5b0b1292b1335ad2aed349e8a5b79d1" style="color: #1068bf;">35bbc251</a></strong>
<div>
<span>by Ben Gamari</span>
<i>at 2021-12-02T18:13:30-05:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>cmm: Disallow shifts larger than shiftee

Previously primops.txt.pp stipulated that the word-size shift primops
were only defined for shift offsets in [0, word_size). However, there
was no further guidance for the definition of Cmm's sub-word size shift
MachOps.

Here we fix this by explicitly disallowing (checked in many cases by
CmmLint) shift operations where the shift offset is larger than the
shiftee. This is consistent with LLVM's shift operations, avoiding the
miscompilation noted in #20637.
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/2f6565cf5edd1d8b2d95f7c97d5875c05939c0ed" style="color: #1068bf;">2f6565cf</a></strong>
<div>
<span>by Ben Gamari</span>
<i>at 2021-12-02T18:13:30-05:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>testsuite: Add testcases for various machop issues

There were found by the test-primops testsuite.
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/7094f4faeb78a3ffda98c44700b4addba3f5b951" style="color: #1068bf;">7094f4fa</a></strong>
<div>
<span>by Ben Gamari</span>
<i>at 2021-12-02T18:13:30-05:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>nativeGen/aarch64: Don't rely on register width to determine amode

We might be loading, e.g., a 16- or 8-bit value, in which case the
register width is not reflective of the loaded element size.
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/9c65197e0aec9a4ee11e377dac52f459ac64067a" style="color: #1068bf;">9c65197e</a></strong>
<div>
<span>by Ben Gamari</span>
<i>at 2021-12-02T18:13:30-05:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>cmm/opt: Fold away shifts larger than shiftee width

This is necessary for lint-correctness since we no longer allow such
shifts in Cmm.
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/adc7f108141a973b6dcb02a7836eed65d61230e8" style="color: #1068bf;">adc7f108</a></strong>
<div>
<span>by Ben Gamari</span>
<i>at 2021-12-02T18:13:30-05:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>nativeGen/aarch64: Fix handling of subword values

Here we rework the handling of sub-word operations in the AArch64
backend, fixing a number of bugs and inconsistencies. In short,
we now impose the invariant that all subword values are represented in
registers in zero-extended form. Signed arithmetic operations are then
responsible for sign-extending as necessary.

Possible future work:

 * Use `CMP`s extended register form to avoid burning an instruction
   in sign-extending the second operand.

 * Track sign-extension state of registers to elide redundant sign
   extensions in blocks with frequent sub-word signed arithmetic.
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/e19e9e71739ffd01d6557256b59b3bd26651a4ad" style="color: #1068bf;">e19e9e71</a></strong>
<div>
<span>by Ben Gamari</span>
<i>at 2021-12-02T18:13:31-05:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>CmmToC: Fix width of shift operations

Under C's implicit widening rules, the result of an operation like (a >>
b) where a::Word8 and b::Word will have type Word, yet we want Word.
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/ebaf7333b83b8838de138105337962623c0c6239" style="color: #1068bf;">ebaf7333</a></strong>
<div>
<span>by Ben Gamari</span>
<i>at 2021-12-02T18:13:31-05:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>CmmToC: Zero-extend sub-word size results

As noted in Note [Zero-extending sub-word signed results] we must
explicitly zero-extend the results of sub-word-sized signed operations.
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/0aeaa8f35025d49bbb85c867a86baf23330d17a1" style="color: #1068bf;">0aeaa8f3</a></strong>
<div>
<span>by Ben Gamari</span>
<i>at 2021-12-02T18:13:31-05:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>CmmToC: Always cast arguments as unsigned

As noted in Note [When in doubt, cast arguments as unsigned], we
must ensure that arguments have the correct signedness since some
operations (e.g. `%`) have different semantics depending upon
signedness.
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/e98dad1bcd09e13988056310655c62b2afa512be" style="color: #1068bf;">e98dad1b</a></strong>
<div>
<span>by Ben Gamari</span>
<i>at 2021-12-02T18:13:31-05:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>CmmToC: Cast possibly-signed results as unsigned

C11 rule 6.3.1.1 dictates that all small integers used in expressions be
implicitly converted to `signed int`.  However, Cmm semantics require that the
width of the operands be preserved with zero-extension semantics. For
this reason we must recast sub-word arithmetic results as unsigned.
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/44c088631f2d14f25c9cefeee174db4576b4c5cc" style="color: #1068bf;">44c08863</a></strong>
<div>
<span>by Ben Gamari</span>
<i>at 2021-12-02T18:13:31-05:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>testsuite: Specify expected word-size of machop tests

These generally expect a particular word size.
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/fab2579e63bb317d4c266d7b949cf96ad6e5d17b" style="color: #1068bf;">fab2579e</a></strong>
<div>
<span>by Ben Gamari</span>
<i>at 2021-12-02T18:14:06-05:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>hadrian: Don't rely on realpath in bindist Makefile

As noted in #19963, `realpath` is not specified by POSIX and therefore
cannot be assumed to be available. Here we provide a POSIX shell
implementation of `realpath`, due to Julian Ospald and others.

Closes #19963.
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/99eb54bd35ae1938bf3fc0b89e527addf1a5678e" style="color: #1068bf;">99eb54bd</a></strong>
<div>
<span>by Kamil Dworakowski</span>
<i>at 2021-12-02T21:45:10-05:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>Make openFile more tolerant of async excs (#18832)
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/0e274c39bf836d5bb846f5fa08649c75f85326ac" style="color: #1068bf;">0e274c39</a></strong>
<div>
<span>by nineonine</span>
<i>at 2021-12-02T21:45:49-05:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>Require all dirty_MUT_VAR callers to do explicit stg_MUT_VAR_CLEAN_info comparison (#20088)
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/81082cf410fdcdbf10627f5334cc1dba1a9a2e06" style="color: #1068bf;">81082cf4</a></strong>
<div>
<span>by Matthew Pickering</span>
<i>at 2021-12-03T10:12:04-05:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>Revert "Data.List specialization to []"

This reverts commit bddecda1a4c96da21e3f5211743ce5e4c78793a2.

This implements the first step in the plan formulated in #20025 to
improve the communication and migration strategy for the proposed
changes to Data.List.

Requires changing the haddock submodule to update the test output.
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/a9e035a430c7fdc228d56d21b27b3b8e815fd06b" style="color: #1068bf;">a9e035a4</a></strong>
<div>
<span>by sheaf</span>
<i>at 2021-12-03T10:12:42-05:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>Test-suite: fix geometric mean of empty list

  The geometric mean computation panicked when it was given
  an empty list, which happens when there are no baselines.

  Instead, we should simply return 1.
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/d72720f9b75fbed51a24edfb691d0c77c6e96dbe" style="color: #1068bf;">d72720f9</a></strong>
<div>
<span>by Matthew Pickering</span>
<i>at 2021-12-06T16:27:35+00:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>Add section to the user guide about OS memory usage
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/0fe45d4346de72d5cf87a03c1eeedea2e2521a5b" style="color: #1068bf;">0fe45d43</a></strong>
<div>
<span>by Viktor Dukhovni</span>
<i>at 2021-12-07T06:27:12-05:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>List-monomorphic `foldr'`

While a *strict* (i.e. constant space) right-fold on lists is not
possible, the default `foldr'` is optimised for structures like
`Seq`, that support efficient access to the right-most elements.
The original default implementation seems to have a better
constant factor for lists, so we add a monomorphic implementation
in GHC.List.

Should this be re-exported from `Data.List`?  That would be a
user-visible change if both `Data.Foldable` and `Data.List` are
imported unqualified...
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/7d2283b9788fd5a724b41c0902067890059de3ff" style="color: #1068bf;">7d2283b9</a></strong>
<div>
<span>by Ben Gamari</span>
<i>at 2021-12-07T06:27:47-05:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>compiler: Eliminate accidental loop in GHC.SysTools.BaseDir

As noted in #20757, `GHC.SysTools.BaseDir.findToolDir` previously
contained an loop, which would be triggered in the case that the search
failed.

Closes #20757.
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/8044e2320210349ceff7438a44610487cecefd0c" style="color: #1068bf;">8044e232</a></strong>
<div>
<span>by Viktor Dukhovni</span>
<i>at 2021-12-07T06:28:23-05:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>More specific documentation of foldr' caveats
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/d932e2d6ade6189952790823d9f1ec78156c5828" style="color: #1068bf;">d932e2d6</a></strong>
<div>
<span>by Viktor Dukhovni</span>
<i>at 2021-12-07T06:28:23-05:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>Use italic big-O notation in Data.Foldable
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/57c9c0a2ba19b2fedfb8dc0b7e7124412f76fa8c" style="color: #1068bf;">57c9c0a2</a></strong>
<div>
<span>by Viktor Dukhovni</span>
<i>at 2021-12-07T06:28:23-05:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>Fix user-guide typo
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/324772bbdec7737abe0a705fab77437c5d579704" style="color: #1068bf;">324772bb</a></strong>
<div>
<span>by Ben Gamari</span>
<i>at 2021-12-07T06:28:59-05:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>rts/Linker: Ensure that mmap_32bit_base is updated after mapping

The amount of duplicated code in `mmapForLinker` hid the fact that some
codepaths would fail to update `mmap_32bit_base` (specifically, on
platforms like OpenBSD where `MAP_32BIT` is not supported).

Refactor the function to make the implementation more obviously correct.

Closes #20734.
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/5dbdf8781cdf35799e73e270632af6aac8d92e51" style="color: #1068bf;">5dbdf878</a></strong>
<div>
<span>by Ben Gamari</span>
<i>at 2021-12-07T06:28:59-05:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>rts: +RTS -DL should imply +RTS -Dl

Otherwise the user may be surprised by the missing context provided by
the latter.
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/7eb5606441bf11ba2ebd5f8904918dc82a2a3126" style="color: #1068bf;">7eb56064</a></strong>
<div>
<span>by sheaf</span>
<i>at 2021-12-07T06:29:38-05:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>More permissive parsing of higher-rank type IPs

  The parser now accepts implicit parameters with higher-rank
  types, such as

  `foo :: (?ip :: forall a. a -> a) => ...`

  Before this patch, we instead insisted on parentheses like so:

  `foo :: (?ip :: (forall a. a -> a)) => ...`

  The rest of the logic surrounding implicit parameters is unchanged;
  in particular, even with ImpredicativeTypes, this idiom is not
  likely to be very useful.

  Fixes #20654
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/427f9c122f5b1f130b0a342047c87ee0420050c9" style="color: #1068bf;">427f9c12</a></strong>
<div>
<span>by sheaf</span>
<i>at 2021-12-07T13:32:55-05:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>Re-export GHC.Types from GHC.Exts

  Several times in the past, it has happened that things from GHC.Types
  were not re-exported from GHC.Exts, forcing users to import either
  GHC.Types or GHC.Prim, which are subject to internal change without
  notice.

  We now re-export GHC.Types from GHC.Exts, which should avoid this
  happening again in the future.
  In particular, we now re-export `Multiplicity` and `MultMul`,
  which we didn't before.

  Fixes #20695
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/483bd04d0d59b9b9cb26b81d181c4b72655e241b" style="color: #1068bf;">483bd04d</a></strong>
<div>
<span>by Sebastian Graf</span>
<i>at 2021-12-07T13:33:31-05:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>Explicit Data.List import list in check-ppr (#20789)

`check-ppr` features an import of Data.List without an import list.
After 81082cf4, this breaks the local validate flavour because of the compat
warning and `-Werror`. So fix that.

Fixes #20789.
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/cc2bf8e9aa7237aa5d9c0bf6e839136774bd51bd" style="color: #1068bf;">cc2bf8e9</a></strong>
<div>
<span>by Norman Ramsey</span>
<i>at 2021-12-07T17:34:51-05:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>generalize GHC.Cmm.Dataflow to work over any node type

See #20725.

The commit includes source-code changes and a test case.
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/4c6985cc91b9cf89b393f69c9a603e8df0aea9e0" style="color: #1068bf;">4c6985cc</a></strong>
<div>
<span>by Sylvain Henry</span>
<i>at 2021-12-07T17:35:30-05:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>Perf: remove an indirection when fetching the unique mask

Slight decrease but still noticeable on CI:

                                               Baseline
                           Test    Metric         value     New value Change
-----------------------------------------------------------------------------
       ManyAlternatives(normal) ghc/alloc   747607676.0   747458936.0  -0.0%
       ManyConstructors(normal) ghc/alloc  4003722296.0  4003530032.0  -0.0%
      MultiLayerModules(normal) ghc/alloc  3064539560.0  3063984552.0  -0.0%
MultiLayerModulesRecomp(normal) ghc/alloc   894700016.0   894700624.0  +0.0%
              PmSeriesG(normal) ghc/alloc    48410952.0    48262496.0  -0.3%
              PmSeriesS(normal) ghc/alloc    61561848.0    61415768.0  -0.2%
              PmSeriesT(normal) ghc/alloc    90975784.0    90829360.0  -0.2%
              PmSeriesV(normal) ghc/alloc    60405424.0    60259008.0  -0.2%
                 T10421(normal) ghc/alloc   113275928.0   113137168.0  -0.1%
                T10421a(normal) ghc/alloc    79195676.0    79050112.0  -0.2%
                 T10547(normal) ghc/alloc    28720176.0    28710008.0  -0.0%
                 T10858(normal) ghc/alloc   180992412.0   180857400.0  -0.1%
                 T11195(normal) ghc/alloc   283452220.0   283293832.0  -0.1%
                 T11276(normal) ghc/alloc   137882128.0   137745840.0  -0.1%
                T11303b(normal) ghc/alloc    44453956.0    44309184.0  -0.3%
                 T11374(normal) ghc/alloc   248118668.0   247979880.0  -0.1%
                 T11545(normal) ghc/alloc   971994728.0   971852696.0  -0.0%
                 T11822(normal) ghc/alloc   131544864.0   131399024.0  -0.1%
                 T12150(optasm) ghc/alloc    79336468.0    79191888.0  -0.2%
                 T12227(normal) ghc/alloc   495064180.0   494943040.0  -0.0%
                 T12234(optasm) ghc/alloc    57198468.0    57053568.0  -0.3%
                 T12425(optasm) ghc/alloc    90928696.0    90793440.0  -0.1%
                 T12545(normal) ghc/alloc  1695417772.0  1695275744.0  -0.0%
                 T12707(normal) ghc/alloc   956258984.0   956138864.0  -0.0%
                 T13035(normal) ghc/alloc   102279484.0   102132616.0  -0.1%
                 T13056(optasm) ghc/alloc   367196556.0   367066408.0  -0.0%
                 T13253(normal) ghc/alloc   334365844.0   334255264.0  -0.0%
             T13253-spj(normal) ghc/alloc   125474884.0   125328672.0  -0.1%
                 T13379(normal) ghc/alloc   359185604.0   359036960.0  -0.0%
                 T13701(normal) ghc/alloc  2403026480.0  2402677464.0  -0.0%
                 T13719(normal) ghc/alloc  4192234752.0  4192039448.0  -0.0%
                   T14052(ghci) ghc/alloc  2745868552.0  2747706176.0  +0.1%
               T14052Type(ghci) ghc/alloc  7335937964.0  7336283280.0  +0.0%
                 T14683(normal) ghc/alloc  2992557736.0  2992436872.0  -0.0%
                 T14697(normal) ghc/alloc   363391248.0   363222920.0  -0.0%
                 T15164(normal) ghc/alloc  1292578008.0  1292434240.0  -0.0%
                 T15304(normal) ghc/alloc  1279603472.0  1279465944.0  -0.0%
                 T15630(normal) ghc/alloc   161707776.0   161602632.0  -0.1%
                 T16190(normal) ghc/alloc   276904644.0   276555264.0  -0.1%
                 T16577(normal) ghc/alloc  7573033016.0  7572982752.0  -0.0%
                 T16875(normal) ghc/alloc    34937980.0    34796592.0  -0.4%
                 T17096(normal) ghc/alloc   287436348.0   287299368.0  -0.0%
                 T17516(normal) ghc/alloc  1714727484.0  1714617664.0  -0.0%
                 T17836(normal) ghc/alloc  1091095748.0  1090958168.0  -0.0%
                T17836b(normal) ghc/alloc    52467912.0    52321296.0  -0.3%
                 T17977(normal) ghc/alloc    44971660.0    44826480.0  -0.3%
                T17977b(normal) ghc/alloc    40941128.0    40793160.0  -0.4%
                 T18140(normal) ghc/alloc    82363124.0    82213056.0  -0.2%
                 T18223(normal) ghc/alloc  1168448128.0  1168333624.0  -0.0%
                 T18282(normal) ghc/alloc   131577844.0   131440400.0  -0.1%
                 T18304(normal) ghc/alloc    86988664.0    86844432.0  -0.2%
                 T18478(normal) ghc/alloc   742992400.0   742871136.0  -0.0%
                T18698a(normal) ghc/alloc   337654412.0   337526792.0  -0.0%
                T18698b(normal) ghc/alloc   398840772.0   398716472.0  -0.0%
                 T18923(normal) ghc/alloc    68964992.0    68818768.0  -0.2%
                  T1969(normal) ghc/alloc   764285884.0   764156168.0  -0.0%
                 T19695(normal) ghc/alloc  1395577984.0  1395552552.0  -0.0%
                 T20049(normal) ghc/alloc    89159032.0    89012952.0  -0.2%
                  T3064(normal) ghc/alloc   191194856.0   191051816.0  -0.1%
                  T3294(normal) ghc/alloc  1604762016.0  1604656488.0  -0.0%
                  T4801(normal) ghc/alloc   296829368.0   296687824.0  -0.0%
                  T5030(normal) ghc/alloc   364720540.0   364580152.0  -0.0%
                T5321FD(normal) ghc/alloc   271090004.0   270950824.0  -0.1%
               T5321Fun(normal) ghc/alloc   301244320.0   301102960.0  -0.0%
                  T5631(normal) ghc/alloc   576154548.0   576022904.0  -0.0%
                  T5642(normal) ghc/alloc   471105876.0   470967552.0  -0.0%
                  T5837(normal) ghc/alloc    36328620.0    36186720.0  -0.4%
                  T6048(optasm) ghc/alloc   103125988.0   102981024.0  -0.1%
                   T783(normal) ghc/alloc   386945556.0   386795984.0  -0.0%
                  T9020(optasm) ghc/alloc   247835012.0   247696704.0  -0.1%
                  T9198(normal) ghc/alloc    47556208.0    47413784.0  -0.3%
                  T9233(normal) ghc/alloc   682210596.0   682069960.0  -0.0%
                  T9630(normal) ghc/alloc  1429689648.0  1429581168.0  -0.0%
                  T9675(optasm) ghc/alloc   431092812.0   430943192.0  -0.0%
                 T9872a(normal) ghc/alloc  1705052592.0  1705042064.0  -0.0%
                 T9872b(normal) ghc/alloc  2180406760.0  2180395784.0  -0.0%
                 T9872c(normal) ghc/alloc  1760508464.0  1760497936.0  -0.0%
                 T9872d(normal) ghc/alloc   501517968.0   501309464.0  -0.0%
                  T9961(normal) ghc/alloc   354037204.0   353891576.0  -0.0%
   TcPlugin_RewritePerf(normal) ghc/alloc  2381708520.0  2381550824.0  -0.0%
                  WWRec(normal) ghc/alloc   589553520.0   589407216.0  -0.0%
         hard_hole_fits(normal) ghc/alloc   492122188.0   492470648.0  +0.1%
                 hie002(normal) ghc/alloc  9336434800.0  9336443496.0  +0.0%
             parsing001(normal) ghc/alloc   537680944.0   537659824.0  -0.0%

                      geo. mean                                        -0.1%
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/aafa5079bd49a55f5c71664ddb95ffcb9d8ca102" style="color: #1068bf;">aafa5079</a></strong>
<div>
<span>by Bodigrim</span>
<i>at 2021-12-09T04:26:35-05:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>Bump bytestring submodule to 0.11.2.0

Both tests import `Data.ByteString`, so the change in allocations is more or less expected.

Metric Increase:
    T19695
    T9630
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/803eefb1109564f4dbabd80721cd45ce7268c4a2" style="color: #1068bf;">803eefb1</a></strong>
<div>
<span>by Matthew Pickering</span>
<i>at 2021-12-09T04:27:11-05:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>package imports: Take into account package visibility when renaming

In 806e49ae the package imports refactoring code was modified to rename
package imports. There was a small oversight which meant the code didn't
account for module visibility. This patch fixes that oversight.

In general the "lookupPackageName" function is unsafe to use as it
doesn't account for package visiblity/thinning/renaming etc, there is
just one use in the compiler which would be good to audit.

Fixes #20779
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/52bbea0f986c5a2b25aaf17ae89931a6a20ee028" style="color: #1068bf;">52bbea0f</a></strong>
<div>
<span>by Viktor Dukhovni</span>
<i>at 2021-12-09T04:27:48-05:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>Fix typo and outdated link in Data.Foldable

Amazing nobody had reported the "Foldabla" typo. :-(

The Traversable docs got overhauled, leaving a stale
link in Foldable to a section that got replaced.  Gave
the new section an anchor and updated the link.
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/a722859f1989a826b2b0701ddc68faad8e85b84e" style="color: #1068bf;">a722859f</a></strong>
<div>
<span>by Viktor Dukhovni</span>
<i>at 2021-12-09T04:27:48-05:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>A few more typos
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/d6177cb5dac357ff15ae048556f03039dd6987d2" style="color: #1068bf;">d6177cb5</a></strong>
<div>
<span>by Viktor Dukhovni</span>
<i>at 2021-12-09T04:27:48-05:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>Drop O(n^2) warning on concat
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/9f988525f3067de0fb68ebababbdd54f06a2eaa2" style="color: #1068bf;">9f988525</a></strong>
<div>
<span>by David Feuer</span>
<i>at 2021-12-09T13:49:47+00:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>Improve mtimesDefault

* Make 'mtimesDefault' use 'stimes' for the underlying monoid
  rather than the default 'stimes'.

* Explain in the documentation why one might use `mtimesDefault`.
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/2fca50d42b14a8f51e9805cdd2ef8fbc4a67259d" style="color: #1068bf;">2fca50d4</a></strong>
<div>
<span>by Gergo ERDI</span>
<i>at 2021-12-09T22:14:24-05:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>Use same optimization pipeline regardless of `optLevel` (#20500)
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/6d0319220ebc63a29b941483a6c40ed4f972dc24" style="color: #1068bf;">6d031922</a></strong>
<div>
<span>by Gergo ERDI</span>
<i>at 2021-12-09T22:14:24-05:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>Add `Opt_CoreConstantFolding` to turn on constant folding (#20500)

Previously, `-O1` and `-O2`, by way of their effect on the compilation
pipeline, they implicitly turned on constant folding
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/b6f7d145872573baa632a3bbee1c52f0596ec482" style="color: #1068bf;">b6f7d145</a></strong>
<div>
<span>by Gergo ERDI</span>
<i>at 2021-12-09T22:14:24-05:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>Remove `optLevel` from `DynFlags` (closes #20500)
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/724df9c3b5e10ced670a484b05220169aa5bf48c" style="color: #1068bf;">724df9c3</a></strong>
<div>
<span>by Ryan Scott</span>
<i>at 2021-12-09T22:15:00-05:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>Hadrian: Allow building with GHC 9.2

A separate issue is the fact that many of `hadrian`'s modules produce
`-Wincomplete-uni-patterns` warnings under 9.2, but that is probably best left
to a separate patch.
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/80a25502c1f9ac4597c9408931df1bf03cad5b9e" style="color: #1068bf;">80a25502</a></strong>
<div>
<span>by Matthew Pickering</span>
<i>at 2021-12-09T22:15:35-05:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>Use file hash cache when hashing object file dependencies

This fixes the immediate problem that we hash the same file multiple
different times which causes quite a noticeably performance regression.

In the future we can probably do better than this by storing the
implementation hash in the interface file rather than dependending on
hashing the object file.

Related to #20604 which notes some inefficiencies with the current
recompilation logic.

Closes #20790

-------------------------
Metric Decrease:
    T14052Type
-------------------------
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/f573cb16debc5424e502b3777430c02ae6d0b475" style="color: #1068bf;">f573cb16</a></strong>
<div>
<span>by nineonine</span>
<i>at 2021-12-10T06:16:41-05:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>rts: use allocation helpers from RtsUtils

Just a tiny cleanup inspired by the following comment:
https://gitlab.haskell.org/ghc/ghc/-/issues/19437#note_334271
I was just getting familiar with rts code base so I
thought might as well do this.
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/16eab39bb40bb5acacb652e71b36e627095d2147" style="color: #1068bf;">16eab39b</a></strong>
<div>
<span>by Matthew Pickering</span>
<i>at 2021-12-10T06:17:16-05:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>Remove confusing haddock quotes in 'readInt' documentation

As pointed out in #20776, placing quotes in this way linked to the
'Integral' type class which is nothing to do with 'readInt', the text
should rather just be "integral", to suggest that the argument must be
an integer.

Closes #20776
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/b4a554197be38be72b4a52603efac84983a6b2bc" style="color: #1068bf;">b4a55419</a></strong>
<div>
<span>by Ben Gamari</span>
<i>at 2021-12-10T06:17:52-05:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>docs: Drop old release notes

Closes #20786
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/8d1f30e7cfa5b459aab9dcf3052f3f7f274666e3" style="color: #1068bf;">8d1f30e7</a></strong>
<div>
<span>by Jakob Brünker</span>
<i>at 2021-12-11T00:55:48-05:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>Add PromotedInfixT/PromotedUInfixT to TH

Previously, it was not possible to refer to a data constructor using
InfixT with a dynamically bound name (i.e. a name with NameFlavour
`NameS` or `NameQ`) if a type constructor of the same
name exists.

This commit adds promoted counterparts to InfixT and UInfixT,
analogously to how PromotedT is the promoted counterpart to ConT.

Closes #20773
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/785859faca48d5af1ecb9eb063caae446ba20bd7" style="color: #1068bf;">785859fa</a></strong>
<div>
<span>by Bodigrim</span>
<i>at 2021-12-11T00:56:26-05:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>Bump text submodule to 2.0-rc2
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/352284de379b84331bd89b9eefa13af6f332df06" style="color: #1068bf;">352284de</a></strong>
<div>
<span>by Sylvain Henry</span>
<i>at 2021-12-11T00:57:05-05:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>Perf: remove allocation in writeBlocks and fix comment (#14309)
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/40a44f68362565fa9c1c062b06bc117c6b0a1cab" style="color: #1068bf;">40a44f68</a></strong>
<div>
<span>by Douglas Wilson</span>
<i>at 2021-12-12T09:09:30-05:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>rts: correct stats when running with +RTS -qn1

Despite the documented care having been taken, several bugs are fixed here.

When run with -qn1, when a SYNC_GC_PAR is requested we will have

n_gc_threads == n_capabilities && n_gc_idle_threads == (n_gc_threads - 1)

In this case we now:
* Don't increment par_collections
* Don't increment par_balanced_copied
* Don't emit debug traces for idle threads
* Take the fast path in scavenge_until_all_done, wakeup_gc_threads, and
    shutdown_gc_threads.

Some ASSERTs have also been tightened.

Fixes #19685
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/6b2947d29c3d71599d90641bfdfb41d7fe7427ac" style="color: #1068bf;">6b2947d2</a></strong>
<div>
<span>by Matthew Pickering</span>
<i>at 2021-12-12T09:10:06-05:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>iserv: Remove network dependent parts of libiserv

As noted in #20794 the parts of libiserv and iserv-proxy depend on
network, therefore are never built nor tested during CI.

Due to this iserv-proxy had bitrotted due to the bound on bytestring
being out of date.

Given we don't test this code it seems undesirable to distribute it.
Therefore, it's removed and an external maintainer can be responsible
for testing it (via head.hackage if desired).

Fixes #20794
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/f04d1a4935beda0144a7b830589ab214d785d592" style="color: #1068bf;">f04d1a49</a></strong>
<div>
<span>by Ben Gamari</span>
<i>at 2021-12-12T09:10:41-05:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>gitlab-ci: Bump fedora jobs to use Fedora 33

Annoyingly, this will require downstream changes in head.hackage, which
depends upon the artifact produced by this job.

Prompted by !6462.
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/93783e6a8765e1410d0a14fd5249a995c6759308" style="color: #1068bf;">93783e6a</a></strong>
<div>
<span>by Andrey Mokhov</span>
<i>at 2021-12-12T09:11:20-05:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>Drop --configure from Hadrian docs
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/31bf380f3925d72a3369978d28d02aaae31f75ef" style="color: #1068bf;">31bf380f</a></strong>
<div>
<span>by Oleg Grenrus</span>
<i>at 2021-12-12T12:52:18-05:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>Use HasCallStack and error in GHC.List and .NonEmpty

In addition to providing stack traces, the scary HasCallStack will
hopefully make people think whether they want to use these functions,
i.e. act as a documentation hint that something weird might happen.

A single metric increased, which doesn't visibly
use any method with `HasCallStack`.

-------------------------
Metric Decrease:
    T9630
Metric Decrease:
    T19695
    T9630
-------------------------
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/401ddd5300c8be2ee03bf040146e7f2878bae0a9" style="color: #1068bf;">401ddd53</a></strong>
<div>
<span>by Greg Steuck</span>
<i>at 2021-12-12T12:52:56-05:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>Respect W^X in Linker.c:preloadObjectFile on OpenBSD

This fixes -fexternal-interpreter for ghci. Fixes #20814.
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/c43ee6b81bd544ae338f9287a7b1edb646d51531" style="color: #1068bf;">c43ee6b8</a></strong>
<div>
<span>by Andreas Klebinger</span>
<i>at 2021-12-14T19:24:20+01:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>GHC.Utils.Misc.only: Add doc string.

This function expects a singleton list as argument but only checks this
in debug builds. I've added a docstring saying so.

Fixes #20797
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/9ff54ea8260b1b1508a19e968eb4584cb5cef93c" style="color: #1068bf;">9ff54ea8</a></strong>
<div>
<span>by Vaibhav Sagar</span>
<i>at 2021-12-14T20:50:08-05:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>Data.Functor.Classes: fix Ord1 instance for Down
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/8a2de3c295055771cb61606d599af63e61e420f4" style="color: #1068bf;">8a2de3c2</a></strong>
<div>
<span>by Tamar Christina</span>
<i>at 2021-12-14T20:50:47-05:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>rts: update xxhash used by the linker's hashmap
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/1c8d609a0509d99722ccc0056dbf3336904bf102" style="color: #1068bf;">1c8d609a</a></strong>
<div>
<span>by alirezaghey</span>
<i>at 2021-12-14T20:51:25-05:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>fix ambiguity in `const` documentation

fixes #20412
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/a5d8d47f2a95de4b66c7299c25c301b89e6252f6" style="color: #1068bf;">a5d8d47f</a></strong>
<div>
<span>by Joachim Breitner</span>
<i>at 2021-12-14T20:52:00-05:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>Ghci environment: Do not remove shadowed ids

Names defined earier but shadowed need to be kept around, e.g. for type
signatures:
```
ghci> data T = T
ghci> let t = T
ghci> data T = T
ghci> :t t
t :: Ghci1.T
```
and indeed they can be used:
```
ghci> let t2 = Ghci1.T :: Ghci1.T
ghci> :t t2
t2 :: Ghci1.T
```

However, previously this did not happen for ids (non-types), although they
are still around under the qualified name internally:
```
ghci> let t = "other t"
ghci> t'

<interactive>:8:1: error:
    • Variable not in scope: t'
    • Perhaps you meant one of these:
        ‘Ghci2.t’ (imported from Ghci2), ‘t’ (line 7), ‘t2’ (line 5)
ghci> Ghci2.t

<interactive>:9:1: error:
    • GHC internal error: ‘Ghci2.t’ is not in scope during type checking, but it passed the renamer
      tcl_env of environment: []
    • In the expression: Ghci2.t
      In an equation for ‘it’: it = Ghci2.t
```

This fixes the problem by simply removing the code that tries to remove
shadowed ids from the environment. Now you can refer to shadowed ids using
`Ghci2.t`, just like you can do for data and type constructors. This
simplifies the code, makes terms and types more similar, and also
fixes #20455.

Now all names ever defined in GHCi are in `ic_tythings`, which is printed by
`:show bindings`. But for that commands, it seems to be more ergonomic
to only list those bindings that are not shadowed. Or, even if it is not
more ergonomic, it’s the current behavour. So let's restore that by filtering
in `icInScopeTTs`.

Of course a single `TyThing` can be associated with many names. We keep
it it in the bindings if _any_ of its names are still visible
unqualifiedly. It's a judgement call.

This commit also turns a rather old comment into a test files.
The comment is is rather stale and things are better explained
elsewhere. Fixes #925.

Two test cases are regressing:

                   T14052(ghci) ghc/alloc  2749444288.0 12192109912.0 +343.4% BAD
               T14052Type(ghci) ghc/alloc  7365784616.0 10767078344.0  +46.2% BAD

This is not unexpected; the `ic_tythings list grows` a lot more if we
don’t remove shadowed Ids. I tried to alleviate it a bit with earlier
MRs, but couldn’t make up for it completely.

Metric Increase:
    T14052
    T14052Type
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/7c2609d8e951159f07dbca97d1076d029f431f44" style="color: #1068bf;">7c2609d8</a></strong>
<div>
<span>by Cheng Shao</span>
<i>at 2021-12-14T20:52:37-05:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>base: fix clockid_t usage when it's a pointer type in C

Closes #20607.
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/55cb2aa7afe6bac040b925e1cf6c9e7b2101a32a" style="color: #1068bf;">55cb2aa7</a></strong>
<div>
<span>by MichaWiedenmann1</span>
<i>at 2021-12-14T20:53:16-05:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>Fixes typo in documentation of the Semigroup instance of Equivalence</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/82c39f4df38a32c93b3be5aa428dedf5d6bf66f4" style="color: #1068bf;">82c39f4d</a></strong>
<div>
<span>by Ben Gamari</span>
<i>at 2021-12-14T20:53:51-05:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>users-guide: Fix documentation for -shared flag

This flag was previously called `--mk-dll`. It was renamed to `-shared`
in b562cbe381d54e08dcafa11339e9a82e781ad557 but the documentation wasn't
updated to match.
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/4f654071850e211370199dddefffbe4a85cd6040" style="color: #1068bf;">4f654071</a></strong>
<div>
<span>by Ben Gamari</span>
<i>at 2021-12-14T20:53:51-05:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>compiler: Drop `Maybe ModLocation` from T_MergeForeign

This field was entirely unused.
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/71ecb55b0b3ada2c9841dbc9f4a36fed52eb652e" style="color: #1068bf;">71ecb55b</a></strong>
<div>
<span>by Ben Gamari</span>
<i>at 2021-12-14T20:53:51-05:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>compiler: Use withFile instead of bracket

A minor refactoring noticed by hlint.
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/5686f47ba1866094a1546473ae2f0c523fb20d9e" style="color: #1068bf;">5686f47b</a></strong>
<div>
<span>by Ben Gamari</span>
<i>at 2021-12-14T20:53:51-05:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>ghc-bin: Add --merge-objs mode

This adds a new mode, `--merge-objs`, which can be used to produce
merged GHCi library objects.

As future work we will rip out the object-merging logic in Hadrian and
Cabal and instead use this mode.

Closes #20712.
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/0198bb1190ffc4ac4963140e81cacd72721eab07" style="color: #1068bf;">0198bb11</a></strong>
<div>
<span>by Ben Gamari</span>
<i>at 2021-12-14T20:54:27-05:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>libiserv: Rename Lib module to IServ

As proposed in #20546.
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/ecaec722850cce498b67561708ee8e42df367dda" style="color: #1068bf;">ecaec722</a></strong>
<div>
<span>by doyougnu</span>
<i>at 2021-12-14T20:55:06-05:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>CmmToLlvm: Remove DynFlags, add LlvmCgConfig

CodeOutput: LCGConfig, add handshake initLCGConfig

Add two modules:
GHC.CmmToLlvm.Config                -- to hold the Llvm code gen config
GHC.Driver.Config.CmmToLlvm         -- for initialization, other utils

CmmToLlvm: remove HasDynFlags, add LlvmConfig

CmmToLlvm: add lcgContext to LCGConfig

CmmToLlvm.Base: DynFlags --> LCGConfig

Llvm: absorb LlvmOpts into LCGConfig

CmmToLlvm.Ppr: swap DynFlags --> LCGConfig

CmmToLlvm.CodeGen: swap DynFlags --> LCGConfig

CmmToLlvm.CodeGen: swap DynFlags --> LCGConfig

CmmToLlvm.Data: swap LlvmOpts --> LCGConfig

CmmToLlvm: swap DynFlags --> LCGConfig

CmmToLlvm: move LlvmVersion to CmmToLlvm.Config

Additionally:
- refactor Config and initConfig to hold LlvmVersion
- push IO needed to get LlvmVersion to boundary between Cmm and LLvm
code generation
- remove redundant imports, this is much cleaner!

CmmToLlvm.Config: store platformMisc_llvmTarget

instead of all of platformMisc
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/6b0fb9a078ae415e0720c7db961f5a1692099ff1" style="color: #1068bf;">6b0fb9a0</a></strong>
<div>
<span>by doyougnu</span>
<i>at 2021-12-14T20:55:06-05:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>SysTools.Tasks Llvm.Types: remove redundant import

Llvm.Types: remove redundant import

SysTools.Tasks: remove redundant import

- namely CmmToLlvm.Base
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/800160229900aa97bb4ae1fa77c80521bf4379ce" style="color: #1068bf;">80016022</a></strong>
<div>
<span>by doyougnu</span>
<i>at 2021-12-14T20:55:06-05:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>LLVM.CodeGen: use fast-string literals

That is remove factorization of common strings and string building
code for the LLVM code gen ops. Replace these with string literals
to obey the FastString rewrite rule in GHC.Data.FastString and compute
the string length at compile time
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/bc663f87e7aac7853f2c27956d38dd6f30d24fe5" style="color: #1068bf;">bc663f87</a></strong>
<div>
<span>by doyougnu</span>
<i>at 2021-12-14T20:55:06-05:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>CmmToLlvm.Config: strictify LlvmConfig field
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/70f0aafee13894fc0d6ca944682a77130bce7289" style="color: #1068bf;">70f0aafe</a></strong>
<div>
<span>by doyougnu</span>
<i>at 2021-12-14T20:55:06-05:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>CmmToLlvm: rename LCGConfig -> LlvmCgConfig

CmmToLlvm: renamce lcgPlatform -> llvmCgPlatform

CmmToLlvm: rename lcgContext -> llvmCgContext

CmmToLlvm: rename lcgFillUndefWithGarbage

CmmToLlvm: rename lcgSplitSections

CmmToLlvm: lcgBmiVersion -> llvmCgBmiVersion

CmmToLlvm: lcgLlvmVersion -> llvmCgLlvmVersion

CmmToLlvm: lcgDoWarn -> llvmCgDoWarn

CmmToLlvm: lcgLlvmConfig -> llvmCgLlvmConfig

CmmToLlvm: llvmCgPlatformMisc --> llvmCgLlvmTarget
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/34abbd81b75fb6ca381f0609257de6bf42471237" style="color: #1068bf;">34abbd81</a></strong>
<div>
<span>by Greg Steuck</span>
<i>at 2021-12-14T20:55:43-05:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>Add OpenBSD to llvm-targets

This improves some tests that previously failed with:

ghc: panic! (the 'impossible' happened)
  GHC version 9.3.20211211:
        Failed to lookup LLVM data layout
  Target: x86_64-unknown-openbsd

Added the new generated lines to `llvm-targets` on an openbsd
7.0-current with clang 11.1.0.
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/45bd630886157fbe4856594e098202808aedbdd0" style="color: #1068bf;">45bd6308</a></strong>
<div>
<span>by Joachim Breitner</span>
<i>at 2021-12-14T20:56:18-05:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>Test case from #19313
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/f5a0b408c7e4ef71221eea3ea80ea250fbb28e18" style="color: #1068bf;">f5a0b408</a></strong>
<div>
<span>by Andrei Barbu</span>
<i>at 2021-12-15T16:33:17-05:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>Plugin load order should follow the commandline order (fixes #17884)

In the past the order was reversed because flags are consed onto a list.
No particular behavior was documented.

We now reverse the flags and document the behavior.
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/d13b9f20d1dc3613cf850eeb9b5627a0cdec5c4e" style="color: #1068bf;">d13b9f20</a></strong>
<div>
<span>by Cheng Shao</span>
<i>at 2021-12-15T16:33:54-05:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>base: use `CUIntPtr` instead of `Ptr ()` as the autoconf detected Haskell type for C pointers

When autoconf detects a C pointer type, we used to specify `Ptr ()` as
the Haskell type. This doesn't work in some cases, e.g. in `wasi-libc`,
`clockid_t` is a pointer type, but we expected `CClockId` to be an
integral type, and `Ptr ()` lacks various integral type instances.
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/89c1ffd6bcc6527d587d1188a43dda08d373bdb3" style="color: #1068bf;">89c1ffd6</a></strong>
<div>
<span>by Cheng Shao</span>
<i>at 2021-12-15T16:33:54-05:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>base: fix autoconf detection of C pointer types

We used to attempt compiling `foo_t val; *val;` to determine if `foo_t`
is a pointer type in C. This doesn't work if `foo_t` points to an
incomplete type, and autoconf will detect `foo_t` as a floating point
type in that case. Now we use `memset(val, 0, 0)` instead, and it works
for incomplete types as well.
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/6cea73113e63650e3eeee9c187ae3de7ffc19af6" style="color: #1068bf;">6cea7311</a></strong>
<div>
<span>by Cheng Shao</span>
<i>at 2021-12-15T16:33:54-05:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>Add a note to base changelog
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/3c3e5c03c9890ba33bd2ac7239161738584dc473" style="color: #1068bf;">3c3e5c03</a></strong>
<div>
<span>by Ben Gamari</span>
<i>at 2021-12-17T21:20:57-05:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>Regression test for renamer/typechecker performance (#20261)

We use the parser generated by stack to ensure reproducibility
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/5d5620bc1001c6a0689c57c23272b398ae9937d1" style="color: #1068bf;">5d5620bc</a></strong>
<div>
<span>by Krzysztof Gogolewski</span>
<i>at 2021-12-17T21:21:32-05:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>Change isUnliftedTyCon to marshalablePrimTyCon (#20401)

isUnliftedTyCon was used in three places: Ticky, Template Haskell
and FFI checks.

It was straightforward to remove it from Ticky and Template Haskell.

It is now used in FFI only and renamed to marshalablePrimTyCon.

Previously, it was fetching information from a field
in PrimTyCon called is_unlifted. Instead, I've changed the code
to compute liftedness based on the kind.

isFFITy and legalFFITyCon are removed. They were only referred from
an old comment that I removed.

There were three functions to define a PrimTyCon, but the only difference
was that they were setting is_unlifted to True or False.
Everything is now done in mkPrimTyCon.

I also added missing integer types in Ticky.hs, I think it was an oversight.

Fixes #20401
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/9d77976d02836594c74a21e170f763b42048fd04" style="color: #1068bf;">9d77976d</a></strong>
<div>
<span>by Matthew Pickering</span>
<i>at 2021-12-17T21:22:08-05:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>testsuite: Format metric results with comma separator

As noted in #20763 the way the stats were printed was quite hard for a
human to compare. Therefore we now insert the comma separator so that
they are easier to compare at a glance.

Before:

```
                                              Baseline
                         Test    Metric          value      New value Change
-----------------------------------------------------------------------------
          Conversions(normal) run/alloc       107088.0       107088.0  +0.0%
           DeriveNull(normal) run/alloc    112050656.0    112050656.0  +0.0%
     InlineArrayAlloc(normal) run/alloc   1600040712.0   1600040712.0  +0.0%
 InlineByteArrayAlloc(normal) run/alloc   1440040712.0   1440040712.0  +0.0%
InlineCloneArrayAlloc(normal) run/alloc   1600040872.0   1600040872.0  +0.0%
          MethSharing(normal) run/alloc    480097864.0    480097864.0  +0.0%
               T10359(normal) run/alloc       354344.0       354344.0  +0.0%
```

After

```
                                                 Baseline
                         Test    Metric             value         New value Change
----------------------------------------------------------------------------------
          Conversions(normal) run/alloc         107,088         107,088     +0.0%
           DeriveNull(normal) run/alloc     112,050,656     112,050,656     +0.0%
     InlineArrayAlloc(normal) run/alloc   1,600,040,712   1,600,040,712     +0.0%
 InlineByteArrayAlloc(normal) run/alloc   1,440,040,712   1,440,040,712     +0.0%
InlineCloneArrayAlloc(normal) run/alloc   1,600,040,872   1,600,040,872     +0.0%
          MethSharing(normal) run/alloc     480,097,864     480,097,864     +0.0%
               T10359(normal) run/alloc         354,344         354,344     +0.0%
```

Closes #20763
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/3f31bfe8c3c2250391ceb58ad267e0845b53bb29" style="color: #1068bf;">3f31bfe8</a></strong>
<div>
<span>by Sylvain Henry</span>
<i>at 2021-12-17T21:22:48-05:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>Perf: inline exprIsCheapX

Allow specialization for the ok_app predicate.

Perf improvements:

                                               Baseline
                           Test    Metric         value     New value Change
-----------------------------------------------------------------------------
       ManyAlternatives(normal) ghc/alloc   747317244.0   746444024.0  -0.1%
       ManyConstructors(normal) ghc/alloc  4005046448.0  4001548792.0  -0.1%
      MultiLayerModules(normal) ghc/alloc  3063361000.0  3063178472.0  -0.0%
MultiLayerModulesRecomp(normal) ghc/alloc   894208428.0   894252496.0  +0.0%
              PmSeriesG(normal) ghc/alloc    48021692.0    47901592.0  -0.3%
              PmSeriesS(normal) ghc/alloc    61322504.0    61149008.0  -0.3%
              PmSeriesT(normal) ghc/alloc    90879364.0    90609048.0  -0.3%
              PmSeriesV(normal) ghc/alloc    60155376.0    59983632.0  -0.3%
                 T10421(normal) ghc/alloc   112820720.0   112517208.0  -0.3%
                T10421a(normal) ghc/alloc    78783696.0    78557896.0  -0.3%
                 T10547(normal) ghc/alloc    28331984.0    28354160.0  +0.1%
                 T10858(normal) ghc/alloc   180715296.0   180226720.0  -0.3%
                 T11195(normal) ghc/alloc   284139184.0   283981048.0  -0.1%
                 T11276(normal) ghc/alloc   137830804.0   137688912.0  -0.1%
                T11303b(normal) ghc/alloc    44080856.0    43956152.0  -0.3%
                 T11374(normal) ghc/alloc   249319644.0   249059288.0  -0.1%
                 T11545(normal) ghc/alloc   971507488.0   971146136.0  -0.0%
                 T11822(normal) ghc/alloc   131410208.0   131269664.0  -0.1%
                 T12150(optasm) ghc/alloc    78866860.0    78762296.0  -0.1%
                 T12227(normal) ghc/alloc   494467900.0   494138112.0  -0.1%
                 T12234(optasm) ghc/alloc    56781044.0    56588256.0  -0.3%
                 T12425(optasm) ghc/alloc    90462264.0    90240272.0  -0.2%
                 T12545(normal) ghc/alloc  1694316588.0  1694128448.0  -0.0%
                 T12707(normal) ghc/alloc   955665168.0   955005336.0  -0.1%
                 T13035(normal) ghc/alloc   101875160.0   101713312.0  -0.2%
                 T13056(optasm) ghc/alloc   366370168.0   365347632.0  -0.3%
                 T13253(normal) ghc/alloc   333741472.0   332612920.0  -0.3%
             T13253-spj(normal) ghc/alloc   124947560.0   124427552.0  -0.4%
                 T13379(normal) ghc/alloc   358997996.0   358879840.0  -0.0%
                 T13701(normal) ghc/alloc  2400391456.0  2399956840.0  -0.0%
                 T13719(normal) ghc/alloc  4193179228.0  4192476392.0  -0.0%
                   T14052(ghci) ghc/alloc  2734741552.0  2735731808.0  +0.0%
               T14052Type(ghci) ghc/alloc  7323235724.0  7323042264.0  -0.0%
                 T14683(normal) ghc/alloc  2990457260.0  2988899144.0  -0.1%
                 T14697(normal) ghc/alloc   363606476.0   363452952.0  -0.0%
                 T15164(normal) ghc/alloc  1291321780.0  1289491968.0  -0.1%
                 T15304(normal) ghc/alloc  1277838020.0  1276208304.0  -0.1%
                 T15630(normal) ghc/alloc   161074632.0   160388136.0  -0.4%
                 T16190(normal) ghc/alloc   276567192.0   276235216.0  -0.1%
                 T16577(normal) ghc/alloc  7564318656.0  7535598656.0  -0.4%
                 T16875(normal) ghc/alloc    34867720.0    34752440.0  -0.3%
                 T17096(normal) ghc/alloc   288477360.0   288156960.0  -0.1%
                 T17516(normal) ghc/alloc  1712777224.0  1704655496.0  -0.5%
                 T17836(normal) ghc/alloc  1092127336.0  1091709880.0  -0.0%
                T17836b(normal) ghc/alloc    52083516.0    51954056.0  -0.2%
                 T17977(normal) ghc/alloc    44552228.0    44425448.0  -0.3%
                T17977b(normal) ghc/alloc    40540252.0    40416856.0  -0.3%
                 T18140(normal) ghc/alloc    81908200.0    81678928.0  -0.3%
                 T18223(normal) ghc/alloc  1166459176.0  1164418104.0  -0.2%
                 T18282(normal) ghc/alloc   131123648.0   130740432.0  -0.3%
                 T18304(normal) ghc/alloc    86486796.0    86223088.0  -0.3%
                 T18478(normal) ghc/alloc   746029440.0   745619968.0  -0.1%
                T18698a(normal) ghc/alloc   337037580.0   336533824.0  -0.1%
                T18698b(normal) ghc/alloc   398324600.0   397696400.0  -0.2%
                 T18923(normal) ghc/alloc    68496432.0    68286264.0  -0.3%
                  T1969(normal) ghc/alloc   760424696.0   759641664.0  -0.1%
                 T19695(normal) ghc/alloc  1421672472.0  1413682104.0  -0.6%
                 T20049(normal) ghc/alloc    88601524.0    88336560.0  -0.3%
                  T3064(normal) ghc/alloc   190808832.0   190659328.0  -0.1%
                  T3294(normal) ghc/alloc  1604483120.0  1604339080.0  -0.0%
                  T4801(normal) ghc/alloc   296501624.0   296388448.0  -0.0%
                  T5030(normal) ghc/alloc   364336308.0   364206240.0  -0.0%
                T5321FD(normal) ghc/alloc   270688492.0   270386832.0  -0.1%
               T5321Fun(normal) ghc/alloc   300860396.0   300559200.0  -0.1%
                  T5631(normal) ghc/alloc   575822760.0   575579160.0  -0.0%
                  T5642(normal) ghc/alloc   470243356.0   468988784.0  -0.3%
                  T5837(normal) ghc/alloc    35936468.0    35821360.0  -0.3%
                  T6048(optasm) ghc/alloc   102587024.0   102222000.0  -0.4%
                   T783(normal) ghc/alloc   386539204.0   386003344.0  -0.1%
                  T9020(optasm) ghc/alloc   247435312.0   247324184.0  -0.0%
                  T9198(normal) ghc/alloc    47170036.0    47054840.0  -0.2%
                  T9233(normal) ghc/alloc   677186820.0   676550032.0  -0.1%
                  T9630(normal) ghc/alloc  1456411516.0  1451045736.0  -0.4%
                  T9675(optasm) ghc/alloc   427190224.0   426812568.0  -0.1%
                 T9872a(normal) ghc/alloc  1704660040.0  1704681856.0  +0.0%
                 T9872b(normal) ghc/alloc  2180109488.0  2180130856.0  +0.0%
                 T9872c(normal) ghc/alloc  1760209640.0  1760231456.0  +0.0%
                 T9872d(normal) ghc/alloc   501126052.0   500973488.0  -0.0%
                  T9961(normal) ghc/alloc   353244688.0   353063104.0  -0.1%
   TcPlugin_RewritePerf(normal) ghc/alloc  2387276808.0  2387254168.0  -0.0%
                  WWRec(normal) ghc/alloc   588651140.0   587684704.0  -0.2%
         hard_hole_fits(normal) ghc/alloc   492063812.0   491798360.0  -0.1%
                 hie002(normal) ghc/alloc  9334355960.0  9334396872.0  +0.0%
             parsing001(normal) ghc/alloc   537410584.0   537421736.0  +0.0%

                      geo. mean                                        -0.2%
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/e04878b01f0d3fe74b57ff89505daf2512b66941" style="color: #1068bf;">e04878b0</a></strong>
<div>
<span>by Matthew Pickering</span>
<i>at 2021-12-17T21:23:23-05:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>ci: Use correct metrics baseline

It turns out there was already a function in the CI script to correctly
set the baseline for performance tests but it was just never called. I
now call it during the initialisation to set the correct baseline.

I also made the make testsuite driver take into account the
PERF_BASELINE_COMMIT environment variable

Fixes #20811
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/1327c176ca33f3ac989b99d81d4b3e79106b9fd4" style="color: #1068bf;">1327c176</a></strong>
<div>
<span>by Matthew Pickering</span>
<i>at 2021-12-17T21:23:58-05:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>Add regression test for T20189

Closes #20189
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/fc9b17552ce8cb93ab4101e1daf3dafcdbb06179" style="color: #1068bf;">fc9b1755</a></strong>
<div>
<span>by Matthew Pickering</span>
<i>at 2021-12-17T21:24:33-05:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>Fix documentation formatting in Language.Haskell.TH.CodeDo

Fixes #20543
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/abef93f3596b048fbd71afafbd5fddffa877004c" style="color: #1068bf;">abef93f3</a></strong>
<div>
<span>by Matthew Pickering</span>
<i>at 2021-12-17T21:24:33-05:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>Expand documentation for MulArrowT constructor

Fixes #20812
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/94c3ff66a498df778cf32f68198775511b435704" style="color: #1068bf;">94c3ff66</a></strong>
<div>
<span>by Cheng Shao</span>
<i>at 2021-12-17T21:25:09-05:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>Binary: make withBinBuffer safe

With this patch, withBinBuffer will construct a ByteString that
properly captures the reference to the BinHandle internal
MutableByteArray#, making it safe to convert a BinHandle to ByteString
and use that ByteString outside the continuation.
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/a3552934a559ed8813dabc640f5dec0689d62f9e" style="color: #1068bf;">a3552934</a></strong>
<div>
<span>by Sebastian Graf</span>
<i>at 2021-12-17T21:25:45-05:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>Demand: `Eq DmdType` modulo `defaultFvDmd` (#20827)

Fixes #20827 by filtering out any default free variable demands (as per
`defaultFvDmd`) prior to comparing the assocs of the `DmdEnv`.
The details are in `Note [Demand type Equality]`.
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/9529d859fef6fe353081588ba96257519a20728a" style="color: #1068bf;">9529d859</a></strong>
<div>
<span>by Sylvain Henry</span>
<i>at 2021-12-17T21:26:24-05:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>Perf: avoid using (replicateM . length) when possible

Extracted from !6622
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/887d8b4c409c06257a63751e4e84c86ddf5cc874" style="color: #1068bf;">887d8b4c</a></strong>
<div>
<span>by Matthew Pickering</span>
<i>at 2021-12-17T21:26:59-05:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>testsuite: Ensure that -dcore-lint is not set for compiler performance tests

This place ensures that the default -dcore-lint option is disabled by
default when collect_compiler_stats is used but you can still pass
-dcore-lint as an additional option (see T1969 which tests core lint
performance).

Fixes #20830

-------------------------
Metric Decrease:
    PmSeriesS
    PmSeriesT
    PmSeriesV
    T10858
    T11195
    T11276
    T11374
    T11822
    T14052
    T14052Type
    T17096
    T17836
    T17836b
    T18478
    T18698a
    T18698b
-------------------------
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/5ff47ff5bb815e18e03fab42ffae7d735ea70976" style="color: #1068bf;">5ff47ff5</a></strong>
<div>
<span>by Ben Gamari</span>
<i>at 2021-12-21T01:46:00-05:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>codeGen: Introduce flag to bounds-check array accesses

Here we introduce code generator support for instrument array primops
with bounds checking, enabled with the `-fcheck-prim-bounds` flag.

Introduced to debug #20769.
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/d47bb1099f388b68116dabf16afb1c551eb9588a" style="color: #1068bf;">d47bb109</a></strong>
<div>
<span>by Ben Gamari</span>
<i>at 2021-12-21T01:46:00-05:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>rts: Add optional bounds checking in out-of-line primops
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/8ea79a16c57a9fcfd091ab7f4aa457e100fa42b5" style="color: #1068bf;">8ea79a16</a></strong>
<div>
<span>by Ben Gamari</span>
<i>at 2021-12-21T01:46:00-05:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>Rename -fcatch-bottoms to -fcatch-nonexhaustive-cases

As noted in #20601, the previous name was rather misleading.
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/00b55bfcd982bed2c9fc02d9c3ca66ba9d41bb5c" style="color: #1068bf;">00b55bfc</a></strong>
<div>
<span>by Ben Gamari</span>
<i>at 2021-12-21T01:46:00-05:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>Introduce -dlint flag

As suggested in #20601, this is a short-hand for enabling the usual
GHC-internal sanity checks one typically leans on when debugging runtime
crashes.
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/9728d6c2b62f38f79c8833b1819200985fe173dc" style="color: #1068bf;">9728d6c2</a></strong>
<div>
<span>by Sylvain Henry</span>
<i>at 2021-12-21T01:46:39-05:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>Give plugins a better interface (#17957)

Plugins were directly fetched from HscEnv (hsc_static_plugins and
hsc_plugins). The tight coupling of plugins and of HscEnv is undesirable
and it's better to store them in a new Plugins datatype and to use it in
the plugins' API (e.g. withPlugins, mapPlugins...).

In the process, the interactive context (used by GHCi) got proper
support for different static plugins than those used for loaded modules.

Bump haddock submodule
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/9bc5ab64de16f786ede145755d52f5452af453f9" style="color: #1068bf;">9bc5ab64</a></strong>
<div>
<span>by Greg Steuck</span>
<i>at 2021-12-21T01:47:17-05:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>Use libc++ instead of libstdc++ on openbsd in addition to freebsd

This is not entirely accurate because some openbsd architectures use
gcc. Yet we don't have ghc ported to them and thus the approximation
is good enough.

Fixes ghcilink006 test
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/f92c9c0d40d0cd5efe2bc08dbfbf02cf7bc2ed3e" style="color: #1068bf;">f92c9c0d</a></strong>
<div>
<span>by Greg Steuck</span>
<i>at 2021-12-21T01:47:55-05:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>Only use -ldl conditionally to fix T3807

OpenBSD doesn't have this library and so the linker complains:
ld.lld: error: unable to find library -ldl
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/ff657a81ae5ebd4ea4628ca8ebc88dce3ecbe0ef" style="color: #1068bf;">ff657a81</a></strong>
<div>
<span>by Greg Steuck</span>
<i>at 2021-12-21T01:48:32-05:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>Mark `linkwhole` test as expected broken on OpenBSD per #20841
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/1a596d069991255e196621d06a046f60359f3129" style="color: #1068bf;">1a596d06</a></strong>
<div>
<span>by doyougnu</span>
<i>at 2021-12-22T00:12:27-05:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>Cmm: DynFlags to CmmConfig refactor

add files GHC.Cmm.Config, GHC.Driver.Config.Cmm

Cmm: DynFlag references --> CmmConfig

Cmm.Pipeline: reorder imports, add handshake

Cmm: DynFlag references --> CmmConfig

Cmm.Pipeline: DynFlag references --> CmmConfig

Cmm.LayoutStack: DynFlag references -> CmmConfig

Cmm.Info.Build: DynFlag references -> CmmConfig

Cmm.Config: use profile to retrieve platform

Cmm.CLabel: unpack NCGConfig in labelDynamic

Cmm.Config: reduce CmmConfig surface area

Cmm.Config: add cmmDoCmmSwitchPlans field

Cmm.Config: correct cmmDoCmmSwitchPlans flag

The original implementation dispatches work in cmmImplementSwitchPlans
in an `otherwise` branch, hence we must add a not to correctly dispatch

Cmm.Config: add cmmSplitProcPoints simplify Config

remove cmmBackend, and cmmPosInd

Cmm.CmmToAsm: move ncgLabelDynamic to CmmToAsm

Cmm.CLabel: remove cmmLabelDynamic function

Cmm.Config: rename cmmOptDoLinting -> cmmDoLinting

testsuite: update CountDepsAst CountDepsParser
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/d7cc8f1915c9617b6d4256fd1e483c24b4b1e851" style="color: #1068bf;">d7cc8f19</a></strong>
<div>
<span>by Matthew Pickering</span>
<i>at 2021-12-22T00:13:02-05:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>ci: Fix master CI

I made a mistake in the bash script so there were errors about
"$CI_MERGE_REQUEST_DIFF_BASE_SHA" not existing.
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/09b6cb45505c2c32ddaffcdb930fb3f7873b2cfc" style="color: #1068bf;">09b6cb45</a></strong>
<div>
<span>by Alan Zimmerman</span>
<i>at 2021-12-22T00:13:38-05:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>Fix panic trying to -ddump-parsed-ast for implicit fixity

A declaration such as

    infixr ++++

is supplied with an implicit fixity of 9 in the parser, but uses
an invalid SrcSpan to capture this. Use of this span triggers a panic.

Fix the problem by not recording an exact print annotation for the
non-existent fixity source.

Closes #20846
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/3ed909118126a93f03ef17fed52eaf602b91ae1b" style="color: #1068bf;">3ed90911</a></strong>
<div>
<span>by Matthew Pickering</span>
<i>at 2021-12-22T14:47:40-05:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>testsuite: Remove reqlib modifier

The reqlib modifer was supposed to indicate that a test needed a certain
library in order to work. If the library happened to be installed then
the test would run as normal.

However, CI has never run these tests as the packages have not been
installed and we don't want out tests to depend on things which might
get externally broken by updating the compiler.

The new strategy is to run these tests in head.hackage, where the tests
have been cabalised as well as possible. Some tests couldn't be
transferred into the normal style testsuite but it's better than never
running any of the reqlib tests. https://gitlab.haskell.org/ghc/head.hackage/-/merge_requests/169

A few submodules also had reqlib tests and have been updated to remove
it.

Closes #16264 #20032 #17764 #16561
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/ac3e8c52d4acb4fc8c52abe7a90d6dfdef642ccd" style="color: #1068bf;">ac3e8c52</a></strong>
<div>
<span>by Matthew Pickering</span>
<i>at 2021-12-22T14:48:16-05:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>perf ci: Start searching form the performance baseline

If you specify PERF_BASELINE_COMMIT then this can fail if the specific
commit you selected didn't have perf test metrics. (This can happen in
CI for example if a build fails on master).

Therefore instead of just reporting all tests as new, we start searching
downwards from this point to try and find a good commit to report
numbers from.
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/9552781abf3d199d01b01ed4b7d04abdc54b6b26" style="color: #1068bf;">9552781a</a></strong>
<div>
<span>by Matthew Pickering</span>
<i>at 2021-12-22T14:48:51-05:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>Mark T16525b as fragile on windows

See ticket #20852
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/13a6d85a74872f22c8762d04678f7499e7890a5f" style="color: #1068bf;">13a6d85a</a></strong>
<div>
<span>by Andreas Klebinger</span>
<i>at 2021-12-23T10:55:36-05:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>Make callerCC profiling mode represent entry counter flag.

Fixes #20854
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/80daefce4ec1169ac3ef0552b8600c71527d84c2" style="color: #1068bf;">80daefce</a></strong>
<div>
<span>by Matthew Pickering</span>
<i>at 2021-12-23T10:56:11-05:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>Properly filter for module visibility in resolvePackageImport

This completes the fix for #20779 / !7123.

Beforehand, the program worked by accident because the two versions of
the library happened to be ordered properly (due to how the hashes were
computed). In the real world I observed them being the other way around
which meant the final lookup failed because we weren't filtering for
visibility.

I modified the test so that it failed (and it's fixed by this patch).
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/e6191d39680351bc69dfb379386c4c5273971030" style="color: #1068bf;">e6191d39</a></strong>
<div>
<span>by Krzysztof Gogolewski</span>
<i>at 2021-12-25T18:26:44+01:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>Fix typos
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/3219610e3ba6cb6a5cd1f4e32e2b4befea5bd384" style="color: #1068bf;">3219610e</a></strong>
<div>
<span>by Greg Steuck</span>
<i>at 2021-12-26T22:12:43-05:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>Use POSIX-compliant egrep expression to fix T8832 on OpenBSD
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/fd42ab5fa1df847a6b595dfe4b63d9c7eecbf400" style="color: #1068bf;">fd42ab5f</a></strong>
<div>
<span>by Matthew Pickering</span>
<i>at 2021-12-28T09:47:53+00:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>Multiple Home Units

Multiple home units allows you to load different packages which may depend on
each other into one GHC session. This will allow both GHCi and HLS to support
multi component projects more naturally.

Public Interface
~~~~~~~~~~~~~~~~

In order to specify multiple units, the -unit @⟨filename⟩ flag
is given multiple times with a response file containing the arguments for each unit.
The response file contains a newline separated list of arguments.

```
ghc -unit @unitLibCore -unit @unitLib
```

where the `unitLibCore` response file contains the normal arguments that cabal would pass to `--make` mode.

```
-this-unit-id lib-core-0.1.0.0
-i
-isrc
LibCore.Utils
LibCore.Types
```

The response file for lib, can specify a dependency on lib-core, so then modules in lib can use modules from lib-core.

```
-this-unit-id lib-0.1.0.0
-package-id lib-core-0.1.0.0
-i
-isrc
Lib.Parse
Lib.Render
```

Then when the compiler starts in --make mode it will compile both units lib and lib-core.

There is also very basic support for multiple home units in GHCi, at the
moment you can start a GHCi session with multiple units but only the
:reload is supported. Most commands in GHCi assume a single home unit,
and so it is additional work to work out how to modify the interface to
support multiple loaded home units.

Options used when working with Multiple Home Units

There are a few extra flags which have been introduced specifically for
working with multiple home units. The flags allow a home unit to pretend
it’s more like an installed package, for example, specifying the package
name, module visibility and reexported modules.

-working-dir ⟨dir⟩

    It is common to assume that a package is compiled in the directory
    where its cabal file resides. Thus, all paths used in the compiler
    are assumed to be relative to this directory. When there are
    multiple home units the compiler is often not operating in the
    standard directory and instead where the cabal.project file is
    located. In this case the -working-dir option can be passed which
    specifies the path from the current directory to the directory the
    unit assumes to be it’s root, normally the directory which contains
    the cabal file.

    When the flag is passed, any relative paths used by the compiler are
    offset by the working directory. Notably this includes -i and
    -I⟨dir⟩ flags.

-this-package-name ⟨name⟩

    This flag papers over the awkward interaction of the PackageImports
    and multiple home units. When using PackageImports you can specify
    the name of the package in an import to disambiguate between modules
    which appear in multiple packages with the same name.

    This flag allows a home unit to be given a package name so that you
    can also disambiguate between multiple home units which provide
    modules with the same name.

-hidden-module ⟨module name⟩

    This flag can be supplied multiple times in order to specify which
    modules in a home unit should not be visible outside of the unit it
    belongs to.

    The main use of this flag is to be able to recreate the difference
    between an exposed and hidden module for installed packages.

-reexported-module ⟨module name⟩

    This flag can be supplied multiple times in order to specify which
    modules are not defined in a unit but should be reexported. The
    effect is that other units will see this module as if it was defined
    in this unit.

    The use of this flag is to be able to replicate the reexported
    modules feature of packages with multiple home units.

Offsetting Paths in Template Haskell splices
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

When using Template Haskell to embed files into your program,
traditionally the paths have been interpreted relative to the directory
where the .cabal file resides. This causes problems for multiple home
units as we are compiling many different libraries at once which have
.cabal files in different directories.

For this purpose we have introduced a way to query the value of the
-working-dir flag to the Template Haskell API. By using this function we
can implement a makeRelativeToProject function which offsets a path
which is relative to the original project root by the value of
-working-dir.

```
import Language.Haskell.TH.Syntax ( makeRelativeToProject )

foo = $(makeRelativeToProject "./relative/path" >>= embedFile)
```

> If you write a relative path in a Template Haskell splice you should use the makeRelativeToProject function so that your library works correctly with multiple home units.

A similar function already exists in the file-embed library. The
function in template-haskell implements this function in a more robust
manner by honouring the -working-dir flag rather than searching the file
system.

Closure Property for Home Units
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

For tools or libraries using the API there is one very important closure
property which must be adhered to:

> Any dependency which is not a home unit must not (transitively) depend
  on a home unit.

For example, if you have three packages p, q and r, then if p depends on
q which depends on r then it is illegal to load both p and r as home
units but not q, because q is a dependency of the home unit p which
depends on another home unit r.

If you are using GHC by the command line then this property is checked,
but if you are using the API then you need to check this property
yourself. If you get it wrong you will probably get some very confusing
errors about overlapping instances.

Limitations of Multiple Home Units
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

There are a few limitations of the initial implementation which will be smoothed out on user demand.

    * Package thinning/renaming syntax is not supported
    * More complicated reexports/renaming are not yet supported.
    * It’s more common to run into existing linker bugs when loading a
      large number of packages in a session (for example #20674, #20689)
    * Backpack is not yet supported when using multiple home units.
    * Dependency chasing can be quite slow with a large number of
      modules and packages.
    * Loading wired-in packages as home units is currently not supported
      (this only really affects GHC developers attempting to load
      template-haskell).
    * Barely any normal GHCi features are supported, it would be good to
      support enough for ghcid to work correctly.

Despite these limitations, the implementation works already for nearly
all packages. It has been testing on large dependency closures,
including the whole of head.hackage which is a total of 4784 modules
from 452 packages.

Internal Changes
~~~~~~~~~~~~~~~~

* The biggest change is that the HomePackageTable is replaced with the
  HomeUnitGraph. The HomeUnitGraph is a map from UnitId to HomeUnitEnv,
  which contains information specific to each home unit.
* The HomeUnitEnv contains:
    - A unit state, each home unit can have different package db flags
    - A set of dynflags, each home unit can have different flags
    - A HomePackageTable
* LinkNode: A new node type is added to the ModuleGraph, this is used to
  place the linking step into the build plan so linking can proceed in
  parralel with other packages being built.
* New invariant: Dependencies of a ModuleGraphNode can be completely
  determined by looking at the value of the node. In order to achieve
  this, downsweep now performs a more complete job of downsweeping and
  then the dependenices are recorded forever in the node rather than
  being computed again from the ModSummary.
* Some transitive module calculations are rewritten to use the
  ModuleGraph which is more efficient.
* There is always an active home unit, which simplifies modifying a lot
  of the existing API code which is unit agnostic (for example, in the
  driver).

The road may be bumpy for a little while after this change but the
basics are well-tested.

One small metric increase, which we accept and also submodule update to
haddock which removes ExtendedModSummary.

Closes #10827

-------------------------
Metric Increase:
    MultiLayerModules
-------------------------

Co-authored-by: Fendor <power.walross@gmail.com>
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/72824c63e25c5c8c7ef89475c6064a3b9613b381" style="color: #1068bf;">72824c63</a></strong>
<div>
<span>by Richard Eisenberg</span>
<i>at 2021-12-28T10:09:28-05:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>Skip computing superclass origins for equalities

This yields a small, but measurable, performance improvement.
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/8b6aafb229097e01d8c8fcf82949a8ef03b41f05" style="color: #1068bf;">8b6aafb2</a></strong>
<div>
<span>by Matthew Pickering</span>
<i>at 2021-12-29T14:09:47-05:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>Cabal: Update submodule

Closes #20874
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/44a5507f6bbc5c87e486446d7f4486f7362748b4" style="color: #1068bf;">44a5507f</a></strong>
<div>
<span>by Peter Trommler</span>
<i>at 2021-12-29T14:10:22-05:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>RTS: Fix CloneStack.c when no table next to code

Function `lookupIPE` does not modify its argument. Reflect this in the
type. Module `CloneStack.c` relies on this for RTS without tables
next to code.

Fixes #20879
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/246d278277dc3414a440639fd35c60006dfb93f0" style="color: #1068bf;">246d2782</a></strong>
<div>
<span>by sheaf</span>
<i>at 2022-01-02T04:20:09-05:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>User's guide: newtype decls can use GADTSyntax

The user's guide failed to explicitly mention that GADTSyntax
can be used to declare newtypes, so we add an example and a couple
of explanations.

Also explains that `-XGADTs` generalises `-XExistentialQuantification`.

Fixes #20848 and #20865.
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/f212cece72b4be2750afa0f71f833f4b0190383a" style="color: #1068bf;">f212cece</a></strong>
<div>
<span>by Hécate Moonlight</span>
<i>at 2022-01-02T04:20:47-05:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>Add a source-repository stanza to rts/rts.cabal</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/d9e491958fab83d34f261f6adeaf3c8ace71b276" style="color: #1068bf;">d9e49195</a></strong>
<div>
<span>by Greg Steuck</span>
<i>at 2022-01-03T05:18:24+00:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>Replace `seq` with POSIX-standard printf(1) in ManyAlternatives test

The test now passes on OpenBSD instead of generating broken source
which was rejected by GHC with

  ManyAlternatives.hs:5:1: error:
      The type signature for ‘f’ lacks an accompanying binding
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/80e416aeca87a0133638c5fcb3f5b5ec67feb809" style="color: #1068bf;">80e416ae</a></strong>
<div>
<span>by Greg Steuck</span>
<i>at 2022-01-03T05:18:24+00:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>Replace `seq` with POSIX-standard in PmSeriesG test
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/8fa52f5cd5ac44d7506f4a38a6a9d86c63bc0f99" style="color: #1068bf;">8fa52f5c</a></strong>
<div>
<span>by Eric Lindblad</span>
<i>at 2022-01-03T16:48:51-05:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>fix typo</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/a49f58890b3a8d9759b7147b6dfdaf7287679e3f" style="color: #1068bf;">a49f5889</a></strong>
<div>
<span>by Roland Senn</span>
<i>at 2022-01-03T16:49:29-05:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>Add regressiontest for #18045

Issue #18045 got fixed by !6971.
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/7f10686e61e49c89baf45df92eb24ad3504492f7" style="color: #1068bf;">7f10686e</a></strong>
<div>
<span>by sheaf</span>
<i>at 2022-01-03T16:50:07-05:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>Add test for #20894
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/5111028ee0910305d94671397b8ccc5b60ed296b" style="color: #1068bf;">5111028e</a></strong>
<div>
<span>by sheaf</span>
<i>at 2022-01-04T19:56:13-05:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>Check quoted TH names are in the correct namespace

When quoting (using a TH single or double quote) a built-in
name such as the list constructor (:), we didn't always check
that the resulting 'Name' was in the correct namespace.

This patch adds a check in GHC.Rename.Splice to ensure
we get a Name that is in the term-level/type-level namespace,
when using a single/double tick, respectively.

Fixes #20884.
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/1de94daaf3d9bd03b1a641cc28678de224662738" style="color: #1068bf;">1de94daa</a></strong>
<div>
<span>by George Thomas</span>
<i>at 2022-01-04T19:56:51-05:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>Fix Haddock parse error in GHC.Exts.Heap.FFIClosures.hs</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/e59bd46a6915c79e89d376aa22b0ae6def440e0a" style="color: #1068bf;">e59bd46a</a></strong>
<div>
<span>by nineonine</span>
<i>at 2022-01-05T18:07:18+00:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>Add regression test (#13997)
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/c080b44314248545c6ddea0c0eff02f8c9edbca4" style="color: #1068bf;">c080b443</a></strong>
<div>
<span>by Sylvain Henry</span>
<i>at 2022-01-06T02:24:54-05:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>Perf: use SmallArray for primops' Ids cache (#20857)

SmallArray doesn't perform bounds check (faster).

Make primop tags start at 0 to avoid index arithmetic.
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/ec26c38bfac24d958377abbae6fce3a6fcf4ae39" style="color: #1068bf;">ec26c38b</a></strong>
<div>
<span>by Sylvain Henry</span>
<i>at 2022-01-06T02:24:54-05:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>Use primOpIds cache more often (#20857)

Use primOpId instead of mkPrimOpId in a few places to benefit from
Id caching.

I had to mess a little bit with the module hierarchy to fix cycles and
to avoid adding too many new dependencies to count-deps tests.
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/f7fc62e227ded3eb33dc54ad295d9f15bcbe14cf" style="color: #1068bf;">f7fc62e2</a></strong>
<div>
<span>by Greg Steuck</span>
<i>at 2022-01-06T07:56:22-05:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>Disable T2615 on OpenBSD, close #20869
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/978ea35e37b49ffde28b0536e44362b66f3187b4" style="color: #1068bf;">978ea35e</a></strong>
<div>
<span>by Greg Steuck</span>
<i>at 2022-01-06T07:57:00-05:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>Change ulimit -n in openFile008 back to 1024

The test only wants 1000 descriptors, so changing the limit to double
that *in the context of just this test* makes no sense.

This is a manual revert of 8f7194fae23bdc6db72fc5784933f50310ce51f9.
The justification given in the description doesn't instill confidence.

As of HEAD, the test fails on OpenBSD where ulimit -n is hard-limited
to 1024. The test suite attempts to change it to 2048, which
fails. The test proceeds with the unchanged default of 512 and
naturally the test program fails due to the low ulimit. The fixed test
now passes.
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/7b783c9da649899bdce34b6e746fa8704b667f28" style="color: #1068bf;">7b783c9d</a></strong>
<div>
<span>by Matthew Pickering</span>
<i>at 2022-01-07T18:25:06-05:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>Thoughtful forcing in CoreUnfolding

We noticed that the structure of CoreUnfolding could leave double the
amount of CoreExprs which were retained in the situation where the
template but not all the predicates were forced. This observation was
then confirmed using ghc-debug:

```
(["ghc:GHC.Core:App","ghc-prim:GHC.Types:True","THUNK_1_0","THUNK_1_0","THUNK_1_0"],Count 237)
(["ghc:GHC.Core:App","ghc-prim:GHC.Types:True","THUNK_1_0","THUNK_1_0","ghc-prim:GHC.Types:True"],Count 1)
(["ghc:GHC.Core:Case","ghc-prim:GHC.Types:True","THUNK_1_0","THUNK_1_0","THUNK_1_0"],Count 12)
(["ghc:GHC.Core:Cast","ghc-prim:GHC.Types:True","THUNK_1_0","THUNK_1_0","BLACKHOLE"],Count 1)
(["ghc:GHC.Core:Cast","ghc-prim:GHC.Types:True","THUNK_1_0","THUNK_1_0","THUNK_1_0"],Count 78)
(["ghc:GHC.Core:Cast","ghc-prim:GHC.Types:True","THUNK_1_0","ghc-prim:GHC.Types:False","THUNK_1_0"],Count 1)
(["ghc:GHC.Core:Cast","ghc-prim:GHC.Types:True","ghc-prim:GHC.Types:False","THUNK_1_0","THUNK_1_0"],Count 3)
(["ghc:GHC.Core:Cast","ghc-prim:GHC.Types:True","ghc-prim:GHC.Types:True","THUNK_1_0","THUNK_1_0"],Count 1)
(["ghc:GHC.Core:Lam","ghc-prim:GHC.Types:True","THUNK_1_0","THUNK_1_0","BLACKHOLE"],Count 31)
(["ghc:GHC.Core:Lam","ghc-prim:GHC.Types:True","THUNK_1_0","THUNK_1_0","THUNK_1_0"],Count 4307)
(["ghc:GHC.Core:Lam","ghc-prim:GHC.Types:True","THUNK_1_0","THUNK_1_0","ghc-prim:GHC.Types:True"],Count 6)
(["ghc:GHC.Core:Let","ghc-prim:GHC.Types:True","THUNK_1_0","THUNK_1_0","THUNK_1_0"],Count 29)
(["ghc:GHC.Core:Lit","ghc-prim:GHC.Types:True","THUNK_1_0","THUNK_1_0","ghc-prim:GHC.Types:True"],Count 1)
(["ghc:GHC.Core:Tick","ghc-prim:GHC.Types:True","THUNK_1_0","THUNK_1_0","THUNK_1_0"],Count 36)
(["ghc:GHC.Core:Var","ghc-prim:GHC.Types:True","THUNK_1_0","THUNK_1_0","THUNK_1_0"],Count 1)
(["ghc:GHC.Core:Var","ghc-prim:GHC.Types:True","ghc-prim:GHC.Types:False","THUNK_1_0","THUNK_1_0"],Count 6)
(["ghc:GHC.Core:Var","ghc-prim:GHC.Types:True","ghc-prim:GHC.Types:False","ghc-prim:GHC.Types:True","THUNK_1_0"],Count 2)
```

Where we can see that the first argument is forced but there are still
thunks remaining which retain the old expr.

For my test case (a very big module, peak of 3 000 000 core terms) this
reduced peak memory usage by 1G (12G -> 11G).

Fixes #20905
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/f583eb8e5e7077f77fba035a454fafd945d4a4ea" style="color: #1068bf;">f583eb8e</a></strong>
<div>
<span>by Joachim Breitner</span>
<i>at 2022-01-07T18:25:41-05:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>Remove dangling references to Note [Type-checking overloaded labels]

that note was removed in 4196969c53c55191e644d9eb258c14c2bc8467da
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/2b6c217925a39624f425758ca680887b01db8efd" style="color: #1068bf;">2b6c2179</a></strong>
<div>
<span>by Matthew Pickering</span>
<i>at 2022-01-11T19:37:45-05:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>hadrian: Add bootstrap scripts for building without cabal-install

These scripts are originally from the cabal-install repo with a few
small tweaks.

This utility allows you to build hadrian without cabal-install, which can be useful
for packagers. If you are a developer then build hadrian using cabal-install.

If you want to bootstrap with ghc-8.10.5 then run the ./bootstrap script with the
`plan-bootstrap-8.10.5.json` file.

    bootstrap.py -d plan-bootstrap-8.10.5.json -w /path/to-ghc

The result of the bootstrap script will be a hadrian binary in
`_build/bin/hadrian`.

There is a script (using nix) which can be used to generate the bootstrap plans for the range
of supported GHC versions using nix.

    generate_bootstrap_plans

Otherwise you can run the commands in ./generate_bootstrap_plans directly.

Fixes #17103
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/a8fb4251cd4b12c792b0f94979b584364d80b434" style="color: #1068bf;">a8fb4251</a></strong>
<div>
<span>by Zubin Duggal</span>
<i>at 2022-01-11T19:37:45-05:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>hadrian: allow offline bootstrapping

This patch adds the ability to fetch and store dependencies needed for
boostrapping hadrian. By default the script will download the
dependencies from the network but some package managers disallow network
access so there are also options to build given a supplied tarball.

The -s option allos you to provide the tarball

    bootstrap.py -d plan-bootstrap-8.10.5.json -w /path/to-ghc -s sources-tarball.tar.gz

Which dependencies you need can be queried using the `list-sources` option.

    bootstrap.py list-sources -d plan-bootstrap-8.10.5.json

This produces `fetch_plan.json` which tells you where to get each source from.

You can instruct the script to create the tarball using the `fetch` option.

    bootstrap.py fetch -d plan-bootstrap-8.10.5.json -o sources-tarball.tar.gz

Together these commands mean you can build GHC without needing
cabal-install.

Fixes #17103
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/02cf4bc6d349514d6740886ebed660a0c444f3d4" style="color: #1068bf;">02cf4bc6</a></strong>
<div>
<span>by Zubin Duggal</span>
<i>at 2022-01-11T19:37:45-05:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>hadrian: Fully implement source distributions (#19317)

We use `git ls-files` to get the list of files to include in the source distribution.

Also implements the `-testsuite` and `-extra-tarballs` distributions.
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/85473a098ea60fac1633c179397c640889ce58ea" style="color: #1068bf;">85473a09</a></strong>
<div>
<span>by Zubin Duggal</span>
<i>at 2022-01-11T19:37:45-05:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>ci: test bootstrapping and use hadrian for source dists
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/759f3421b5c1dbea358208337541eef674441af6" style="color: #1068bf;">759f3421</a></strong>
<div>
<span>by Matthew Pickering</span>
<i>at 2022-01-11T19:38:21-05:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>ci: Nightly, run one head.hackage job with core-lint and one without

This fixes serious skew in the performance numbers because the packages
were build with core-lint.

Fixes #20826
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/6737c8e1ed67a2ec3f1fa3e91cb279f689d3da6f" style="color: #1068bf;">6737c8e1</a></strong>
<div>
<span>by Ben Gamari</span>
<i>at 2022-01-11T19:38:56-05:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>rts: Depend explicitly on libc

As noted in #19029, currently `ghc-prim` explicitly lists `libc` in
`extra-libraries`, resulting in incorrect link ordering with the
`extra-libraries: pthread` in `libHSrts`. Fix this by adding an explicit
dependency on `libc` to `libHSrts`.

Closes #19029.
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/247cd336af9b9367697e0b5a7a82c5227f986a97" style="color: #1068bf;">247cd336</a></strong>
<div>
<span>by Ben Gamari</span>
<i>at 2022-01-11T19:39:32-05:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>rts: Only declare environ when necessary

Previously we would unconditionally provide a declaration for `environ`,
even if `<unistd.h>` already provided one. This would result in
`-Werror` builds failing on some platforms.

Also `#include <unistd.h>` to ensure that the declaration is visible.

Fixes #20861.
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/b65e72741a48db29133f8bd24b7e4735ac493ea5" style="color: #1068bf;">b65e7274</a></strong>
<div>
<span>by Greg Steuck</span>
<i>at 2022-01-11T19:40:10-05:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>Skip T18623 on OpenBSD

The bug it regresses didn't happen on this OS (no RLIMIT_AS) and the
regression doesn't work (ulimit: -v: unknown option)
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/c6300cb319f5d756e4addf8193b8115949e645ac" style="color: #1068bf;">c6300cb3</a></strong>
<div>
<span>by Greg Steuck</span>
<i>at 2022-01-11T19:40:50-05:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>Skip T16180 on OpenBSD due to bug #14012
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/addf8e544841a3f7c818331e47fa89a2cbfb7b29" style="color: #1068bf;">addf8e54</a></strong>
<div>
<span>by sheaf</span>
<i>at 2022-01-11T19:41:28-05:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>Kind TyCons: require KindSignatures, not DataKinds

  Uses of a TyCon in a kind signature required users to enable
  DataKinds, which didn't make much sense, e.g. in

    type U = Type
    type MyMaybe (a :: U) = MyNothing | MyJust a

  Now the DataKinds error is restricted to data constructors;
  the use of kind-level type constructors is instead gated behind
  -XKindSignatures.

  This patch also adds a convenience pattern synonym for patching
  on both a TyCon or a TcTyCon stored in a TcTyThing, used in
  tcTyVar and tc_infer_id.

  fixes #20873
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/34d8bc24e33aa373acb6fdeef51427d968f28c0c" style="color: #1068bf;">34d8bc24</a></strong>
<div>
<span>by sheaf</span>
<i>at 2022-01-11T19:42:07-05:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>Fix parsing & printing of unboxed sums

The pretty-printing of partially applied unboxed sums was incorrect,
as we incorrectly dropped the first half of the arguments, even
for a partial application such as

  (# | #) @IntRep @DoubleRep Int#

which lead to the nonsensical (# DoubleRep | Int# #).

This patch also allows users to write unboxed sum type constructors
such as

  (# | #) :: TYPE r1 -> TYPE r2 -> TYPE (SumRep '[r1,r2]).

Fixes #20858 and #20859.
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/49731fed69cb67ebaa3481b6ed5395ccd760c051" style="color: #1068bf;">49731fed</a></strong>
<div>
<span>by sheaf</span>
<i>at 2022-01-11T19:42:46-05:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>TcPlugins: `newWanted` uses the provided `CtLoc`

The `GHC.Tc.Plugin.newWanted` function takes a `CtLoc` as an argument,
but it used to discard the location information, keeping only
the `CtOrigin`. It would then retrieve the source location from the
`TcM` environment using `getCtLocM`.

This patch changes this so that `GHC.Tc.Plugin.newWanted` passes on
the full `CtLoc`. This means that authors of type-checking plugins
no longer need to manually set the `CtLoc` environment in the `TcM`
monad if they want to create a new Wanted constraint with the given
`CtLoc` (in particular, for setting the `SrcSpan` of an emitted
constraint). This makes the `newWanted` function consistent with
`newGiven`, which always used the full `CtLoc` instead of using
the environment.

Fixes #20895
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/23d215fcb62c8bfe8d56396a0c9718a72ac0037b" style="color: #1068bf;">23d215fc</a></strong>
<div>
<span>by Krzysztof Gogolewski</span>
<i>at 2022-01-11T19:43:22-05:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>warnPprTrace: pass separately the reason

This makes it more similar to pprTrace, pprPanic etc.
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/833216a31c866d86ff95cfbf95591fb56463371c" style="color: #1068bf;">833216a3</a></strong>
<div>
<span>by Matthew Pickering</span>
<i>at 2022-01-11T19:43:57-05:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>Use interactive flags when printing expressions in GHCi

The documentation states that the interactive flags should be use for
any interactive expressions. The interactive flags are used when
typechecking these expressions but not when printing. The session flags
(modified by :set) are only used when loading a module.

Fixes #20909
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/19b13698f5afe6ab497eb2e2169cb9782a933f93" style="color: #1068bf;">19b13698</a></strong>
<div>
<span>by Matthew Pickering</span>
<i>at 2022-01-11T19:43:57-05:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>Enable :seti in a multi component repl

Part of #20889
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/7ca43a3fb315abf172a6f7ff2bb4cf4303017e24" style="color: #1068bf;">7ca43a3f</a></strong>
<div>
<span>by Matthew Pickering</span>
<i>at 2022-01-11T19:44:33-05:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>Change assertions in Stats.c to warnings (and introduce WARN macro)

ASSERT should be used in situations where something very bad will happen
later on if a certain invariant doesn't hold. The idea is that IF we
catch the assertion earlier then it will be easier to work out what's
going on at that point rather than at some indeterminate point in the
future of the program.

The assertions in Stats.c do not obey this philsophy and it is quite
annoying if you are running a debug build (or a ticky compiler) and one
of these assertions fails right at the end of your program, before the
ticky report is printed out so you don't get any profiling information.

Given that nothing terrible happens if these assertions are not true, or
at least the terrible thing will happen in very close proximity to the
assertion failure, these assertions use the new WARN macro which prints
the assertion failure to stdout but does not exit the program.

Of course, it would be better to fix these metrics to not trigger the
assertion in the first place but if they did fail again in the future it
is frustrating to be bamboozled in this manner.

Fixes #20899
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/e505dbd36f3c8c43a645a176babefabfd0a72eeb" style="color: #1068bf;">e505dbd3</a></strong>
<div>
<span>by Greg Steuck</span>
<i>at 2022-01-11T19:45:11-05:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>Remove from error the parenthesized amount of memory requested

Diagnostics for outofmem test on OpenBSD includes the amount of memory
that it failed to allocate. This seems like an irrelevant detail that
could change over time and isn't required for determining if test
passed.

Typical elided text is '(requested 2148532224 bytes)'
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/7911aaa93fa7dd81ba0c0523046a3a649e329309" style="color: #1068bf;">7911aaa9</a></strong>
<div>
<span>by Greg Steuck</span>
<i>at 2022-01-11T19:45:50-05:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>Feed /dev/null into cgrun025

The test currently times out waiting for end of stdin in getContents.
The expected output indicates that nothing should come for the test to
pass as written. It is unclear how the test was supposed to pass, but
this looks like a sufficient hack to make it work.
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/ed39d15cf258c7cdd8e3776b2a013e4ae7ae8e61" style="color: #1068bf;">ed39d15c</a></strong>
<div>
<span>by Greg Steuck</span>
<i>at 2022-01-11T19:46:28-05:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>Disable keep-cafs{,-fail} tests on OpenBSD

They are likely broken for the same reason as FreeBSD where the tests
are already disabled.
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/35bea01b4df92f5c0bf875e8a8deed2252821f5b" style="color: #1068bf;">35bea01b</a></strong>
<div>
<span>by Peter Trommler</span>
<i>at 2022-01-11T19:47:04-05:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>RTS: Remove unused file xxhash.c
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/c2099059eca2f5f0217256374834784f008b7602" style="color: #1068bf;">c2099059</a></strong>
<div>
<span>by Matthew Pickering</span>
<i>at 2022-01-11T19:47:39-05:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>RTTI: Substitute the [rk] skolems into kinds

(Fixes #10616 and #10617)

Co-authored-by: Roland Senn <rsx@bluewin.ch>
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/92f3e6e4e30b853af304aa53f529af2c262419f1" style="color: #1068bf;">92f3e6e4</a></strong>
<div>
<span>by Matthew Pickering</span>
<i>at 2022-01-11T19:48:15-05:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>docs: MonadComprehension desugar using Alternative rather than MonadPlus

Fixes #20928
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/7b0c938483bad5a5c96e02c511fb2b2df059154c" style="color: #1068bf;">7b0c9384</a></strong>
<div>
<span>by Sylvain Henry</span>
<i>at 2022-01-12T23:25:49-05:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>Abstract BangOpts

Avoid requiring to pass DynFlags to mkDataConRep/buildDataCon. When we
load an interface file, these functions don't use the flags.

This is preliminary work to decouple the loader from the type-checker
for #14335.
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/a31ace56209b583df890a1bffb5a8928aa734aa6" style="color: #1068bf;">a31ace56</a></strong>
<div>
<span>by Sylvain Henry</span>
<i>at 2022-01-12T23:25:49-05:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>Untangled GHC.Types.Id.Make from the driver
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/81a8f7a7daeb87db53d598ced4b303f8f320442f" style="color: #1068bf;">81a8f7a7</a></strong>
<div>
<span>by Zubin Duggal</span>
<i>at 2022-01-12T23:26:24-05:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>testsuite: Fix import on python 3.10
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/66831b948f606f8ddb05f53bcbc5c55082bc598c" style="color: #1068bf;">66831b94</a></strong>
<div>
<span>by Ben Gamari</span>
<i>at 2022-01-13T14:50:13-05:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>hadrian: Include bash completion script in bindist

See #20802.
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/be33d61a7a36e156a6b95880babdf484dedc76e2" style="color: #1068bf;">be33d61a</a></strong>
<div>
<span>by Sebastian Graf</span>
<i>at 2022-01-13T14:50:49-05:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>release notes: Changes to CPR analysis
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/c2a6c3eb380891eb44d30529f0b9f8f6debf31c9" style="color: #1068bf;">c2a6c3eb</a></strong>
<div>
<span>by Sebastian Graf</span>
<i>at 2022-01-13T14:50:49-05:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>release notes: Changes to Demand analysis
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/9ccc445a41a4bc722475e1f84109411d660a9dca" style="color: #1068bf;">9ccc445a</a></strong>
<div>
<span>by Eric Lindblad</span>
<i>at 2022-01-14T10:35:46-05:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>add NUMJOBS</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/564b89ae08bbda9f46dcd0e6ad784e5899b3f01f" style="color: #1068bf;">564b89ae</a></strong>
<div>
<span>by Eric Lindblad</span>
<i>at 2022-01-14T10:35:46-05:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>Revert "add NUMJOBS"

This reverts commit c0b854e929f82c680530e944e12fad24f9e14f8e</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/2dfc268c55b5e758f41c2690bd8b40ff5ab46d88" style="color: #1068bf;">2dfc268c</a></strong>
<div>
<span>by Eric Lindblad</span>
<i>at 2022-01-14T10:35:46-05:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>update URLs</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/1aace89449a8935eff5040702c603bb7945efb61" style="color: #1068bf;">1aace894</a></strong>
<div>
<span>by Eric Lindblad</span>
<i>at 2022-01-14T10:35:46-05:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>reinsert target</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/52a4f5ab44a7d4c89189b9132a5560cb85d18714" style="color: #1068bf;">52a4f5ab</a></strong>
<div>
<span>by Andreas Klebinger</span>
<i>at 2022-01-14T10:36:21-05:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>Add test for #20938.
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/e2b60be8472ad5b7b6ef2b265b4a06d1b2b67c7d" style="color: #1068bf;">e2b60be8</a></strong>
<div>
<span>by Ben Gamari</span>
<i>at 2022-01-15T03:41:16-05:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>rts: Consolidate RtsSymbols from libc

Previously (9ebda74ec5331911881d734b21fbb31c00a0a22f) `environ` was
added to `RtsSymbols` to ensure that environment was correctly
propagated when statically linking. However, this introduced #20577
since platforms are inconsistent in whether they provide a prototype for
`environ`. I fixed this by providing a prototype but while doing so
dropped symbol-table entry, presumably thinking that it was redundant
due to the entry in the mingw-specific table.

Here I reintroduce the symbol table entry for `environ` and move libc
symbols shared by Windows and Linux into a new macro,
`RTS_LIBC_SYMBOLS`, avoiding this potential confusion.
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/0dc723957d0fdb5909f145405b775efea0fe2f6e" style="color: #1068bf;">0dc72395</a></strong>
<div>
<span>by Tamar Christina</span>
<i>at 2022-01-15T03:41:55-05:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>winio: fix heap corruption and various leaks.
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/4031ef62676b518d87dfc16d1d6c7bd64ef4c888" style="color: #1068bf;">4031ef62</a></strong>
<div>
<span>by Eric Lindblad</span>
<i>at 2022-01-15T20:11:55+00:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>wikipedia link</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/a13aff98cfccddee285b6550dd08c6ec1a3c4e17" style="color: #1068bf;">a13aff98</a></strong>
<div>
<span>by Eric Lindblad</span>
<i>at 2022-01-17T08:25:51-05:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>ms link</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/f161e890dfd41fd9735f4e259fffe2ce6d00ec1a" style="color: #1068bf;">f161e890</a></strong>
<div>
<span>by sheaf</span>
<i>at 2022-01-17T14:52:50+00:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>Use diagnostic infrastructure in GHC.Tc.Errors
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/18c797b80b938b648704f118dacbfe8655aaeea5" style="color: #1068bf;">18c797b8</a></strong>
<div>
<span>by Jens Petersen</span>
<i>at 2022-01-18T16:12:14-05:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>hadrian BinaryDist: version ghc in ghciScriptWrapper

like we do for the non-Hadrian wrapper script.
Otherwise if $bindir/ghc is a different ghc version then versioned ghci will incorrectly run the other ghc version instead.
(Normally this would only happen if there are parallel ghc versions installed in bindir.)
All the other wrapper scripts already have versioned executablename</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/310424d05836ee8788c7c79f98243ef92330f5f1" style="color: #1068bf;">310424d0</a></strong>
<div>
<span>by Matthew Pickering</span>
<i>at 2022-01-18T16:12:50-05:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>Correct type of static forms in hsExprType

The simplest way to do this seemed to be to persist the whole type in
the extension field from the typechecker so that the few relevant places

 * Desugaring can work out the return type by splitting this type rather
   than calling `dsExpr` (slightly more efficient).
 * hsExprType can just return the correct type.
 * Zonking has to now zonk the type as well

The other option we considered was wiring in StaticPtr but that is
actually quite tricky because StaticPtr refers to StaticPtrInfo which
has field selectors (which we can't easily wire in).

Fixes #20150
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/7ec783de6ba9e380da6737dad78d9a82cf56002a" style="color: #1068bf;">7ec783de</a></strong>
<div>
<span>by Matthew Pickering</span>
<i>at 2022-01-18T16:12:50-05:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>Add test for using type families with static pointers

Issue was reported on #13306
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/2d205154d3fd565c7f88e07c4c307f48c5ade902" style="color: #1068bf;">2d205154</a></strong>
<div>
<span>by Sebastian Graf</span>
<i>at 2022-01-18T16:13:25-05:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>Stricten the Strict State monad

I found it weird that most of the combinators weren't actually strict. Making
`pure` strict in the state should hopefully give Nested CPR an easier time to
unbox the nested state.
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/5a6efd218734dbb5c1350531680cd3f4177690f1" style="color: #1068bf;">5a6efd21</a></strong>
<div>
<span>by Ben Gamari</span>
<i>at 2022-01-18T16:14:01-05:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>rts/winio: Fix #18382

Here we refactor WinIO's IO completion scheme, squashing a memory leak
and fixing #18382.
To fix #18382 we drop the special thread status introduced for IoPort
blocking, BlockedOnIoCompletion, as well as drop the non-threaded RTS's
special dead-lock detection logic (which is redundant to the GC's
deadlock detection logic), as proposed in #20947.

Previously WinIO relied on foreign import ccall "wrapper" to create an
adjustor thunk which can be attached to the OVERLAPPED structure passed
to the operating system. It would then use foreign import ccall
"dynamic" to back out the original continuation from the adjustor. This
roundtrip is significantly more expensive than the alternative, using a
StablePtr. Furthermore, the implementation let the adjustor leak,
meaning that every IO request would leak a page of memory.

Fixes T18382.
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/01254ceb5173ddb179c6ead0d6b60f7ac5a86e83" style="color: #1068bf;">01254ceb</a></strong>
<div>
<span>by Matthew Pickering</span>
<i>at 2022-01-18T16:14:37-05:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>Add note about heap invariant

Closed #20904
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/21510698817fbe7254112b5967854cad28a612bf" style="color: #1068bf;">21510698</a></strong>
<div>
<span>by Sergey Vinokurov</span>
<i>at 2022-01-18T16:15:12-05:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>Improve detection of lld linker

Newer lld versions may include vendor info in --version output and
thus the version string may not start with ‘LLD’.

Fixes #20907
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/95e7964b41c371d619f504a3d46b4976f86f5b55" style="color: #1068bf;">95e7964b</a></strong>
<div>
<span>by Peter Trommler</span>
<i>at 2022-01-18T20:46:08-05:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>Fix T20638 on big-endian architectures

The test reads a 16 bit value from an array of 8 bit values. Naturally,
that leads to different values read on big-endian architectures than
on little-endian. In this case the value read is 0x8081 on big-endian
and 0x8180 on little endian. This patch changes the argument of the `and`
machop to mask bit 7 which is the only bit different. The test still checks
that bit 15 is zero, which was the original issue in #20638.

Fixes #20906.
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/fd0019a0381b4c76557063e97ff462acd617e4c2" style="color: #1068bf;">fd0019a0</a></strong>
<div>
<span>by Eric Lindblad</span>
<i>at 2022-01-18T20:46:48-05:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>ms and gh links</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/85dc61ee14049c85ab342747b0c2669e5ba3f55f" style="color: #1068bf;">85dc61ee</a></strong>
<div>
<span>by Zubin Duggal</span>
<i>at 2022-01-18T20:47:23-05:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>ci: Fix subtlety with  not taking effect because of time_it (#20898)
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/592e41131613e198560de3c88158eadcd789b317" style="color: #1068bf;">592e4113</a></strong>
<div>
<span>by Anselm Schüler</span>
<i>at 2022-01-19T13:31:49-05:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>Note that ImpredicativeTypes doesn’t allow polymorphic instances

See #20939
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/3b009e1a6247057ff976043695b797b5d0649414" style="color: #1068bf;">3b009e1a</a></strong>
<div>
<span>by Ben Gamari</span>
<i>at 2022-01-19T13:32:25-05:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>base: Add CTYPE pragmas to all foreign types

Fixes #15531 by ensuring that we know the corresponding C type for all
marshalling wrappers.

Closes #15531.
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/516eeb9e295b50872398bc9848a42ab41f743316" style="color: #1068bf;">516eeb9e</a></strong>
<div>
<span>by Robert Hensing</span>
<i>at 2022-01-24T21:28:24-05:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>Add -fcompact-unwind

This gives users the choice to enable __compact_unwind sections
when linking. These were previously hardcoded to be removed.

This can be used to solved the problem "C++ does not catch
exceptions when used with Haskell-main and linked by ghc",
https://gitlab.haskell.org/ghc/ghc/-/issues/11829

It does not change the default behavior, because I can not
estimate the impact this would have.

When Apple first introduced the compact unwind ABI, a number of
open source projects have taken the easy route of disabling it,
avoiding errors or even just warnings shortly after its
introduction.

Since then, about a decade has passed, so it seems quite possible
that Apple itself, and presumably many programs with it, have
successfully switched to the new format, to the point where the
old __eh_frame section support is in disrepair. Perhaps we should
get along with the program, but for now we can test the waters
with this flag, and use it to fix packages that need it.
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/5262b1e541c8f67e249074eef5e0567e6603ccd9" style="color: #1068bf;">5262b1e5</a></strong>
<div>
<span>by Robert Hensing</span>
<i>at 2022-01-24T21:28:24-05:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>Add test case for C++ exception handling
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/a5c9409232d8b3bfc4f10812f97c26e743f041e2" style="color: #1068bf;">a5c94092</a></strong>
<div>
<span>by Sebastian Graf</span>
<i>at 2022-01-24T21:29:00-05:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>Write Note [Strict State monad] to explain what G.U.M.State.Strict does

As requested by Simon after review of !7342.

I also took liberty to define the `Functor` instance by hand, as the derived one
subverts the invariants maintained by the pattern synonym (as already stated in
`Note [The one-shot state monad trick]`).
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/9b0d56d3356da622979e1a4514fb5681060b2bbb" style="color: #1068bf;">9b0d56d3</a></strong>
<div>
<span>by Eric Lindblad</span>
<i>at 2022-01-24T21:29:38-05:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>links</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/4eac8e727e36785af0d74d7ec9437bc78e20628e" style="color: #1068bf;">4eac8e72</a></strong>
<div>
<span>by Ben Gamari</span>
<i>at 2022-01-24T21:30:13-05:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>ghc-heap: Drop mention of BlockedOnIOCompletion

Fixes bootstrap with GHC 9.0 after 5a6efd218734dbb5c1350531680cd3f4177690f1
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/7d7b9a01ffed2afd8b7a1bb08cf9bd8edb702920" style="color: #1068bf;">7d7b9a01</a></strong>
<div>
<span>by Ryan Scott</span>
<i>at 2022-01-24T21:30:49-05:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>Hadrian: update the index-state to allow building with GHC 9.0.2

Fixes #20984.
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/aa50e118b201ae4ac2714afb998d430c9a4a9caa" style="color: #1068bf;">aa50e118</a></strong>
<div>
<span>by Peter Trommler</span>
<i>at 2022-01-24T21:31:25-05:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>testsuite: Mark test that require RTS linker
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/871ce2a300ed35639a39a86f4c85fbcb605c5d7d" style="color: #1068bf;">871ce2a3</a></strong>
<div>
<span>by Matthew Pickering</span>
<i>at 2022-01-25T17:27:30-05:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>ci: Move (most) deb9 jobs to deb10

deb9 is now end-of-life so we are dropping support for producing
bindists.
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/9d478d516a76298051993a60c196a1f61320b439" style="color: #1068bf;">9d478d51</a></strong>
<div>
<span>by Ryan Scott</span>
<i>at 2022-01-25T17:28:06-05:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>DeriveGeneric: look up datacon fixities using getDataConFixityFun

Previously, `DeriveGeneric` would look up the fixity of a data constructor
using `getFixityEnv`, but this is subtly incorrect for data constructors
defined in external modules. This sort of situation can happen with
`StandaloneDeriving`, as noticed in #20994. In fact, the same bug has occurred
in the past in #9830, and while that bug was fixed for `deriving Read` and
`deriving Show`, the fix was never extended to `DeriveGeneric` due to an
oversight. This patch corrects that oversight.

Fixes #20994.
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/112e9e9ee7a5af7db3ec29cd3fdfc73aa4125afa" style="color: #1068bf;">112e9e9e</a></strong>
<div>
<span>by Zubin Duggal</span>
<i>at 2022-01-25T17:28:41-05:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>Fix Werror on alpine
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/781323a3076781b5db50bdbeb8f64394add43836" style="color: #1068bf;">781323a3</a></strong>
<div>
<span>by Matthew Pickering</span>
<i>at 2022-01-25T17:29:17-05:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>Widen T12545 acceptance window

This test has been the scourge of contributors for a long time.

It has caused many failed CI runs and wasted hours debugging a test
which barely does anything. The fact is does nothing is the reason for
the flakiness and it's very sensitive to small changes in initialisation costs,
in particular adding wired-in things can cause this test to fluctuate
quite a bit.

Therefore we admit defeat and just bump the threshold up to 10% to catch
very large regressions but otherwise don't care what this test does.

Fixes #19414
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/e471a6803842db93483526f2be58b61ea3c33dc7" style="color: #1068bf;">e471a680</a></strong>
<div>
<span>by sheaf</span>
<i>at 2022-01-26T12:01:45-05:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>Levity-polymorphic arrays and mutable variables

This patch makes the following types levity-polymorphic in their
last argument:

  - Array# a, SmallArray# a, Weak# b, StablePtr# a, StableName# a

  - MutableArray# s a, SmallMutableArray# s a,
    MutVar# s a, TVar# s a, MVar# s a, IOPort# s a

The corresponding primops are also made levity-polymorphic, e.g.
`newArray#`, `readArray#`, `writeMutVar#`, `writeIOPort#`, etc.

Additionally, exception handling functions such as `catch#`, `raise#`,
`maskAsyncExceptions#`,... are made levity/representation-polymorphic.

Now that Array# and MutableArray# also work with unlifted types,
we can simply re-define ArrayArray# and MutableArrayArray# in terms
of them. This means that ArrayArray# and MutableArrayArray# are no
longer primitive types, but simply unlifted newtypes around Array# and
MutableArrayArray#.

This completes the implementation of the Pointer Rep proposal
  https://github.com/ghc-proposals/ghc-proposals/pull/203

Fixes #20911

-------------------------
Metric Increase:
    T12545
-------------------------

-------------------------
Metric Decrease:
    T12545
-------------------------
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/6e94ba54c55f947e9ba034d3b387ae94e240f253" style="color: #1068bf;">6e94ba54</a></strong>
<div>
<span>by Andreas Klebinger</span>
<i>at 2022-01-26T12:02:21-05:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>CorePrep: Don't try to wrap partial applications of primops in profiling ticks.

This fixes #20938.
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/b55d7db321d78e11b45b5260f1aa46c046d1c05d" style="color: #1068bf;">b55d7db3</a></strong>
<div>
<span>by sheaf</span>
<i>at 2022-01-26T12:03:01-05:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>Ensure that order of instances doesn't matter

The insert_overlapping used in lookupInstEnv used to return different
results depending on the order in which instances were processed.
The problem was that we could end up discarding an overlapping instance
in favour of a more specific non-overlapping instance. This is a
problem because, even though we won't choose the less-specific instance
for matching, it is still useful for pruning away other instances,
because it has the overlapping flag set while the new instance doesn't.

In insert_overlapping, we now keep a list of "guard" instances, which
are instances which are less-specific that one that matches (and hence
which we will discard in the end), but want to keep around solely for
the purpose of eliminating other instances.

Fixes #20946
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/61f6206221bde5427462e0db35c8e624c528486c" style="color: #1068bf;">61f62062</a></strong>
<div>
<span>by sheaf</span>
<i>at 2022-01-26T12:03:40-05:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>Remove redundant SOURCE import in FitTypes

Fixes #20995
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/e840582943eaa49e739fc9d801d2f0925daac0a0" style="color: #1068bf;">e8405829</a></strong>
<div>
<span>by sheaf</span>
<i>at 2022-01-26T12:04:15-05:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>Fix haddock markup in GHC.Tc.Errors.Types</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/590a2918d815edd184a1665e361640a29674cbf3" style="color: #1068bf;">590a2918</a></strong>
<div>
<span>by Simon Peyton Jones</span>
<i>at 2022-01-26T19:45:22-05:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>Make RULE matching insensitive to eta-expansion

This patch fixes #19790 by making the rule matcher do on-the-fly
eta reduction.  See Note [Eta reduction the target] in GHC.Core.Rules

I found I also had to careful about casts when matching; see
Note [Casts in the target] and Note [Casts in the template]

Lots more comments and Notes in the rule matcher
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/c61ac4d86f8b0746eae1ee3783f758ececc950be" style="color: #1068bf;">c61ac4d8</a></strong>
<div>
<span>by Matthew Pickering</span>
<i>at 2022-01-26T19:45:58-05:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>alwaysRerun generation of ghcconfig

This file needs to match exactly what is passed as the testCompiler.
Before this change the settings for the first compiler to be tested
woudl be stored and not regenerated if --test-compiler changed.
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/b5132f8659744303300a442212ccec4cba191e29" style="color: #1068bf;">b5132f86</a></strong>
<div>
<span>by Matthew Pickering</span>
<i>at 2022-01-26T19:45:58-05:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>Pass config.stage argument to testsuite
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/83d3ad3148917028529b4c5614e2a03877e21863" style="color: #1068bf;">83d3ad31</a></strong>
<div>
<span>by Zubin Duggal</span>
<i>at 2022-01-26T19:45:58-05:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>hadrian: Allow testing of the stage1 compiler (#20755)
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/a5924b38b0cbe75021e6042b946fe921f2c4afe4" style="color: #1068bf;">a5924b38</a></strong>
<div>
<span>by Joachim Breitner</span>
<i>at 2022-01-26T19:46:34-05:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>Simplifier: Do the right thing if doFloatFromRhs = False

If `doFloatFromRhs` is `False` then the result from `prepareBinding`
should not be used. Previously it was in ways that are silly (but not
completly wrong, as the simplifier would clean that up again, so no
test case).

This was spotted by Simon during a phone call.

Fixes #20976
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/ce488c2bdba764baf3fa5fa880b7865600679620" style="color: #1068bf;">ce488c2b</a></strong>
<div>
<span>by Simon Peyton Jones</span>
<i>at 2022-01-26T19:47:09-05:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>Better occurrence analysis with casts

This patch addresses #20988 by refactoring the way the
occurrence analyser deals with lambdas.

Previously it used collectBinders to split off a group of binders,
and deal with them together.  Now I deal with them one at a time
in occAnalLam, which allows me to skip casts easily.  See
    Note [Occurrence analysis for lambda binders]
about "lambda-groups"

This avoidance of splitting out a list of binders has some good
consequences.  Less code, more efficient, and I think, more clear.

The Simplifier needed a similar change, now that lambda-groups
can inlude casts.  It turned out that I could simplify the code
here too, in particular elminating the sm_bndrs field of StrictBind.
Simpler, more efficient.

Compile-time metrics improve slightly; here are the ones that are
+/- 0.5% or greater:

                                  Baseline
              Test    Metric         value     New value Change
--------------------------------------------------------------------
   T11303b(normal) ghc/alloc    40,736,702    40,543,992  -0.5%
    T12425(optasm) ghc/alloc    90,443,459    90,034,104  -0.5%
    T14683(normal) ghc/alloc 2,991,496,696 2,956,277,288  -1.2%
    T16875(normal) ghc/alloc    34,937,866    34,739,328  -0.6%
   T17977b(normal) ghc/alloc    37,908,550    37,709,096  -0.5%
    T20261(normal) ghc/alloc   621,154,237   618,312,480  -0.5%
     T3064(normal) ghc/alloc   190,832,320   189,952,312  -0.5%
     T3294(normal) ghc/alloc 1,604,674,178 1,604,608,264  -0.0%
   T5321FD(normal) ghc/alloc   270,540,489   251,888,480  -6.9% GOOD
  T5321Fun(normal) ghc/alloc   300,707,814   281,856,200  -6.3% GOOD
     WWRec(normal) ghc/alloc   588,460,916   585,536,400  -0.5%

         geo. mean                                        -0.3%

Metric Decrease:
    T5321FD
    T5321Fun
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/4007905d8b42f66a50612eed79a0f1097836dd3d" style="color: #1068bf;">4007905d</a></strong>
<div>
<span>by Roland Senn</span>
<i>at 2022-01-26T19:47:47-05:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>Cleanup tests in directory ghci.debugger. Fixes #21009

* Remove wrong comment about panic in `break003.script`.
* Improve test `break008`.
* Add test `break028` to `all.T`
* Fix wrong comments in `print019.script`, `print026.script` and `result001.script`.
* Remove wrong comments from `print024.script` and `print031.script`.
* Replace old module name with current name in `print035.script`.
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/3577defb3c298578339977c6b8865dff144b7ffa" style="color: #1068bf;">3577defb</a></strong>
<div>
<span>by Matthew Pickering</span>
<i>at 2022-01-26T19:48:22-05:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>ci: Move source-tarball and test-bootstrap into full-build
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/6e09b3cfdae6f034ee3a6dd52b61853c017b96f1" style="color: #1068bf;">6e09b3cf</a></strong>
<div>
<span>by Matthew Pickering</span>
<i>at 2022-01-27T02:39:35-05:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>ci: Add ENABLE_NUMA flag to explicitly turn on libnuma dependency

In recent releases a libnuma dependency has snuck into our bindists
because the images have started to contain libnuma. We now explicitly
pass `--disable-numa` to configure unless explicitly told not to by
using the `ENABLE_NUMA` environment variable.

So this is tested, there is one random validate job which builds with
--enable-numa so that the code in the RTS is still built.

Fixes #20957 and #15444
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/f4ce41863c729f6b993b5e5dd3da69ebc3623327" style="color: #1068bf;">f4ce4186</a></strong>
<div>
<span>by Simon Peyton Jones</span>
<i>at 2022-01-27T02:40:11-05:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>Improve partial signatures

As #20921 showed, with partial signatures, it is helpful to use the
same algorithm (namely findInferredDiff) for
* picking the constraints to retain for the /group/
  in Solver.decideQuantification
* picking the contraints to retain for the /individual function/
  in Bind.chooseInferredQuantifiers

This is still regrettably declicate, but it's a step forward.
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/0573aeab1381680fe86a13960a7fcdb98a69aa58" style="color: #1068bf;">0573aeab</a></strong>
<div>
<span>by Simon Peyton Jones</span>
<i>at 2022-01-27T02:40:11-05:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>Add an Outputable instance for RecTcChecker
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/f0adea14316ef476607cb7d99f74875875e52b20" style="color: #1068bf;">f0adea14</a></strong>
<div>
<span>by Ryan Scott</span>
<i>at 2022-01-27T02:40:47-05:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>Expand type synonyms in markNominal

`markNominal` is repsonsible for setting the roles of type variables
that appear underneath an `AppTy` to be nominal. However, `markNominal`
previously did not expand type synonyms, so in a data type like this:

```hs
data M f a = MkM (f (T a))

type T a = Int
```

The `a` in `M f a` would be marked nominal, even though `T a` would simply
expand to `Int`. The fix is simple: call `coreView` as appropriate in
`markNominal`. This is much like the fix for #14101, but in a different spot.

Fixes #20999.
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/18df4013f6eaee0e1de8ebd533f7e96c4ee0ff04" style="color: #1068bf;">18df4013</a></strong>
<div>
<span>by Simon Peyton Jones</span>
<i>at 2022-01-27T08:22:30-05:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>Define and use restoreLclEnv

This fixes #20981.  See Note [restoreLclEnv vs setLclEnv]
in GHC.Tc.Utils.Monad.

I also use updLclEnv rather than get/set when I can, because it's
then much clearer that it's an update rather than an entirely new
TcLclEnv coming from who-knows-where.
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/31088dd32a4dbbed649dff0700610eb7ed7a9fca" style="color: #1068bf;">31088dd3</a></strong>
<div>
<span>by David Feuer</span>
<i>at 2022-01-27T08:23:05-05:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>Add test supplied in T20996 which uses data family result kind polymorphism

David (@treeowl) writes:

> Following @kcsongor, I've used ridiculous data family result kind
> polymorphism in `linear-generics`, and am currently working on getting
> it into `staged-gg`. If it should be removed, I'd appreciate a heads up,
> and I imagine Csongor would too.
>
> What do I need by ridiculous polymorphic result kinds? Currently, data
> families are allowed to have result kinds that end in `Type` (or maybe
> `TYPE r`? I'm not sure), but not in concrete data kinds. However, they
> *are* allowed to have polymorphic result kinds. This leads to things I
> think most of us find at least quite *weird*. For example, I can write
>
> ```haskell
> data family Silly :: k
> data SBool :: Bool -> Type where
>   SFalse :: SBool False
>   STrue :: SBool True
>   SSSilly :: SBool Silly
> type KnownBool b where
>   kb :: SBool b
> instance KnownBool False where kb = SFalse
> instance KnownBool True where kb = STrue
> instance KnownBool Silly where kb = Silly
> ```
>
> Basically, every kind now has potentially infinitely many "legit" inhabitants.
>
> As horrible as that is, it's rather useful for GHC's current native
> generics system. It's possible to use these absurdly polymorphic result
> kinds to probe the structure of generic representations in a relatively
> pleasant manner. It's a sort of "formal type application" reminiscent of
> the notion of a formal power series (see the test case below). I suspect
> a system more like `kind-generics` wouldn't need this extra probing
> power, but nothing like that is natively available as yet.
>
> If the ridiculous result kind polymorphism is banished, we'll still be
> able to do what we need as long as we have stuck type families. It's
> just rather less ergonomical: a stuck type family has to be used with a
> concrete marker type argument.

Closes #20996

Co-authored-by: Matthew Pickering <matthewtpickering@gmail.com>
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/8fd2ac25f2c85e1234c12eae9bd041620f76db41" style="color: #1068bf;">8fd2ac25</a></strong>
<div>
<span>by Andreas Abel</span>
<i>at 2022-01-27T18:34:54-05:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>Whitespace only
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/7a8547432505dbf080b0f7b57c5e660f50810cf1" style="color: #1068bf;">7a854743</a></strong>
<div>
<span>by Andreas Abel</span>
<i>at 2022-01-27T18:34:54-05:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>Ctd. #18087: complete :since: info for all warnings in users guide

Some warnings have been there "forever" and I could not trace back the
exact genesis, so I wrote "since at least 5.04".

The flag `helpful-errors` could have been added in 7.2 already.  I
wrote 7.4 since I have no 7.2 available and it is not recognized by 7.0.
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/f75411e84d09998f80a3a37869b2eff28864349a" style="color: #1068bf;">f75411e8</a></strong>
<div>
<span>by Andreas Abel</span>
<i>at 2022-01-27T18:34:54-05:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>Re #18087 user's guide: add a note that -Wxxx used to be -fwarn-xxx

The warning option syntax -W was introduced in GHC 8.

The note should clarify what e.g. "since 7.6" means in connection with
"-Wxxx": That "-fwarn-xxx" was introduced in 7.6.1.

[ci skip]
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/3cae7fde8a98ca3e3bb0ea2331d549b9906cfb0c" style="color: #1068bf;">3cae7fde</a></strong>
<div>
<span>by Peter Trommler</span>
<i>at 2022-01-27T18:35:30-05:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>testsuite: Fix AtomicPrimops test on big endian
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/6cc6080c996291a3d481b415470c0361a50224a0" style="color: #1068bf;">6cc6080c</a></strong>
<div>
<span>by Ben Gamari</span>
<i>at 2022-01-27T18:36:05-05:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>users-guide: Document GHC_CHARENC environment variable

As noted in #20963, this was introduced in
1b56c40578374a15b4a2593895710c68b0e2a717 but was no documentation
was added at that point.

Closes #20963.</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/ee21e2de475d9c8a5e1fe334e2d4ef7cd49d8726" style="color: #1068bf;">ee21e2de</a></strong>
<div>
<span>by Ben Gamari</span>
<i>at 2022-01-27T18:36:41-05:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>rts: Clean up RTS flags usage message

Align flag descriptions and acknowledge that some flags may not be
available unless the user linked with `-rtsopts` (as noted in #20961).

Fixes #20961.
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/7f8ce19eb7400ae93661b173b5fc8ee6396da632" style="color: #1068bf;">7f8ce19e</a></strong>
<div>
<span>by Simon Peyton Jones</span>
<i>at 2022-01-27T18:37:17-05:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>Fix getHasGivenEqs

The second component is supposed to be "insoluble equalities arising
from givens".  But we were getting wanteds too; and that led to an
outright duplication of constraints.  It's not harmful, but it's not
right either.

I came across this when debugging something else.  Easily fixed.
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/f9ef2d26293d7e479d83e757986adffd197af502" style="color: #1068bf;">f9ef2d26</a></strong>
<div>
<span>by Simon Peyton Jones</span>
<i>at 2022-01-27T18:37:17-05:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>Set the TcLclEnv when solving a ForAll constraint

Fix a simple omission in GHC.Tc.Solver.Canonical.solveForAll,
where we ended up with the wrong TcLclEnv captured in an implication.

Result: unhelpful error message (#21006)
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/bc6ba8ef6632d3385b505ed7d389a8475224c16b" style="color: #1068bf;">bc6ba8ef</a></strong>
<div>
<span>by Sylvain Henry</span>
<i>at 2022-01-28T12:14:41-05:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>Make most shifts branchless
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/62a6d03715c6318f962c824db5d5e6aa7a30ea73" style="color: #1068bf;">62a6d037</a></strong>
<div>
<span>by Simon Peyton Jones</span>
<i>at 2022-01-28T12:15:17-05:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>Improve boxity in deferAfterPreciseException

As #20746 showed, the demand analyser behaved badly in a key I/O
library (`GHC.IO.Handle.Text`), by unnessarily boxing and reboxing.

This patch adjusts the subtle function deferAfterPreciseException;
it's quite easy, just a bit subtle.

See the new Note [deferAfterPreciseException]

And this MR deals only with Problem 2 in #20746.
Problem 1 is still open.
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/42c47cd608cd871e50c9b56691339d694a2ae4e3" style="color: #1068bf;">42c47cd6</a></strong>
<div>
<span>by Ben Gamari</span>
<i>at 2022-01-29T02:40:45-05:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>rts/trace: Shrink tracing flags
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/cee66e71ce3858602603856bf7da62d6f9552b8a" style="color: #1068bf;">cee66e71</a></strong>
<div>
<span>by Ben Gamari</span>
<i>at 2022-01-29T02:40:45-05:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>rts/EventLog: Mark various internal globals as static
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/6b0cea298f7ad222879fafd2905293ab939ff8b3" style="color: #1068bf;">6b0cea29</a></strong>
<div>
<span>by Ben Gamari</span>
<i>at 2022-01-29T02:40:45-05:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>Propagate PythonCmd to make build system
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/2e29edb7421c21902b47d130d45f60d3f584a0de" style="color: #1068bf;">2e29edb7</a></strong>
<div>
<span>by Ben Gamari</span>
<i>at 2022-01-29T02:40:45-05:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>rts: Refactor event types

Previously we would build the eventTypes array at runtime during RTS
initialization. However, this is completely unnecessary; it is
completely static data.
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/bb15c34784a3143ef048807fd351667d6775e399" style="color: #1068bf;">bb15c347</a></strong>
<div>
<span>by Ben Gamari</span>
<i>at 2022-01-29T02:40:45-05:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>rts/eventlog: Ensure that flushCount is initialized
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/268efcc9a45da36458442d9203c66a415b48f2b3" style="color: #1068bf;">268efcc9</a></strong>
<div>
<span>by Matthew Pickering</span>
<i>at 2022-01-29T02:41:21-05:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>Rework the handling of SkolemInfo

The main purpose of this patch is to attach a SkolemInfo directly to
each SkolemTv. This fixes the large number of bugs which have
accumulated over the years where we failed to report errors due to
having "no skolem info" for particular type variables. Now the origin of
each type varible is stored on the type variable we can always report
accurately where it cames from.

Fixes #20969 #20732 #20680 #19482 #20232 #19752 #10946
  #19760 #20063 #13499 #14040

The main changes of this patch are:

* SkolemTv now contains a SkolemInfo field which tells us how the
  SkolemTv was created. Used when reporting errors.

* Enforce invariants relating the SkolemInfoAnon and level of an implication (ic_info, ic_tclvl)
  to the SkolemInfo and level of the type variables in ic_skols.
    * All ic_skols are TcTyVars -- Check is currently disabled
    * All ic_skols are SkolemTv
    * The tv_lvl of the ic_skols agrees with the ic_tclvl
    * The ic_info agrees with the SkolInfo of the implication.

  These invariants are checked by a debug compiler by
  checkImplicationInvariants.

* Completely refactor kcCheckDeclHeader_sig which kept
  doing my head in. Plus, it wasn't right because it wasn't skolemising
  the binders as it decomposed the kind signature.

  The new story is described in Note [kcCheckDeclHeader_sig].  The code
  is considerably shorter than before (roughly 240 lines turns into 150
  lines).

  It still has the same awkward complexity around computing arity as
  before, but that is a language design issue.
  See Note [Arity inference in kcCheckDeclHeader_sig]

* I added new type synonyms MonoTcTyCon and PolyTcTyCon, and used
  them to be clear which TcTyCons have "finished" kinds etc, and
  which are monomorphic. See Note [TcTyCon, MonoTcTyCon, and PolyTcTyCon]

* I renamed etaExpandAlgTyCon to splitTyConKind, becuase that's a
  better name, and it is very useful in kcCheckDeclHeader_sig, where
  eta-expansion isn't an issue.

* Kill off the nasty `ClassScopedTvEnv` entirely.

Co-authored-by: Simon Peyton Jones <simon.peytonjones@gmail.com>
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/0a1d0944d68265cb48cdb8e42f658d58c1cfdac7" style="color: #1068bf;">0a1d0944</a></strong>
<div>
<span>by Ben Gamari</span>
<i>at 2022-01-29T14:52:55-05:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>Drop SPARC NCG
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/313afb3d0f96c952ae74c946f8166a80f7e64d4a" style="color: #1068bf;">313afb3d</a></strong>
<div>
<span>by Ben Gamari</span>
<i>at 2022-01-29T14:52:56-05:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>A few comment cleanups
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/d85a527f493c0ed41736cf6220a4291a26769d50" style="color: #1068bf;">d85a527f</a></strong>
<div>
<span>by Ben Gamari</span>
<i>at 2022-01-29T14:52:56-05:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>Rip out SPARC register support
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/c6bede69443a9f40b0504cee83d9b2c5e9b8163b" style="color: #1068bf;">c6bede69</a></strong>
<div>
<span>by Ben Gamari</span>
<i>at 2022-01-29T14:52:56-05:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>rts: Rip out SPARC support
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/a67c2471a0bf18adf2916fbaa6a7e3f676279b7f" style="color: #1068bf;">a67c2471</a></strong>
<div>
<span>by Ben Gamari</span>
<i>at 2022-01-29T14:52:56-05:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>Rip out remaining SPARC support
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/5771b69007f1c218db8ddc1652ffd3c0ba6d0682" style="color: #1068bf;">5771b690</a></strong>
<div>
<span>by Ben Gamari</span>
<i>at 2022-01-29T14:52:56-05:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>CmmToAsm: Drop RegPair

SPARC was its last and only user.
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/512ed3f1ceffd8da5dab91a4d0d7b16cfed18fd3" style="color: #1068bf;">512ed3f1</a></strong>
<div>
<span>by Ben Gamari</span>
<i>at 2022-01-29T14:52:56-05:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>CmmToAsm: Make RealReg a newtype

Now that RegPair is gone we no longer need to pay for the additional
box.
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/88fea6aaecc8818d370d2e6952df6549484eb108" style="color: #1068bf;">88fea6aa</a></strong>
<div>
<span>by Ben Gamari</span>
<i>at 2022-01-29T14:52:56-05:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>rts: Drop redundant #include <Arena.h>
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/ea2a403451caa15beca77af42fe0c34e7f1d7dc4" style="color: #1068bf;">ea2a4034</a></strong>
<div>
<span>by Ben Gamari</span>
<i>at 2022-01-29T14:52:56-05:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>CmmToAsm: Drop ncgExpandTop

This was only needed for SPARC's synthetic instructions.
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/88fce7404f402d8964ef5b79e6e3fde950834f9a" style="color: #1068bf;">88fce740</a></strong>
<div>
<span>by Ben Gamari</span>
<i>at 2022-01-29T14:54:04-05:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>rel-notes: Note dropping of SPARC support
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/eb956cf14bb7e2336d84ea1f17ac57f04adc2436" style="color: #1068bf;">eb956cf1</a></strong>
<div>
<span>by Ben Gamari</span>
<i>at 2022-01-30T06:27:19-05:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>testsuite: Force-enable caret diagnostics in T17786

Otherwise GHC realizes that it's not attached to a proper tty and will
disable caret diagnostics.
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/d07799ab22c156df53919737e3b11ab4ccb2b0d4" style="color: #1068bf;">d07799ab</a></strong>
<div>
<span>by Ben Gamari</span>
<i>at 2022-01-30T06:27:19-05:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>testsuite: Make T7275 more robust against CCid changes

The cost-center numbers are somewhat unstable; normalise them out.
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/c76c8050a95b6e5828a6684635c10d890afbb114" style="color: #1068bf;">c76c8050</a></strong>
<div>
<span>by Ben Gamari</span>
<i>at 2022-01-30T06:27:19-05:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>rts: Don't allocate closurePtrs# pointers on C stack

Previously `closurePtrs#` would allocate an aray of the size of the
closure being decoded on the C stack. This was ripe for overflowing the
C stack overflow. This resulted in `T12492` failing on Windows.
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/3af95f7a9acc82f61c27a8ac7eba8202dc8c8819" style="color: #1068bf;">3af95f7a</a></strong>
<div>
<span>by Ben Gamari</span>
<i>at 2022-01-30T06:27:19-05:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>testsuite/T4029: Don't depend on echo

On Windows the `cmd.exe` shell may be used to execute the command, which
will print `ECHO is on.` instead of a newline if you give it no
argument. Avoid this by rather using `printf`.
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/3531c4784c0a06063dcfc0f084943d5149e64035" style="color: #1068bf;">3531c478</a></strong>
<div>
<span>by Ben Gamari</span>
<i>at 2022-01-30T06:27:19-05:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>Use PATH_FMT instead of %s to format `pathchar *`

A few %s occurrences have snuck in over the past months.
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/ee5c4f9d05fab41f53364dc18d30932034e6ada6" style="color: #1068bf;">ee5c4f9d</a></strong>
<div>
<span>by Zubin Duggal</span>
<i>at 2022-01-31T16:51:55+05:30</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>Improve migration strategy for the XDG compliance change to the GHC application
directory.

We want to always use the old path (~/.ghc/..) if it exists.
But we never want to create the old path.
This ensures that the migration can eventually be completed once older GHC
versions are no longer in circulation.

Fixes #20684, #20669, #20660
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/60a54a8f3681869142b0967749a6999b22bad76a" style="color: #1068bf;">60a54a8f</a></strong>
<div>
<span>by doyougnu</span>
<i>at 2022-01-31T18:46:11-05:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>StgToCmm: decouple DynFlags, add StgToCmmConfig

StgToCmm: add Config, remove CgInfoDownwards

StgToCmm: runC api change to take StgToCmmConfig

StgToCmm: CgInfoDownad -> StgToCmmConfig

StgToCmm.Monad: update getters/setters/withers

StgToCmm: remove CallOpts in StgToCmm.Closure

StgToCmm: remove dynflag references

StgToCmm: PtrOpts removed

StgToCmm: add TMap to config, Prof - dynflags

StgToCmm: add omit yields to config

StgToCmm.ExtCode: remove redundant import

StgToCmm.Heap: remove references to dynflags

StgToCmm: codeGen api change, DynFlags -> Config

StgToCmm: remove dynflags in Env and StgToCmm

StgToCmm.DataCon: remove dynflags references

StgToCmm: remove dynflag references in DataCon

StgToCmm: add backend avx flags to config

StgToCmm.Prim: remove dynflag references

StgToCmm.Expr: remove dynflag references

StgToCmm.Bind: remove references to dynflags

StgToCmm: move DoAlignSanitisation to Cmm.Type

StgToCmm: remove PtrOpts in Cmm.Parser.y

DynFlags: update ipInitCode api

StgToCmm: Config Module is single source of truth

StgToCmm: Lazy config breaks IORef deadlock

testsuite: bump countdeps threshold

StgToCmm.Config: strictify fields except UpdFrame

Strictifying UpdFrameOffset causes the RTS build with stage1 to
deadlock. Additionally, before the deadlock performance of the RTS
is noticeably slower.

StgToCmm.Config: add field descriptions

StgToCmm: revert strictify on Module in config

testsuite: update CountDeps tests

StgToCmm: update comment, fix exports

Specifically update comment about loopification passed into dynflags
then stored into stgToCmmConfig. And remove getDynFlags from
Monad.hs exports

Types.Name: add pprFullName function

StgToCmm.Ticky: use pprFullname, fixup ExtCode imports

Cmm.Info: revert cmmGetClosureType removal

StgToCmm.Bind: use pprFullName, Config update comments

StgToCmm: update closureDescription api

StgToCmm: SAT altHeapCheck

StgToCmm: default render for Info table, ticky

Use default rendering contexts for info table and ticky ticky, which should be independent of command line input.

testsuite: bump count deps

pprFullName: flag for ticky vs normal style output

convertInfoProvMap: remove unused parameter

StgToCmm.Config: add backend flags to config

StgToCmm.Config: remove Backend from Config

StgToCmm.Prim: refactor Backend call sites

StgToCmm.Prim: remove redundant imports

StgToCmm.Config: refactor vec compatibility check

StgToCmm.Config: add allowQuotRem2 flag

StgToCmm.Ticky: print internal names with parens

StgToCmm.Bind: dispatch ppr based on externality

StgToCmm: Add pprTickyname, Fix ticky naming

Accidently removed the ctx for ticky SDoc output. The only relevant flag
is sdocPprDebug which was accidental set to False due to using
defaultSDocContext without altering the flag.

StgToCmm: remove stateful fields in config

fixup: config: remove redundant imports

StgToCmm: move Sequel type to its own module

StgToCmm: proliferate getCallMethod updated api

StgToCmm.Monad: add FCodeState to Monad Api

StgToCmm: add second reader monad to FCode

fixup: Prim.hs: missed a merge conflict

fixup: Match countDeps tests to HEAD

StgToCmm.Monad: withState -> withCgState

To disambiguate it from mtl withState. This withState shouldn't be
returning the new state as a value. However, fixing this means tackling
the knot tying in CgState and so is very difficult since it changes when
the thunk of the knot is forced which either leads to deadlock or to
compiler panic.
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/58eccdbc0d46f37cabcb52c3f93b640ff90b24ed" style="color: #1068bf;">58eccdbc</a></strong>
<div>
<span>by Ben Gamari</span>
<i>at 2022-01-31T18:46:47-05:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>codeGen: Fix two buglets in -fbounds-check logic

@Bodigrim noticed that the `compareByteArray#` bounds-checking logic had
flipped arguments and an off-by-one. For the sake of clarity I also
refactored occurrences of `cmmOffset` to rather use `cmmOffsetB`. I
suspect the former should be retired.
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/584f03faed67c59895c90900ededb715a1a62528" style="color: #1068bf;">584f03fa</a></strong>
<div>
<span>by Simon Peyton Jones</span>
<i>at 2022-01-31T18:47:23-05:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>Make typechecker trace less strict

Fixes #21011
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/60ac73002fc6fb717f1838a2bb3cee6535ff77c9" style="color: #1068bf;">60ac7300</a></strong>
<div>
<span>by Elton</span>
<i>at 2022-02-01T12:28:49-05:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>Use braces in TH case pprint (fixes #20893)

This patch ensures that the pretty printer formats `case` statements
using braces (instead of layout) to remain consistent with the
formatting of other statements (like `do`)
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/fdda93b03e9be56122dd8445e7ee0f1d0f933a19" style="color: #1068bf;">fdda93b0</a></strong>
<div>
<span>by Elton</span>
<i>at 2022-02-01T12:28:49-05:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>Use braces in TH LambdaCase and where clauses

This patch ensures that the pretty printer formats LambdaCase and where
clauses using braces (instead of layout) to remain consistent with the
formatting of other statements (like `do` and `case`)
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/06185102bb06d6d56e00d40172a6a473fc228501" style="color: #1068bf;">06185102</a></strong>
<div>
<span>by Ben Gamari</span>
<i>at 2022-02-01T12:29:26-05:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>Consistently upper-case "Note ["

This was achieved with

    git ls-tree --name-only HEAD -r | xargs sed -i -e 's/note \[/Note \[/g'
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/88fba8a4b3c22e953a634b81dd0b67ec66eb5e72" style="color: #1068bf;">88fba8a4</a></strong>
<div>
<span>by Ben Gamari</span>
<i>at 2022-02-01T12:29:26-05:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>Fix a few Note inconsistencies
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/05548a2209f71b407028d42e1aad566697263199" style="color: #1068bf;">05548a22</a></strong>
<div>
<span>by Douglas Wilson</span>
<i>at 2022-02-02T19:26:06-05:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>rts: Address failures to inline
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/074945de11877b489a816141ee77cb96ddea8b0b" style="color: #1068bf;">074945de</a></strong>
<div>
<span>by Simon Peyton Jones</span>
<i>at 2022-02-02T19:26:41-05:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>Two small improvements in the Simplifier

As #20941 describes, this patch implements a couple of small
fixes to the Simplifier.  They make a difference principally
with -O0, so few people will notice.  But with -O0 they can
reduce the number of Simplifer iterations.

* In occurrence analysis we avoid making x = (a,b) into a loop breaker
  because we want to be able to inline x, or (more likely) do
  case-elimination. But HEAD does not treat
      x = let y = blah in (a,b)
  in the same way.  We should though, because we are going to float
  that y=blah out of the x-binding.  A one-line fix in OccurAnal.

* The crucial function exprIsConApp_maybe uses getUnfoldingInRuleMatch
  (rightly) but the latter was deeply strange.  In HEAD, if
  rule-rewriting was off (-O0) we only looked inside stable
  unfoldings. Very stupid.  The patch simplifies.

* I also noticed that in simplStableUnfolding we were failing to
  delete the DFun binders from the usage.  So I added that.

Practically zero perf change across the board, except that we get more
compiler allocation in T3064 (which is compiled with -O0). There's a
good reason: we get better code.  But there are lots of other small
compiler allocation decreases:

Metrics: compile_time/bytes allocated
---------------------
                                   Baseline
               Test    Metric         value     New value Change
-----------------------------------------------------------------
  PmSeriesG(normal) ghc/alloc    44,260,817    44,184,920  -0.2%
  PmSeriesS(normal) ghc/alloc    52,967,392    52,891,632  -0.1%
  PmSeriesT(normal) ghc/alloc    75,498,220    75,421,968  -0.1%
  PmSeriesV(normal) ghc/alloc    52,341,849    52,265,768  -0.1%
     T10421(normal) ghc/alloc   109,702,291   109,626,024  -0.1%
    T10421a(normal) ghc/alloc    76,888,308    76,809,896  -0.1%
     T10858(normal) ghc/alloc   125,149,038   125,073,648  -0.1%
     T11276(normal) ghc/alloc    94,159,364    94,081,640  -0.1%
    T11303b(normal) ghc/alloc    40,230,059    40,154,368  -0.2%
     T11822(normal) ghc/alloc   107,424,540   107,346,088  -0.1%
     T12150(optasm) ghc/alloc    76,486,339    76,426,152  -0.1%
     T12234(optasm) ghc/alloc    55,585,046    55,507,352  -0.1%
     T12425(optasm) ghc/alloc    88,343,288    88,265,312  -0.1%
     T13035(normal) ghc/alloc    98,919,768    98,845,600  -0.1%
 T13253-spj(normal) ghc/alloc   121,002,153   120,851,040  -0.1%
     T16190(normal) ghc/alloc   290,313,131   290,074,152  -0.1%
     T16875(normal) ghc/alloc    34,756,121    34,681,440  -0.2%
    T17836b(normal) ghc/alloc    45,198,100    45,120,288  -0.2%
     T17977(normal) ghc/alloc    39,479,952    39,404,112  -0.2%
    T17977b(normal) ghc/alloc    37,213,035    37,137,728  -0.2%
     T18140(normal) ghc/alloc    79,430,588    79,350,680  -0.1%
     T18282(normal) ghc/alloc   128,303,182   128,225,384  -0.1%
     T18304(normal) ghc/alloc    84,904,713    84,831,952  -0.1%
     T18923(normal) ghc/alloc    66,817,241    66,731,984  -0.1%
     T20049(normal) ghc/alloc    86,188,024    86,107,920  -0.1%
      T5837(normal) ghc/alloc    35,540,598    35,464,568  -0.2%
      T6048(optasm) ghc/alloc    99,812,171    99,736,032  -0.1%
      T9198(normal) ghc/alloc    46,380,270    46,304,984  -0.2%

          geo. mean                                        -0.0%

Metric Increase:
    T3064
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/d2cce4532947367a5305783bd3e93c1858cded2e" style="color: #1068bf;">d2cce453</a></strong>
<div>
<span>by Morrow</span>
<i>at 2022-02-02T19:27:21-05:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>Fix @since annotation on Nat
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/6438fed95af5297f847b9bce06e27f6437e35b4e" style="color: #1068bf;">6438fed9</a></strong>
<div>
<span>by Simon Peyton Jones</span>
<i>at 2022-02-02T19:27:56-05:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>Refactor the escaping kind check for data constructors

As #20929 pointed out, we were in-elegantly checking for escaping
kinds in `checkValidType`, even though that check was guaranteed
to succeed for type signatures -- it's part of kind-checking a type.

But for /data constructors/ we kind-check the pieces separately,
so we still need the check.

This MR is a pure refactor, moving the test from `checkValidType` to
`checkValidDataCon`.

No new tests; external behaviour doesn't change.
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/fb05e5ac2fff7b4bc11803ca8ff0b5f1a209ae8b" style="color: #1068bf;">fb05e5ac</a></strong>
<div>
<span>by Andreas Klebinger</span>
<i>at 2022-02-02T19:28:31-05:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>Replace sndOfTriple with sndOf3

I also cleaned up the imports slightly while I was at it.
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/fbc77d3a5525e810f6a08b1fc1b6ce3a73ce054e" style="color: #1068bf;">fbc77d3a</a></strong>
<div>
<span>by Matthew Pickering</span>
<i>at 2022-02-02T19:29:07-05:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>testsuite: Honour PERF_BASELINE_COMMIT when computing allowed metric changes

We now get all the commits between the PERF_BASELINE_COMMIT and HEAD and
check any of them for metric changes.

Fixes #20882
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/0a82ae0d9c834661514f11fdf1183ef1b01c50ee" style="color: #1068bf;">0a82ae0d</a></strong>
<div>
<span>by Simon Peyton Jones</span>
<i>at 2022-02-02T23:49:58-05:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>More accurate unboxing

This patch implements a fix for #20817.  It ensures that

* The final strictness signature for a function accurately
  reflects the unboxing done by the wrapper
  See Note [Finalising boxity for demand signatures]
  and Note [Finalising boxity for let-bound Ids]

* A much better "layer-at-a-time" implementation of the
  budget for how many worker arguments we can have
  See Note [Worker argument budget]

  Generally this leads to a bit more worker/wrapper generation,
  because instead of aborting entirely if the budget is exceeded
  (and then lying about boxity), we unbox a bit.

Binary sizes in increase slightly (around 1.8%) because of the increase
in worker/wrapper generation.  The big effects are to GHC.Ix,
GHC.Show, GHC.IO.Handle.Internals. If we did a better job of dropping
dead code, this effect might go away.

Some nofib perf improvements:

        Program           Size    Allocs   Runtime   Elapsed  TotalMem
--------------------------------------------------------------------------------
            VSD          +1.8%     -0.5%     0.017     0.017      0.0%
         awards          +1.8%     -0.1%     +2.3%     +2.3%      0.0%
         banner          +1.7%     -0.2%     +0.3%     +0.3%      0.0%
           bspt          +1.8%     -0.1%     +3.1%     +3.1%      0.0%
          eliza          +1.8%     -0.1%     +1.2%     +1.2%      0.0%
         expert          +1.7%     -0.1%     +9.6%     +9.6%      0.0%
 fannkuch-redux          +1.8%     -0.4%     -9.3%     -9.3%      0.0%
          kahan          +1.8%     -0.1%    +22.7%    +22.7%      0.0%
       maillist          +1.8%     -0.9%    +21.2%    +21.6%      0.0%
       nucleic2          +1.7%     -5.1%     +7.5%     +7.6%      0.0%
         pretty          +1.8%     -0.2%     0.000     0.000      0.0%
reverse-complem          +1.8%     -2.5%    +12.2%    +12.2%      0.0%
           rfib          +1.8%     -0.2%     +2.5%     +2.5%      0.0%
            scc          +1.8%     -0.4%     0.000     0.000      0.0%
         simple          +1.7%     -1.3%    +17.0%    +17.0%     +7.4%
  spectral-norm          +1.8%     -0.1%     +6.8%     +6.7%      0.0%
         sphere          +1.7%     -2.0%    +13.3%    +13.3%      0.0%
            tak          +1.8%     -0.2%     +3.3%     +3.3%      0.0%
           x2n1          +1.8%     -0.4%     +8.1%     +8.1%      0.0%
--------------------------------------------------------------------------------
            Min          +1.1%     -5.1%    -23.6%    -23.6%      0.0%
            Max          +1.8%     +0.0%    +36.2%    +36.2%     +7.4%
 Geometric Mean          +1.7%     -0.1%     +6.8%     +6.8%     +0.1%

Compiler allocations in CI have a geometric mean of +0.1%; many small
decreases but there are three bigger increases (7%), all because we do
more worker/wrapper than before, so there is simply more code to
compile.  That's OK.

Perf benchmarks in perf/should_run improve in allocation by a geo mean
of -0.2%, which is good.  None get worse. T12996 improves by -5.8%

Metric Decrease:
    T12996
Metric Increase:
    T18282
    T18923
    T9630
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/d1ef62889f0988317ce0eb495130021f27765689" style="color: #1068bf;">d1ef6288</a></strong>
<div>
<span>by Peter Trommler</span>
<i>at 2022-02-02T23:50:34-05:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>Cmm: fix equality of expressions

Compare expressions and types when comparing `CmmLoad`s.
Fixes #21016
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/e59446c6a682587c21424e5830f305ab2f8f8cfa" style="color: #1068bf;">e59446c6</a></strong>
<div>
<span>by Peter Trommler</span>
<i>at 2022-02-02T23:50:34-05:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>Check type first then expression
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/b0e1ef4a31899b0b20adcf0473f0814c2479e1e6" style="color: #1068bf;">b0e1ef4a</a></strong>
<div>
<span>by Matthew Pickering</span>
<i>at 2022-02-03T14:44:17-05:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>Add failing test for #20791

The test produces different output on static vs dynamic GHC builds.
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/cae1fb1732deef1b8269de96a88ef053148bb4d8" style="color: #1068bf;">cae1fb17</a></strong>
<div>
<span>by Matthew Pickering</span>
<i>at 2022-02-03T14:44:17-05:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>Frontend01 passes with static GHC
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/e343526bdf2f50aa5a843e8649acf8b597bc4d80" style="color: #1068bf;">e343526b</a></strong>
<div>
<span>by Matthew Pickering</span>
<i>at 2022-02-03T14:44:17-05:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>Don't initialise plugins when there are no pipelines to run
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/abac45fc710e66bc84bfab35efc5813399aa333b" style="color: #1068bf;">abac45fc</a></strong>
<div>
<span>by Matthew Pickering</span>
<i>at 2022-02-03T14:44:17-05:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>Mark prog003 as expected_broken on static way #20704
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/13300dfd5007b8b0c4aa782ccb40683e4e73ea27" style="color: #1068bf;">13300dfd</a></strong>
<div>
<span>by Matthew Pickering</span>
<i>at 2022-02-03T14:44:17-05:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>Filter out -rtsopts in T16219 to make static/dynamic ways agree
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/d89439f2a506dd05314674f282580c2cdf4d906f" style="color: #1068bf;">d89439f2</a></strong>
<div>
<span>by Matthew Pickering</span>
<i>at 2022-02-03T14:44:17-05:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>T13168: Filter out rtsopts for consistency between dynamic and static ways
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/00180cdfdf8d6d21df8a7cd9c7942e9a14ac44a3" style="color: #1068bf;">00180cdf</a></strong>
<div>
<span>by Matthew Pickering</span>
<i>at 2022-02-03T14:44:17-05:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>Accept new output for T14335 test

This test was previously not run due to #20960
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/1accdcff0cadc42f9d0192408e60f66bf33b464e" style="color: #1068bf;">1accdcff</a></strong>
<div>
<span>by Matthew Pickering</span>
<i>at 2022-02-03T14:44:17-05:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>Add flushes to plugin tests which print to stdout

Due to #20791 you need to explicitly flush as otherwise the output from
these tests doesn't make it to stdout.
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/d820f2e814531d12f4209fc207bbee411c648227" style="color: #1068bf;">d820f2e8</a></strong>
<div>
<span>by Matthew Pickering</span>
<i>at 2022-02-03T14:44:17-05:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>Remove ghc_plugin_way

Using ghc_plugin_way had the unintended effect of meaning certain tests
weren't run at all when ghc_dynamic=true, if you delete this modifier
then the tests work in both the static and dynamic cases.
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/aa5ef3402579da5523ee3d1fef7f26737b8d71fc" style="color: #1068bf;">aa5ef340</a></strong>
<div>
<span>by Matthew Pickering</span>
<i>at 2022-02-03T14:44:17-05:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>Unbreak T13168 on windows

Fixes #14276
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/84ab0153a3527e7bd8b627ca559d782064af3c80" style="color: #1068bf;">84ab0153</a></strong>
<div>
<span>by Matthew Pickering</span>
<i>at 2022-02-03T14:44:53-05:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>Rewrite CallerCC parser using ReadP

This allows us to remove the dependency on parsec and hence transitively
on text.

Also added some simple unit tests for the parser and fixed two small
issues in the documentation.

Fixes #21033
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/4e6780bb44f81f81a39b6b362eef855e68431882" style="color: #1068bf;">4e6780bb</a></strong>
<div>
<span>by Matthew Pickering</span>
<i>at 2022-02-03T14:45:28-05:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>ci: Add debian 11 jobs (validate/release/nightly)

Fixes #21002
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/eddaa591a478e7598a9f5df4c26306e4fadbf08e" style="color: #1068bf;">eddaa591</a></strong>
<div>
<span>by Ben Gamari</span>
<i>at 2022-02-04T10:01:59-05:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>compiler: Introduce and use RoughMap for instance environments

Here we introduce a new data structure, RoughMap, inspired by the
previous `RoughTc` matching mechanism for checking instance matches.
This allows [Fam]InstEnv to be implemented as a trie indexed by these
RoughTc signatures, reducing the complexity of instance lookup and
FamInstEnv merging (done during the family instance conflict test)
from O(n) to O(log n).

The critical performance improvement currently realised by this patch is
in instance matching. In particular the RoughMap mechanism allows us to
discount many potential instances which will never match for constraints
involving type variables (see Note [Matching a RoughMap]). In realistic
code bases matchInstEnv was accounting for 50% of typechecker time due
to redundant work checking instances when simplifying instance contexts
when deriving instances. With this patch the cost is significantly
reduced.

The larger constants in InstEnv creation do mean that a few small
tests regress in allocations slightly. However, the runtime of T19703 is
reduced by a factor of 4. Moreover, the compilation time of the Cabal
library is slightly improved.

A couple of test cases are included which demonstrate significant
improvements in compile time with this patch.

This unfortunately does not fix the testcase provided in #19703 but does
fix #20933

-------------------------
Metric Decrease:
    T12425
Metric Increase:
    T13719
    T9872a
    T9872d
    hard_hole_fits
-------------------------

Co-authored-by: Matthew Pickering <matthewtpickering@gmail.com>
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/62d670eb3a1c059f1ff977471f8d77dac5cf21b8" style="color: #1068bf;">62d670eb</a></strong>
<div>
<span>by Matthew Pickering</span>
<i>at 2022-02-04T10:02:35-05:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>testsuite: Run testsuite dependency calculation before GHC is built

The main motivation for this patch is to allow tests to be added to the
testsuite which test things about the source tree without needing to
build GHC. In particular the notes linter can easily start failing and
by integrating it into the testsuite the  process of observing these
changes is caught by normal validation procedures rather than having to
run the linter specially.

With this patch I can run

```
./hadrian/build test --flavour=devel2  --only="uniques"
```

In a clean tree to run the checkUniques linter without having to build
GHC.

Fixes #21029
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/4bd52410d03f851f69f85d43855358733d5ceb6d" style="color: #1068bf;">4bd52410</a></strong>
<div>
<span>by Hécate Moonlight</span>
<i>at 2022-02-04T16:14:10-05:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>Add the Ix class to Foreign C integral types

Related CLC proposal is here: https://github.com/haskell/core-libraries-committee/issues/30
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/de6d7692af8efdf92d75647ad3734594cfd1e588" style="color: #1068bf;">de6d7692</a></strong>
<div>
<span>by Ben Gamari</span>
<i>at 2022-02-04T16:14:47-05:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>Drop dead code
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/b79206f1add1c9e9a88f1cc9e2d2c47be9bfea3e" style="color: #1068bf;">b79206f1</a></strong>
<div>
<span>by Ben Gamari</span>
<i>at 2022-02-04T16:14:47-05:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>Add comments
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/58d7faacafc975d522cbc9f56a7db1e46b37d4a1" style="color: #1068bf;">58d7faac</a></strong>
<div>
<span>by Ben Gamari</span>
<i>at 2022-02-04T16:14:47-05:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>cmm: Introduce cmmLoadBWord and cmmLoadGCWord
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/7217156c40240c0aed5ffd83ead0fe4ba0484c75" style="color: #1068bf;">7217156c</a></strong>
<div>
<span>by Ben Gamari</span>
<i>at 2022-02-04T16:14:47-05:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>Introduce alignment in CmmLoad
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/99ea5f2cfa09f50bf3ea105821dc095942552e59" style="color: #1068bf;">99ea5f2c</a></strong>
<div>
<span>by Ben Gamari</span>
<i>at 2022-02-04T16:14:47-05:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>Introduce alignment to CmmStore
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/606b59a55c543607742092897bb774f7cb88e65d" style="color: #1068bf;">606b59a5</a></strong>
<div>
<span>by Ben Gamari</span>
<i>at 2022-02-04T16:14:47-05:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>Fix array primop alignment
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/1cf9616a379a084daaa4d7219ebb75aa3e358e05" style="color: #1068bf;">1cf9616a</a></strong>
<div>
<span>by Ben Gamari</span>
<i>at 2022-02-04T16:14:47-05:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>llvmGen: Handle unaligned loads/stores

This allows us to produce valid code for indexWord8ArrayAs*# on
platforms that lack unaligned memory access.
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/8c18feba88aaa20b75b82c3fee7e8f742299461e" style="color: #1068bf;">8c18feba</a></strong>
<div>
<span>by Ben Gamari</span>
<i>at 2022-02-04T16:14:47-05:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>primops: Fix documentation of setByteArray#

Previously the documentation was subtly incorrect regarding the bounds
of the operation. Fix this and add a test asserting that a zero-length
operation is in fact a no-op.
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/88480e55f14c155516c96e716793c76f305d9303" style="color: #1068bf;">88480e55</a></strong>
<div>
<span>by nineonine</span>
<i>at 2022-02-04T20:35:45-05:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>Fix unsound behavior of unlifted datatypes in ghci (#20194)

Previously, directly calling a function that pattern matches on an
unlifted data type which has at least two constructors in GHCi resulted
 in a segfault.

This happened due to unaccounted return frame info table pointer. The fix is
to pop the above mentioned frame info table pointer when unlifted things are
returned. See Note [Popping return frame for unlifted things]

authors: bgamari, nineonine
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/a5c7068cc89e8a398eb9c76089875b981a9d830f" style="color: #1068bf;">a5c7068c</a></strong>
<div>
<span>by Simon Peyton Jones</span>
<i>at 2022-02-04T20:36:20-05:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>Add Outputable instance for Messages

c.f. #20980
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/bf495f7206741c81135c04ce6bb943c4a6729e80" style="color: #1068bf;">bf495f72</a></strong>
<div>
<span>by Simon Peyton Jones</span>
<i>at 2022-02-04T20:36:20-05:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>Add a missing restoreLclEnv

The commit

  commit 18df4013f6eaee0e1de8ebd533f7e96c4ee0ff04
  Date:   Sat Jan 22 01:12:30 2022 +0000

    Define and use restoreLclEnv

omitted to change one setLclEnv to restoreLclEnv, namely
the one in GHC.Tc.Errors.warnRedundantConstraints.

This new commit fixes the omission.
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/6af8e71ed7e749ba94e7a7eaf8b2229341bf35da" style="color: #1068bf;">6af8e71e</a></strong>
<div>
<span>by Simon Peyton Jones</span>
<i>at 2022-02-04T20:36:20-05:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>Improve errors for non-existent labels

This patch fixes #17469, by improving matters when you use
non-existent field names in a record construction:
   data T = MkT { x :: Int }
   f v = MkT { y = 3 }

The check is now made in the renamer, in GHC.Rename.Env.lookupRecFieldOcc.

That in turn led to a spurious error in T9975a, which is fixed by
making GHC.Rename.Names.extendGlobalRdrEnvRn fail fast if it finds
duplicate bindings.  See Note [Fail fast on duplicate definitions]
in that module for more details.

This patch was originated and worked on by Alex D (@nineonine)
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/299acff08aa1b7b720ad2b69c459c514033bc395" style="color: #1068bf;">299acff0</a></strong>
<div>
<span>by nineonine</span>
<i>at 2022-02-05T19:21:49-05:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>Exit with failure when -e fails (fixes #18411 #9916 #17560)
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/549292eb3725eca61722ddd2cfb4d964ccba3fc7" style="color: #1068bf;">549292eb</a></strong>
<div>
<span>by Matthew Pickering</span>
<i>at 2022-02-05T19:22:25-05:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>Make implication tidying agree with Note [Tidying multiple names at once]

Note [Tidying multiple names at once] indicates that if multiple
variables have the same name then we shouldn't prioritise one of them
and instead rename them all to a1, a2, a3... etc

This patch implements that change, some error message changes as
expected.

Closes #20932
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/2e9248b7f7f645851ceb49931d10b9c5e58d2bbb" style="color: #1068bf;">2e9248b7</a></strong>
<div>
<span>by Ben Gamari</span>
<i>at 2022-02-06T01:43:56-05:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>rts/m32: Accept any address within 4GB of program text

Previously m32 would assume that the program image was located near the
start of the address space and therefore assume that it wanted pages
in the bottom 4GB of address space. Instead we now check whether they
are within 4GB of whereever the program is loaded.

This is necessary on Windows, which now tends to place the image in high
memory. The eventual goal is to use m32 to allocate memory for linker
sections on Windows.
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/86589b893c092ae900723e76848525f20f6cafbf" style="color: #1068bf;">86589b89</a></strong>
<div>
<span>by GHC GitLab CI</span>
<i>at 2022-02-06T01:43:56-05:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>rts: Generalize mmapForLinkerMarkExecutable

Renamed to mprotectForLinker and allowed setting of arbitrary protection
modes.
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/88ef270aa0cecf2463396f93a273656de9df9433" style="color: #1068bf;">88ef270a</a></strong>
<div>
<span>by GHC GitLab CI</span>
<i>at 2022-02-06T01:43:56-05:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>rts/m32: Add consistency-checking infrastructure

This adds logic, enabled in the `-debug` RTS for checking the internal
consistency of the m32 allocator. This area has always made me a bit
nervous so this should help me sleep better at night in exchange for
very little overhead.
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/2d6f0b17e3ce9326abd43e187910db0a5e519efa" style="color: #1068bf;">2d6f0b17</a></strong>
<div>
<span>by Ben Gamari</span>
<i>at 2022-02-06T01:43:56-05:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>rts/m32: Free large objects back to the free page pool

Not entirely convinced that this is worth doing.
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/e96f50beec172f5ff95769842cb9be724363311c" style="color: #1068bf;">e96f50be</a></strong>
<div>
<span>by GHC GitLab CI</span>
<i>at 2022-02-06T01:43:56-05:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>rts/m32: Increase size of free page pool to 256 pages
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/fc083b480adedf26d47f880402f111680ec34183" style="color: #1068bf;">fc083b48</a></strong>
<div>
<span>by Ben Gamari</span>
<i>at 2022-02-06T01:43:56-05:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>rts: Dump memory map on memory mapping failures

Fixes #20992.
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/633296bca950f0ef17313f8487d2f5ddd369bc4f" style="color: #1068bf;">633296bc</a></strong>
<div>
<span>by Ben Gamari</span>
<i>at 2022-02-06T01:43:56-05:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>Fix macro redefinition warnings for PRINTF

* Move `PRINTF` macro from `Stats.h` to `Stats.c` as it's only needed in
  the latter.
* Undefine `PRINTF` at the end of `Messages.h` to avoid leaking it.
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/37d435d263832ffb2808dad0ccd50110c9f0c430" style="color: #1068bf;">37d435d2</a></strong>
<div>
<span>by John Ericson</span>
<i>at 2022-02-06T01:44:32-05:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>Purge DynFlags from GHC.Stg

Also derive some more instances. GHC doesn't need them, but downstream
consumers may need to e.g. put stuff in maps.
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/886baa345f372a2a160cecb3c25c8b38ab0e17ea" style="color: #1068bf;">886baa34</a></strong>
<div>
<span>by Peter Trommler</span>
<i>at 2022-02-06T10:58:18+01:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>RTS: Fix cabal specification

In 35bea01b xxhash.c was removed. Remove the extra-source-files
stanza referring to it.
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/27581d77d489119da5dc1104793503b10240660d" style="color: #1068bf;">27581d77</a></strong>
<div>
<span>by Alex D</span>
<i>at 2022-02-06T20:50:44-05:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>hadrian: remove redundant import</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/4ff19981106230e1a5c8e03fde5e31e5e906c95b" style="color: #1068bf;">4ff19981</a></strong>
<div>
<span>by John Ericson</span>
<i>at 2022-02-07T11:04:43-05:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>GHC.HsToCore.Coverage: No more HscEnv, less DynFlags

Progress towards #20730
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/b09389a6b658f8bdc5c90003d1e79d5d092fec9e" style="color: #1068bf;">b09389a6</a></strong>
<div>
<span>by John Ericson</span>
<i>at 2022-02-07T11:04:43-05:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>Create `CoverageConfig`

As requested by @mpickering to collect the information we project from
`HscEnv`
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/ff867c460db9cfc43f5697c8e582f8c1ea4bd572" style="color: #1068bf;">ff867c46</a></strong>
<div>
<span>by Greg Steuck</span>
<i>at 2022-02-07T11:05:24-05:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>Avoid using removed utils/checkUniques in validate

Asked the question:
https://gitlab.haskell.org/ghc/ghc/-/merge_requests/7460/diffs#4061f4d17546e239dd10d78c6b48668c2a288e02_1_0
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/a9355e84480e421a22fee57d6ee24d9ec059e128" style="color: #1068bf;">a9355e84</a></strong>
<div>
<span>by sheaf</span>
<i>at 2022-02-08T05:27:25-05:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>Allow HasField in quantified constraints

We perform validity checking on user-written HasField instances,
for example to disallow:

  data Foo a = Foo { fld :: Int }
  instance HasField "fld" (Foo a) Bool

However, these checks were also being made on quantified constraints,
e.g.

  data Bar where
    Bar :: (forall a. HasField s (Foo a) Int) => Proxy s -> Bar

This patch simply skips validity checking for quantified constraints,
in line with what we already do for equality constraints such as
Coercible.

Fixes #20989
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/6d77d3d8d6cedb840e1a86a3b23d6e6c1409ccbd" style="color: #1068bf;">6d77d3d8</a></strong>
<div>
<span>by sheaf</span>
<i>at 2022-02-08T05:28:05-05:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>Relax TyEq:N: allow out-of-scope newtype DataCon

The 'bad_newtype' assertion in GHC.Tc.Solver.Canonical.canEqCanLHSFinish
failed to account for the possibility that the newtype constructor
might not be in scope, in which case we don't provide any guarantees
about canonicalising away a newtype on the RHS of a representational
equality.

Fixes #21010
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/a893d2f383212271644401c7088cf937eb453fa3" style="color: #1068bf;">a893d2f3</a></strong>
<div>
<span>by Matthew Pickering</span>
<i>at 2022-02-08T05:28:42-05:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>Remove linter dependency on lint-submods
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/457a5b9c6eadfd13548f25c5568d5c802d22f411" style="color: #1068bf;">457a5b9c</a></strong>
<div>
<span>by Ben Gamari</span>
<i>at 2022-02-08T05:28:42-05:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>notes-util: initial commit
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/1a9438594d6d5280dfe43e4e597dd0380963268d" style="color: #1068bf;">1a943859</a></strong>
<div>
<span>by Ben Gamari</span>
<i>at 2022-02-08T05:28:42-05:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>gitlab-ci: Add lint-notes job
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/bc5cbce61b57f57cadf5c25fa3e60cf34c3b98ea" style="color: #1068bf;">bc5cbce6</a></strong>
<div>
<span>by Matthew Pickering</span>
<i>at 2022-02-08T05:28:42-05:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>Add notes linter to testsuite
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/38c6e301165777b88cc172aafed1b33d6f42099b" style="color: #1068bf;">38c6e301</a></strong>
<div>
<span>by Matthew Pickering</span>
<i>at 2022-02-08T05:28:42-05:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>Fix some notes
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/c3aac0f84d015165884681417905b51ecb7a168b" style="color: #1068bf;">c3aac0f8</a></strong>
<div>
<span>by Matthew Pickering</span>
<i>at 2022-02-08T05:28:42-05:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>Add suggestion mode to notes-util
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/5dd29aeac4da7b4183bef0737d2f7223ddb9a2a4" style="color: #1068bf;">5dd29aea</a></strong>
<div>
<span>by Cale Gibbard</span>
<i>at 2022-02-08T05:29:18-05:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>`hscSimpleIface` drop fingerprint param and ret

`hscSimpleIface` does not depend on or modify the `Maybe Fingerprint` it
is given, only passes it through, so get rid of the extraneous passing.

Perhaps the intent was that there would be an iface fingerprint check of
some sort?  but this was never done. If/when we we want to do that, we
can add it back then.
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/4bcbd731ab173b428133a6c093bd4f1660563247" style="color: #1068bf;">4bcbd731</a></strong>
<div>
<span>by Cale Gibbard</span>
<i>at 2022-02-08T05:29:54-05:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>Document `hscIncrementalFrontend` and flip bool
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/b713db1ec3f7c1fb660f157c421c99d4db4dfbd3" style="color: #1068bf;">b713db1e</a></strong>
<div>
<span>by John Ericson</span>
<i>at 2022-02-08T05:30:29-05:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>StgToCmm: Get rid of GHC.Driver.Session imports

`DynFlags` is gone, but let's move a few trivial things around to get
rid of its module too.
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/f115c382a0b0cc9299e73bcb8a11ad97c5fe7c57" style="color: #1068bf;">f115c382</a></strong>
<div>
<span>by Gleb Popov</span>
<i>at 2022-02-08T05:31:05-05:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>Fix build on recent FreeBSD.

Recent FreeBSD versions gained the sched_getaffinity function, which made two
mutually exclusive #ifdef blocks to be enabled.
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/3320ab409939b5450f130edc9f882bde2970e0ff" style="color: #1068bf;">3320ab40</a></strong>
<div>
<span>by Ben Gamari</span>
<i>at 2022-02-08T10:42:04-05:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>rts/MemoryMap: Use mach_-prefixed type names

There appears to be some inconsistency in system-call type naming across
Darwin toolchains. Specifically:

 * the `address` argument to `mach_vm_region` apparently wants to be a
   `mach_vm_address_t *`, not a `vm_address_t *`

 * the `vmsize` argument to `mach_vm_region` wants to be a
   `mach_vm_size_t`, not a `vm_size_t`
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/b33f0cfabfcace98bb8b77a5bce6c6efba076cf6" style="color: #1068bf;">b33f0cfa</a></strong>
<div>
<span>by Richard Eisenberg</span>
<i>at 2022-02-08T10:42:41-05:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>Document that reifyRoles includes kind parameters

Close #21056
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/bd493ed6a63e41855f90c210f6cf1bace9199cf0" style="color: #1068bf;">bd493ed6</a></strong>
<div>
<span>by PHO</span>
<i>at 2022-02-08T10:43:19-05:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>Don't try to build stage1 with -eventlog if stage0 doesn't provide it

Like -threaded, stage0 isn't guaranteed to have an event-logging RTS.
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/03c2de0f4344d013522be3bc5a57b57312075957" style="color: #1068bf;">03c2de0f</a></strong>
<div>
<span>by Matthew Pickering</span>
<i>at 2022-02-09T03:56:22-05:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>testsuite: Use absolute paths for config.libdir

Fixes #21052
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/ef2945254987bb0d68fd366f9d19c71d597ae841" style="color: #1068bf;">ef294525</a></strong>
<div>
<span>by Matthew Pickering</span>
<i>at 2022-02-09T03:56:22-05:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>testsuite: Clean up old/redundant predicates
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/a39ed908abd91b7863f8bd9ddfd72bc11535c451" style="color: #1068bf;">a39ed908</a></strong>
<div>
<span>by Matthew Pickering</span>
<i>at 2022-02-09T03:56:22-05:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>testsuite: Add missing dependency on ghcconfig
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/a172be07e3dce758a2325104a3a37fc8b1d20c9c" style="color: #1068bf;">a172be07</a></strong>
<div>
<span>by PHO</span>
<i>at 2022-02-09T03:56:59-05:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>Implement System.Environment.getExecutablePath for NetBSD

and also use it from GHC.BaseDir.getBaseDir
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/62fa126d0f04c507e622c1f0356f26c9692e2b8e" style="color: #1068bf;">62fa126d</a></strong>
<div>
<span>by PHO</span>
<i>at 2022-02-09T03:57:37-05:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>Fix a portability issue in m4/find_llvm_prog.m4

`test A == B' is a Bash extension, which doesn't work on platforms where
/bin/sh is not Bash.
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/fd9981e347144ce69f4747bd635789f25b673f93" style="color: #1068bf;">fd9981e3</a></strong>
<div>
<span>by Ryan Scott</span>
<i>at 2022-02-09T03:58:13-05:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>Look through untyped TH splices in tcInferAppHead_maybe

Previously, surrounding a head expression with a TH splice would defeat
`tcInferAppHead_maybe`, preventing some expressions from typechecking that
used to typecheck in previous GHC versions (see #21038 for examples). This is
simple enough to fix: just look through `HsSpliceE`s in `tcInferAppHead_maybe`.
I've added some additional prose to `Note [Application chains and heads]` in
`GHC.Tc.Gen.App` to accompany this change.

Fixes #21038.
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/009759811abb96c8d9a16126ef5c7bdea44a65d0" style="color: #1068bf;">00975981</a></strong>
<div>
<span>by sheaf</span>
<i>at 2022-02-09T03:58:53-05:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>Add test for #21037

  This program was rejected by GHC 9.2, but is accepted
  on newer versions of GHC. This patch adds a regression test.

  Closes #21037
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/fad0b2b01c24159bea9204d45e38fb89eb0d7403" style="color: #1068bf;">fad0b2b0</a></strong>
<div>
<span>by Ben Gamari</span>
<i>at 2022-02-09T08:29:46-05:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>Rename -merge-objs flag to --merge-objs

For consistency with --make and friends.
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/1dbe5b2a97c41b3f24a48372ba25faeae08e8cd6" style="color: #1068bf;">1dbe5b2a</a></strong>
<div>
<span>by Matthew Pickering</span>
<i>at 2022-02-09T08:30:22-05:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>driver: Filter out our own boot module in hptSomeThingsBelow

hptSomeThingsBelow would return a list of modules which contain the
.hs-boot file for a particular module. This caused some problems because
we would try and find the module in the HPT (but it's not there when
we're compiling the module itself).

Fixes #21058
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/2b1cced18159171a4d6e730ba1d69cd024babb8d" style="color: #1068bf;">2b1cced1</a></strong>
<div>
<span>by Sylvain Henry</span>
<i>at 2022-02-09T20:42:23-05:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>NCG: minor code factorization
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/e01ffec2456739bcfba750f0c36716ff697404bf" style="color: #1068bf;">e01ffec2</a></strong>
<div>
<span>by Sylvain Henry</span>
<i>at 2022-02-09T20:42:23-05:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>ByteCode: avoid out-of-bound read

Cf https://gitlab.haskell.org/ghc/ghc/-/issues/18431#note_287139
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/53c26e79961b6fac249425b1023e92646cdbfe41" style="color: #1068bf;">53c26e79</a></strong>
<div>
<span>by Ziyang Liu</span>
<i>at 2022-02-09T20:43:02-05:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>Include ru_name in toHsRule message

See #18147
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/3df06922f03191310ebee0547de1782eeb6bda67" style="color: #1068bf;">3df06922</a></strong>
<div>
<span>by Ben Gamari</span>
<i>at 2022-02-09T20:43:39-05:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>rts: Rename MemoryMap.[ch] -> ReportMemoryMap.[ch]
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/e219ac826b05db833531028e0663f62f12eff010" style="color: #1068bf;">e219ac82</a></strong>
<div>
<span>by Ben Gamari</span>
<i>at 2022-02-09T20:43:39-05:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>rts: Move mmapForLinker and friends to linker/MMap.c

They are not particularly related to linking.
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/30e205ca1e8d78a538e0217e3cb07f13396900df" style="color: #1068bf;">30e205ca</a></strong>
<div>
<span>by Ben Gamari</span>
<i>at 2022-02-09T20:43:39-05:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>rts/linker: Drop dead IA64 code
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/4d3a306dce59649b303ac7aba56758aff3dee077" style="color: #1068bf;">4d3a306d</a></strong>
<div>
<span>by Ben Gamari</span>
<i>at 2022-02-09T20:43:39-05:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>rts/linker/MMap: Use MemoryAccess in mmapForLinker
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/1db4f1fe7603c338ead0ac7e1ecfd0d8354d37bf" style="color: #1068bf;">1db4f1fe</a></strong>
<div>
<span>by Ben Gamari</span>
<i>at 2022-02-09T20:43:39-05:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>linker: Don't use MAP_FIXED

As noted in #21057, we really shouldn't be using MAP_FIXED. I would much
rather have the process crash with a "failed to map" error than randomly
overwrite existing mappings.

Closes #21057.
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/1eeae25c9541959f88b1063e90c66972a602c5c3" style="color: #1068bf;">1eeae25c</a></strong>
<div>
<span>by Ben Gamari</span>
<i>at 2022-02-09T20:43:39-05:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>rts/mmap: Refactor mmapForLinker

Here we try to separate the policy decisions of where to place mappings
from the mechanism of creating the mappings. This makes things
significantly easier to follow.
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/ac2d18a7353cd3ac1ba4b5993f2776fe0c5eedc9" style="color: #1068bf;">ac2d18a7</a></strong>
<div>
<span>by sheaf</span>
<i>at 2022-02-09T20:44:18-05:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>Add some perf tests for coercions

  This patch adds some performance tests for programs that create
  large coercions. This is useful because the existing test coverage
  is not very representative of real-world situations. In particular,
  this adds a test involving an extensible records library, a common
  pain-point for users.
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/48f257151f30f6b4d2f8b1a6ea4185ccd00ebd95" style="color: #1068bf;">48f25715</a></strong>
<div>
<span>by Andreas Klebinger</span>
<i>at 2022-02-10T04:35:35-05:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>Add late cost centre support

This allows cost centres to be inserted after the core optimization
pipeline has run.
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/0ff70427c78b57558da0f966a08013090ac51fd1" style="color: #1068bf;">0ff70427</a></strong>
<div>
<span>by Andreas Klebinger</span>
<i>at 2022-02-10T04:36:11-05:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>Docs:Mention that safe calls don't keep their arguments alive.
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/1d3ed1687f8eb5023338499f5f548a5b39074349" style="color: #1068bf;">1d3ed168</a></strong>
<div>
<span>by Ben Gamari</span>
<i>at 2022-02-10T04:36:46-05:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>PEi386: Drop Windows Vista fallback in addLibrarySearchPath

We no longer support Windows Vista.
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/2a6f2681ad53899869473343e845bee189a809c3" style="color: #1068bf;">2a6f2681</a></strong>
<div>
<span>by Ben Gamari</span>
<i>at 2022-02-10T04:36:46-05:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>linker/PEi386: Make addLibrarySearchPath long-path aware

Previously `addLibrarySearchPath` failed to normalise the added path to
UNC form before passing it to `AddDllDirectory`. Consequently, the call
was subject to the MAX_PATH restriction, leading to the failure of
`test-defaulting-plugin-fail`, among others. Happily, this also nicely
simplifies the implementation.

Closes #21059.
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/2a47ee9c65140ad5d72ff27949f3fc7948569d9e" style="color: #1068bf;">2a47ee9c</a></strong>
<div>
<span>by Daniel Gröber</span>
<i>at 2022-02-10T19:18:58-05:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>ghc-boot: Simplify writePackageDb permissions handling

Commit ef8a3fbf1 ("ghc-boot: Fix metadata handling of writeFileAtomic")
introduced a somewhat over-engineered fix for #14017 by trying to preserve
the current permissions if the target file already exists.

The problem in the issue is simply that the package db cache file should be
world readable but isn't if umask is too restrictive. In fact the previous
fix only handles part of this problem. If the file isn't already there in a
readable configuration it wont make it so which isn't really ideal either.

Rather than all that we now simply always force all the read access bits to
allow access while leaving the owner at the system default as it's just not
our business to mess with it.
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/a1d979682caeac0c9a99ec213ae53a15a82a3682" style="color: #1068bf;">a1d97968</a></strong>
<div>
<span>by Ben Gamari</span>
<i>at 2022-02-10T19:19:34-05:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>Bump Cabal submodule

Adapts GHC to the factoring-out of `Cabal-syntax`.

Fixes #20991.

Metric Decrease:
    haddock.Cabal
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/89cf8caac369279402443ae61bfa8d8d28f5d67f" style="color: #1068bf;">89cf8caa</a></strong>
<div>
<span>by Morrow</span>
<i>at 2022-02-10T19:20:13-05:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>Add metadata to integer-gmp.cabal
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/c995b7e7cfbd3584509bd31a8ea5b840f9fcb20e" style="color: #1068bf;">c995b7e7</a></strong>
<div>
<span>by Matthew Pickering</span>
<i>at 2022-02-10T19:20:48-05:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>eventlog: Fix event type of EVENT_IPE

This leads to corrupted eventlogs because the size of EVENT_IPE is
completely wrong.

Fixes a bug introduced in 2e29edb7421c21902b47d130d45f60d3f584a0de
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/59ba8fb3fb2bd7ac99b559141bf87a39c72e8a00" style="color: #1068bf;">59ba8fb3</a></strong>
<div>
<span>by Matthew Pickering</span>
<i>at 2022-02-10T19:20:48-05:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>eventlog: Fix event type of MEM_RETURN

This leads to corrupted eventlogs because the size of EVENT_MEM_RETURN is
completely wrong.

Fixes a bug introduced in 2e29edb7421c21902b47d130d45f60d3f584a0de
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/19413d09a3939c97a8a3b8890f97c3cf48af31d1" style="color: #1068bf;">19413d09</a></strong>
<div>
<span>by Matthew Pickering</span>
<i>at 2022-02-10T19:20:48-05:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>eventlog: Delete misleading comment in gen_event_types.py

Not all events start with CapNo and there's not logic I could see which
adds this to the length.
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/e06f49c0064c61fec5fa79b034dee5fcb1a15247" style="color: #1068bf;">e06f49c0</a></strong>
<div>
<span>by Matthew Pickering</span>
<i>at 2022-02-10T19:20:48-05:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>eventlog: Fix size of TICKY_COUNTER_BEGIN_SAMPLE
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/2f99255bc390db543ae57dec36a037cae9cd2996" style="color: #1068bf;">2f99255b</a></strong>
<div>
<span>by Matthew Pickering</span>
<i>at 2022-02-10T19:21:24-05:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>Fix copy-pasto in prof-late-ccs docs
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/19deb002daa74de15cebaae3d861e6f2f932f7fd" style="color: #1068bf;">19deb002</a></strong>
<div>
<span>by Matthew Pickering</span>
<i>at 2022-02-10T19:21:59-05:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>Refine tcSemigroupWarnings to work in ghc-prim

ghc-prim doesn't depend on base so can't have any Monoid or Semigroup
instances. However, attempting to load these definitions ran into issues
when the interface for `GHC.Base` did exist as that would try and load
the interface for `GHC.Types` (which is the module we are trying to
compile and has no interface).

The fix is to just not do this check when we are compiling a module in
ghc-prim.

Fixes #21069
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/34dec6b75dbcc2bf057b1dacbb2877faaafa2a74" style="color: #1068bf;">34dec6b7</a></strong>
<div>
<span>by sheaf</span>
<i>at 2022-02-11T17:55:34-05:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>Decrease the size of the LargeRecord test

  This test was taking too long to run, so this patch makes it smaller.

-------------------------
Metric Decrease:
    LargeRecord
-------------------------
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/9cab90d9ffbaa9fac8458a63f82809f4b0be7d2b" style="color: #1068bf;">9cab90d9</a></strong>
<div>
<span>by Matthew Pickering</span>
<i>at 2022-02-11T22:27:19-05:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>Make sure all platforms have a release job

The release bindists are currently a mixture of validate and release
builds. This is bad because the validate builds don't have profiling
libraries. The fix is to make sure there is a release job for each
platform we want to produce a release for.t

Fixes #21066
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/4bce35758ca2f94b3f1056211fa0c2d5da550b3e" style="color: #1068bf;">4bce3575</a></strong>
<div>
<span>by Matthew Pickering</span>
<i>at 2022-02-11T22:27:54-05:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>testsuite: Make sure all tests trigger ghc rebuild

I made a mistake when implementing #21029 which meant that certain tests
didn't trigger a GHC recompilation. By adding the `test:ghc` target to
the default settings all tests will now depend on this target unless
explicitly opting out via the no_deps modifier.
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/90a26f8b0dd99129d3fd7fe28127cb69abd46328" style="color: #1068bf;">90a26f8b</a></strong>
<div>
<span>by Sylvain Henry</span>
<i>at 2022-02-11T22:28:34-05:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>Fix documentation about Word64Rep/Int64Rep (#16964)
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/0e93023eef174262310737004d398bc7a606939a" style="color: #1068bf;">0e93023e</a></strong>
<div>
<span>by Andreas Klebinger</span>
<i>at 2022-02-12T13:59:41+00:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>Tag inference work.

This does three major things:
* Enforce the invariant that all strict fields must contain tagged
pointers.
* Try to predict the tag on bindings in order to omit tag checks.
* Allows functions to pass arguments unlifted (call-by-value).

The former is "simply" achieved by wrapping any constructor allocations with
a case which will evaluate the respective strict bindings.

The prediction is done by a new data flow analysis based on the STG
representation of a program. This also helps us to avoid generating
redudant cases for the above invariant.

StrictWorkers are created by W/W directly and SpecConstr indirectly.
See the Note [Strict Worker Ids]

Other minor changes:

* Add StgUtil module containing a few functions needed by, but
  not specific to the tag analysis.

-------------------------
Metric Decrease:
        T12545
        T18698b
        T18140
        T18923
        LargeRecord
Metric Increase:
        LargeRecord
        ManyAlternatives
        ManyConstructors
        T10421
        T12425
        T12707
        T13035
        T13056
        T13253
        T13253-spj
        T13379
        T15164
        T18282
        T18304
        T18698a
        T1969
        T20049
        T3294
        T4801
        T5321FD
        T5321Fun
        T783
        T9233
        T9675
        T9961
        T19695
        WWRec
-------------------------
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/744f8a1196d5853d507f2751fd39fe35395684e1" style="color: #1068bf;">744f8a11</a></strong>
<div>
<span>by Greg Steuck</span>
<i>at 2022-02-12T17:13:55-05:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>Only check the exit code in derefnull & divbyzero tests on OpenBSD
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/eeead9fc9bdb5e1add09a9c3aa40df9a77d9eac3" style="color: #1068bf;">eeead9fc</a></strong>
<div>
<span>by Ben Gamari</span>
<i>at 2022-02-13T03:26:14-05:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>rts/Adjustor: Ensure that allocateExecPage succeeded

Previously we failed to handle the case that `allocateExecPage` failed.
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/afdfaff0fd4ed8162997fe904924d2ce528be285" style="color: #1068bf;">afdfaff0</a></strong>
<div>
<span>by Ben Gamari</span>
<i>at 2022-02-13T03:26:14-05:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>rts: Drop DEC Alpha adjustor implementation

The last Alpha chip was produced in 2004.
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/191dfd2d88f6d2fd7a879f14da26fe88e616c8ea" style="color: #1068bf;">191dfd2d</a></strong>
<div>
<span>by Ben Gamari</span>
<i>at 2022-02-13T03:26:14-05:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>rts/adjustor: Split Windows path out of NativeAmd64
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/be591e27c76f1eaee79df671d8cf7e39d3d41720" style="color: #1068bf;">be591e27</a></strong>
<div>
<span>by Ben Gamari</span>
<i>at 2022-02-13T03:26:14-05:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>rts: Initial commit of AdjustorPool
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/d6d48b167a35eebe3cecd047814c10f4685906d3" style="color: #1068bf;">d6d48b16</a></strong>
<div>
<span>by Ben Gamari</span>
<i>at 2022-02-13T03:26:14-05:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>Introduce initAdjustors
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/eab37902d0cbfc4a8362aa0f0b2cf8eb3e9ce27f" style="color: #1068bf;">eab37902</a></strong>
<div>
<span>by Ben Gamari</span>
<i>at 2022-02-13T03:26:14-05:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>adjustors/NativeAmd64: Use AdjustorPool
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/974e73afd519e1189f01ab3e96d3fe0212e74b05" style="color: #1068bf;">974e73af</a></strong>
<div>
<span>by Ben Gamari</span>
<i>at 2022-02-13T03:26:14-05:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>adjustors/NativeAmd64Mingw: Use AdjustorPool
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/95fab83f3af2e3b54fb59d761b38466344608ed8" style="color: #1068bf;">95fab83f</a></strong>
<div>
<span>by Ben Gamari</span>
<i>at 2022-02-13T03:26:14-05:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>configure: Fix result reporting of adjustors method check
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/ef5cf55d71e84a0a42596b4ec253ecb0d63f149b" style="color: #1068bf;">ef5cf55d</a></strong>
<div>
<span>by nikshalark</span>
<i>at 2022-02-13T03:26:16-05:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>(#21044) Documented arithmetic functions in base.

Didn't get it right the ninth time. Now everything's formatted correctly.
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/acb482cc198bc6fbc5b0f7d93fd493853c77671f" style="color: #1068bf;">acb482cc</a></strong>
<div>
<span>by Takenobu Tani</span>
<i>at 2022-02-16T05:27:17-05:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>Relax load_load_barrier for aarch64

This patch relaxes the instruction for load_load_barrier().
Current load_load_barrier() implements full-barrier with `dmb sy`.
It's too strong to order load-load instructions.
We can relax it by using `dmb ld`.

If current load_load_barrier() is used for full-barriers
(load/store - load/store barrier), this patch is not suitable.

See also linux-kernel's smp_rmb() implementation:
  https://github.com/torvalds/linux/blob/v5.14/arch/arm64/include/asm/barrier.h#L90

Hopefully, it's better to use `dmb ishld` rather than `dmb ld`
to improve performance. However, I can't validate effects on
a real many-core Arm machine.
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/84eaa26fda63abb2681215a42c152e770ea552ca" style="color: #1068bf;">84eaa26f</a></strong>
<div>
<span>by Oleg Grenrus</span>
<i>at 2022-02-16T05:27:56-05:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>Add test for #20562
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/2c28620d5ed09aaffa877b5e14b900a1ad789af1" style="color: #1068bf;">2c28620d</a></strong>
<div>
<span>by Adam Sandberg Ericsson</span>
<i>at 2022-02-16T05:28:32-05:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>rts: remove struct StgRetry, it is never used
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/74bf9bb5b83e5ff335847fc2e1d3def413e7df90" style="color: #1068bf;">74bf9bb5</a></strong>
<div>
<span>by Adam Sandberg Ericsson</span>
<i>at 2022-02-16T05:28:32-05:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>rts: document some closure types
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/316312ecd12831f22bd8f7a8aa229c045bbbbedc" style="color: #1068bf;">316312ec</a></strong>
<div>
<span>by nineonine</span>
<i>at 2022-02-16T05:29:08-05:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>ghci: fix -ddump-stg-cg (#21052)

The pre-codegen Stg AST dump was not available in ghci because it
was performed in 'doCodeGen'. This was now moved to 'coreToStg' area.
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/a6411d74ee742c6828c104f1328e6c60d00de993" style="color: #1068bf;">a6411d74</a></strong>
<div>
<span>by Adam Sandberg Ericsson</span>
<i>at 2022-02-16T05:29:43-05:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>docs: mention -fprof-late-ccs in the release notes

And note which compiler version it was added in.
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/4127e86dfdfcfce60e5029c716c98c244851779a" style="color: #1068bf;">4127e86d</a></strong>
<div>
<span>by Adam Sandberg Ericsson</span>
<i>at 2022-02-16T05:29:43-05:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>docs: fix release notes formatting
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/4e6c80197f1cc46dfdef0300de46847c7cfbdcb0" style="color: #1068bf;">4e6c8019</a></strong>
<div>
<span>by Matthew Pickering</span>
<i>at 2022-02-17T05:25:28-05:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>Always define __GLASGOW_HASKELL_PATCHLEVEL1/2__ macros

As #21076 reports if you are using `-Wcpp-undef` then you get warnings
when using the `MIN_VERSION_GLASGOW_HASKELL` macro because
__GLASGOW_HASKELL_PATCHLEVEL2__ is very rarely explicitliy set (as
version numbers are not 4 components long).

This macro was introduced in 3549c952b535803270872adaf87262f2df0295a4
and it seems the bug has existed ever since.

Fixes #21076
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/67dd5724297094af93be1887ef000845722c6f2b" style="color: #1068bf;">67dd5724</a></strong>
<div>
<span>by Ben Gamari</span>
<i>at 2022-02-17T05:26:03-05:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>rts/AdjustorPool: Silence unused function warning

bitmap_get is only used in the DEBUG RTS configuration.

Fixes #21079.
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/4b04f7e175a01b30e098af63dfabe6ea068e9b0b" style="color: #1068bf;">4b04f7e1</a></strong>
<div>
<span>by Zubin Duggal</span>
<i>at 2022-02-20T13:56:15-05:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>Track object file dependencies for TH accurately (#20604)

`hscCompileCoreExprHook` is changed to return a list of `Module`s required
by a splice. These modules are accumulated in the TcGblEnv (tcg_th_needed_mods).
Dependencies on the object files of these modules are recording in the
interface.

The data structures in `LoaderState` are replaced with more efficient versions
to keep track of all the information required. The
MultiLayerModulesTH_Make allocations increase slightly but runtime is
faster.

Fixes #20604

-------------------------
Metric Increase:
    MultiLayerModulesTH_Make
-------------------------
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/92ab3ff2fbed8847747b43592546f6b98a6d03ec" style="color: #1068bf;">92ab3ff2</a></strong>
<div>
<span>by sheaf</span>
<i>at 2022-02-20T13:56:55-05:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>Use diagnostics for "missing signature" errors

  This patch makes the "missing signature" errors from
  "GHC.Rename.Names" use the diagnostic infrastructure.
  This encompasses missing type signatures for top-level bindings
  and pattern synonyms, as well as missing kind signatures for
  type constructors.

  This patch also renames TcReportMsg to TcSolverReportMsg,
  and adds a few convenience functions to compute whether such a
  TcSolverReportMsg is an expected/actual message.
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/845284a5ddceb043b1b1af6f130143f1ef160835" style="color: #1068bf;">845284a5</a></strong>
<div>
<span>by sheaf</span>
<i>at 2022-02-20T13:57:34-05:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>Generically: remove redundant Semigroup constraint

  This patch removes a redundant Semigroup constraint on the Monoid
  instance for Generically. This constraint can cause trouble when
  one wants to derive a Monoid instance via Generically through a type
  that doesn't itself have a Semigroup instance, for example:

    data Point2D a = Point2D !a !a

    newtype Vector2D a = Vector2D { tip :: Point2D a }
      deriving ( Semigroup, Monoid )
        via Generically ( Point2D ( Sum a ) )

  In this case, we should not require there to be an instance

    Semigroup ( Point2D ( Sum a ) )

  as all we need is an instance for the generic representation of
  Point2D ( Sum a ), i.e. Semigroup ( Rep ( Point2D ( Sum a) ) () ).
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/6b468f7f6185e68ccdea547beb090092b77cf87e" style="color: #1068bf;">6b468f7f</a></strong>
<div>
<span>by Ben Gamari</span>
<i>at 2022-02-20T13:58:10-05:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>Bump time submodule to 1.12.1
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/2f0ceecc42789558c648c6dcff431d3c8ac3aa46" style="color: #1068bf;">2f0ceecc</a></strong>
<div>
<span>by Zubin Duggal</span>
<i>at 2022-02-20T19:06:19+00:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>hadrian: detect if 'main' is not a haskell file and add it to appropriate list of sources
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/7ce1b694f7be7fbf6e2d7b7eb0639e61fbe358c6" style="color: #1068bf;">7ce1b694</a></strong>
<div>
<span>by Zubin Duggal</span>
<i>at 2022-02-21T11:18:58+00:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>Reinstallable GHC

This patch allows ghc and its dependencies to be built using a normal
invocation of cabal-install. Each componenent which relied on generated
files or additional configuration now has a Setup.hs file.

There are also various fixes to the cabal files to satisfy
cabal-install.

There is a new hadrian command which will build a stage2 compiler and
then a stage3 compiler by using cabal.

```
./hadrian/build build-cabal
```

There is also a new CI job which tests running this command.

For the 9.4 release we will upload all the dependent executables to
hackage and then end users will be free to build GHC and GHC executables
via cabal.

There are still some unresolved questions about how to ensure soundness
when loading plugins into a reinstalled GHC (#20742) which will be
tighted up in due course.

Fixes #19896
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/78fbc3a364e85dc5f31f865f397cd4000294444f" style="color: #1068bf;">78fbc3a3</a></strong>
<div>
<span>by Matthew Pickering</span>
<i>at 2022-02-21T15:14:28-05:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>hadrian: Enable late-ccs when building profiled_ghc
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/2b890c89ba5de9bbf91388d7268919d5c7769bbf" style="color: #1068bf;">2b890c89</a></strong>
<div>
<span>by Matthew Pickering</span>
<i>at 2022-02-22T15:59:33-05:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>testsuite: Don't print names of all fragile tests on all runs

This information about fragile tests is pretty useless but annoying on
CI where you have to scroll up a long way to see the actual issues.
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/0b36801f8eec9b9a7cc512135a13eaf89da370a2" style="color: #1068bf;">0b36801f</a></strong>
<div>
<span>by sheaf</span>
<i>at 2022-02-22T16:00:14-05:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>Forbid standalone instances for built-in classes

  `check_special_inst_head` includes logic that disallows hand-written
  instances for built-in classes such as Typeable, KnownNat
  and KnownSymbol.
  However, it also allowed standalone deriving declarations. This was
  because we do want to allow standalone deriving instances with
  Typeable as they are harmless, but we certainly don't want to allow
  instances for e.g. KnownNat.

  This patch ensures that we don't allow derived instances for
  KnownNat, KnownSymbol (and also KnownChar, which was previously
  omitted entirely).

  Fixes #21087
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/ace66decb46541a33cddc9f91a4221e3dad8b537" style="color: #1068bf;">ace66dec</a></strong>
<div>
<span>by Krzysztof Gogolewski</span>
<i>at 2022-02-22T16:30:59-05:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>Remove -Wunticked-promoted-constructors from -Wall

Update manual; explain ticks as optional disambiguation
rather than the preferred default.

This is a part of #20531.
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/558c7d554b9724abfaa2bcc1f42050e67b36a988" style="color: #1068bf;">558c7d55</a></strong>
<div>
<span>by Hugo</span>
<i>at 2022-02-22T16:31:01-05:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>docs: fix error in annotation guide code snippet
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/a599abbad939820c666ced00ae9eb33706a4f360" style="color: #1068bf;">a599abba</a></strong>
<div>
<span>by Richard Eisenberg</span>
<i>at 2022-02-23T08:16:07-05:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>Kill derived constraints

Co-authored by: Sam Derbyshire

Previously, GHC had three flavours of constraint:
Wanted, Given, and Derived. This removes Derived constraints.

Though serving a number of purposes, the most important role
of Derived constraints was to enable better error messages.
This job has been taken over by the new RewriterSets, as explained
in Note [Wanteds rewrite wanteds] in GHC.Tc.Types.Constraint.

Other knock-on effects:
 - Various new Notes as I learned about under-described bits of GHC

 - A reshuffling around the AST for implicit-parameter bindings,
   with better integration with TTG.

 - Various improvements around fundeps. These were caused by the
   fact that, previously, fundep constraints were all Derived,
   and Derived constraints would get dropped. Thus, an unsolved
   Derived didn't stop compilation. Without Derived, this is no
   longer possible, and so we have to be considerably more careful
   around fundeps.

 - A nice little refactoring in GHC.Tc.Errors to center the work
   on a new datatype called ErrorItem. Constraints are converted
   into ErrorItems at the start of processing, and this allows for
   a little preprocessing before the main classification.

 - This commit also cleans up the behavior in generalisation around
   functional dependencies. Now, if a variable is determined by
   functional dependencies, it will not be quantified. This change
   is user facing, but it should trim down GHC's strange behavior
   around fundeps.

 - Previously, reportWanteds did quite a bit of work, even on an empty
   WantedConstraints. This commit adds a fast path.

 - Now, GHC will unconditionally re-simplify constraints during
   quantification. See Note [Unconditionally resimplify constraints when
   quantifying], in GHC.Tc.Solver.

Close #18398.
Close #18406.
Solve the fundep-related non-confluence in #18851.
Close #19131.
Close #19137.
Close #20922.
Close #20668.
Close #19665.

-------------------------
Metric Decrease:
    LargeRecord
    T9872b
    T9872b_defer
    T9872d
    TcPlugin_RewritePerf
-------------------------
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/2ed22ba19e6324fda81a7d638f6f3b58254f915f" style="color: #1068bf;">2ed22ba1</a></strong>
<div>
<span>by Matthew Pickering</span>
<i>at 2022-02-23T08:16:43-05:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>Introduce predicate for when to enable source notes (needSourceNotes)

There were situations where we were using debugLevel == 0 as a proxy for
whether to retain source notes but -finfo-table-map also enables and
needs source notes so we should act consistently in both cases.

Ticket #20847
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/37deb893a915387d663416936b63f8fb74298f42" style="color: #1068bf;">37deb893</a></strong>
<div>
<span>by Matthew Pickering</span>
<i>at 2022-02-23T08:16:43-05:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>Use SrcSpan from the binder as initial source estimate

There are some situations where we end up with no source notes in useful
positions in an expression. In this case we currently fail to provide
any source information about where an expression came from.

This patch improves the initial estimate by using the position from the
top-binder as the guess for the location of the whole inner expression.
It provides quite a course estimate but it's better than nothing.

Ticket #20847
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/59b7f764489d3eb765e0b40e916b1438ff76e1fa" style="color: #1068bf;">59b7f764</a></strong>
<div>
<span>by Cheng Shao</span>
<i>at 2022-02-23T08:17:24-05:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>Don't emit foreign exports initialiser code for empty CAF list
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/c7f32f768980b831d4969ec40fb7a4d19a51aff8" style="color: #1068bf;">c7f32f76</a></strong>
<div>
<span>by John Ericson</span>
<i>at 2022-02-23T13:58:36-05:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>Prepare rechecking logic for new type in a few ways

Combine `MustCompile and `NeedsCompile` into a single case.
`CompileReason` is put inside to destinguish the two. This makes a
number of things easier.

`Semigroup RecompileRequired` is no longer used, to make sure we skip
doing work where possible. `recompThen` is very similar, but helps
remember.

`checkList` is rewritten with `recompThen`.
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/e60d8df813185cfe3fecdf66d6438611cf2ee4eb" style="color: #1068bf;">e60d8df8</a></strong>
<div>
<span>by John Ericson</span>
<i>at 2022-02-23T13:58:36-05:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>Introduce `MaybeValidated` type to remove invalid states

The old return type `(RecompRequired, Maybe _)`, was confusing
because it was inhabited by values like `(UpToDate, Nothing)` that made
no sense.

The new type ensures:

 - you must provide a value if it is up to date.

 - you must provide a reason if you don't provide a value.

it is used as the return value of:

 - `checkOldIface`
 - `checkByteCode`
 - `checkObjects`
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/f07b13e38a24d73db152f465922d0fcf903e0470" style="color: #1068bf;">f07b13e3</a></strong>
<div>
<span>by Sylvain Henry</span>
<i>at 2022-02-23T13:59:23-05:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>NCG: refactor X86 codegen

Preliminary work done to make working on #5444 easier.

Mostly make make control-flow easier to follow:

* renamed genCCall into genForeignCall

* split genForeignCall into the part dispatching on PrimTarget (genPrim) and
  the one really generating code for a C call (cf ForeignTarget and genCCall)

* made genPrim/genSimplePrim only dispatch on MachOp: each MachOp now
  has its own code generation function.

* out-of-line primops are not handled in a partial `outOfLineCmmOp`
  anymore but in the code generation functions directly. Helper
  functions have been introduced (e.g. genLibCCall) for code sharing.

* the latter two bullets make code generated for primops that are only
  sometimes out-of-line (e.g. Pdep or Memcpy) and the logic to select
  between inline/out-of-line much more localized

* avoided passing is32bit as an argument as we can easily get it from NatM
  state when we really need it

* changed genCCall type to avoid it being partial (it can't handle
  PrimTarget)

* globally removed 12 calls to `panic` thanks to better control flow and
  types ("parse, don't validate" ftw!).
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/6fa7591e832d71ebea452ee6ddf97ac513404576" style="color: #1068bf;">6fa7591e</a></strong>
<div>
<span>by Sylvain Henry</span>
<i>at 2022-02-23T13:59:23-05:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>NCG: refactor the way registers are handled

* add getLocalRegReg to avoid allocating a CmmLocal just to call
  getRegisterReg

* 64-bit registers: in the general case we must always use the virtual
  higher part of the register, so we might as well always return it with
  the lower part. The only exception is to implement 64-bit to 32-bit
  conversions. We now have to explicitly discard the higher part when
  matching on Reg64/RegCode64 datatypes instead of explicitly fetching
  the higher part from the lower part: much safer default.
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/bc8de322d310d9dc879d3d3e7e0aa9157d8c2cf5" style="color: #1068bf;">bc8de322</a></strong>
<div>
<span>by Sylvain Henry</span>
<i>at 2022-02-23T13:59:23-05:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>NCG: inline some 64-bit primops on x86/32-bit (#5444)

Several 64-bit operation were implemented with FFI calls on 32-bit
architectures but we can easily implement them with inline assembly
code.

Also remove unused hs_int64ToWord64 and hs_word64ToInt64 C functions.
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/7b7c6b950054e2f928463c47feee0846587b6ae1" style="color: #1068bf;">7b7c6b95</a></strong>
<div>
<span>by Matthew Pickering</span>
<i>at 2022-02-23T14:00:00-05:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>Simplify/correct implementation of getModuleInfo
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/6215b04cc6d81ebaa86545e8b5701d1e54290325" style="color: #1068bf;">6215b04c</a></strong>
<div>
<span>by Matthew Pickering</span>
<i>at 2022-02-23T14:00:00-05:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>Remove mg_boot field from ModuleGraph

It was unused in the compiler so I have removed it to streamline
ModuleGraph.
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/818ff2ef76908499454ceed94329c133a1aad918" style="color: #1068bf;">818ff2ef</a></strong>
<div>
<span>by Matthew Pickering</span>
<i>at 2022-02-23T14:00:01-05:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>driver: Remove needsTemplateHaskellOrQQ from ModuleGraph

The idea of the needsTemplateHaskellOrQQ query is to check if any of the
modules in a module graph need Template Haskell then enable -dynamic-too
if necessary. This is quite imprecise though as it will enable
-dynamic-too for all modules in the module graph even if only one module
uses template haskell, with multiple home units, this is obviously even
worse.

With -fno-code we already have similar logic to enable code generation
just for the modules which are dependeded on my TemplateHaskell modules
so we use the same code path to decide whether to enable -dynamic-too
rather than using this big hammer.

This is part of the larger overall goal of moving as much statically
known configuration into the downsweep as possible in order to have
fully decided the build plan and all the options before starting to
build anything.

I also included a fix to #21095, a long standing bug with with the logic
which is supposed to enable the external interpreter if we don't have
the internal interpreter.

Fixes #20696 #21095
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/b6670af6283be8b60f4c33eff896a2bf2c1b5ca6" style="color: #1068bf;">b6670af6</a></strong>
<div>
<span>by Matthew Pickering</span>
<i>at 2022-02-23T14:00:40-05:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>testsuite: Normalise output of ghci011 and T7627

The outputs of these tests vary on the order interface files are loaded
so we normalise the output to correct for these inconsequential
differences.

Fixes #21121
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/9ed3bc6e1c09c558bba20e045e61582ba8fbadc7" style="color: #1068bf;">9ed3bc6e</a></strong>
<div>
<span>by Peter Trommler</span>
<i>at 2022-02-23T14:01:16-05:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>testsuite: Fix ipeMap test

Pointers to closures must be untagged before use.
Produce closures of different types so we get different info tables.

Fixes #21112
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/7d426148c48d95c45ee3e5b050a4804700b08206" style="color: #1068bf;">7d426148</a></strong>
<div>
<span>by Ziyang Liu</span>
<i>at 2022-02-24T04:53:34-05:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>Allow `return` in more cases in ApplicativeDo

The doc says that the last statement of an ado-block can be one of
`return E`, `return $ E`, `pure E` and `pure $ E`. But `return`
is not accepted in a few cases such as:

```haskell
-- The ado-block only has one statement
x :: F ()
x = do
  return ()

-- The ado-block only has let-statements besides the `return`
y :: F ()
y = do
  let a = True
  return ()
```

These currently require `Monad` instances. This MR fixes it.
Normally `return` is accepted as the last statement because it is
stripped in constructing an `ApplicativeStmt`, but this cannot be
done in the above cases, so instead we replace `return` by `pure`.

A similar but different issue (when the ado-block contains `BindStmt`
or `BodyStmt`, the second last statement cannot be `LetStmt`, even if
the last statement uses `pure`) is fixed in !6786.
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/a5ea78673eae7c837a5ccb7882e908a4df92e75d" style="color: #1068bf;">a5ea7867</a></strong>
<div>
<span>by John Ericson</span>
<i>at 2022-02-24T20:23:49-05:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>Clarify laws of TestEquality

It is unclear what `TestEquality` is for. There are 3 possible choices.

Assuming

```haskell
data Tag a where
    TagInt1 :: Tag Int
    TagInt2 :: Tag Int
```

Weakest -- type param equality semi-decidable
---------------------------------------------

`Just Refl` merely means the type params are equal, the values being compared might not be.
`Nothing` means the type params may or may not be not equal.

```haskell
instance TestEquality Tag where
    testEquality TagInt1 TagInt1 = Nothing -- oopsie is allowed
    testEquality TagInt1 TagInt2 = Just Refl
    testEquality TagInt2 TagInt1 = Just Refl
    testEquality TagInt2 TagInt2 = Just Refl
```

This option is better demonstrated with a different type:
```haskell
data Tag' a where
    TagInt1 :: Tag Int
    TagInt2 :: Tag a
```
```haskell
instance TestEquality Tag' where
    testEquality TagInt1 TagInt1 = Just Refl
    testEquality TagInt1 TagInt2 = Nothing -- can't be sure
    testEquality TagInt2 TagInt1 = Nothing -- can't be sure
    testEquality TagInt2 TagInt2 = Nothing -- can't be sure
```

Weaker -- type param equality decidable
---------------------------------------

`Just Refl` merely means the type params are equal, the values being compared might not be.
`Nothing` means the type params are not equal.

```haskell
instance TestEquality Tag where
    testEquality TagInt1 TagInt1 = Just Refl
    testEquality TagInt1 TagInt2 = Just Refl
    testEquality TagInt2 TagInt1 = Just Refl
    testEquality TagInt2 TagInt2 = Just Refl
```

Strong -- Like `Eq`
-------------------

`Just Refl` means the type params are equal, and the values are equal according to `Eq`.

```haskell
instance TestEquality Tag where
    testEquality TagInt1 TagInt1 = Just Refl
    testEquality TagInt2 TagInt2 = Just Refl
    testEquality _ _ = Nothing
```

Strongest -- unique value concrete type
---------------------------------------

`Just Refl` means the type params are equal, and the values are equal, and the class assume if the type params are equal the values must also be equal. In other words, the type is a singleton type when the type parameter is a closed term.

```haskell
-- instance TestEquality -- invalid instance because two variants for `Int`
```
------

The discussion in
https://github.com/haskell/core-libraries-committee/issues/21 has
decided on the "Weaker" option (confusingly formerly called the
"Weakest" option). So that is what is implemented.
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/06c18990fb6f10aaf1907ba8f0fe3f1a138da159" style="color: #1068bf;">06c18990</a></strong>
<div>
<span>by Zubin Duggal</span>
<i>at 2022-02-24T20:24:25-05:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>TH: fix pretty printing of GADTs with multiple constuctors (#20842)
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/6555b68ca0678827b89c5624db071f5a485d18b7" style="color: #1068bf;">6555b68c</a></strong>
<div>
<span>by Matthew Pickering</span>
<i>at 2022-02-24T20:25:06-05:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>Move linters into the tree

This MR moves the GHC linters into the tree, so that they can be run directly using Hadrian.

* Query all files tracked by Git instead of using changed files, so that we can run the exact same linting step locally and in a merge request.
* Only check that the changelogs don't contain TBA when RELEASE=YES.
* Add hadrian/lint script, which runs all the linting steps.
* Ensure the hlint job exits with a failure if hlint is not installed (otherwise we were ignoring the failure). Given that hlint doesn't seem to be available in CI at the moment, I've temporarily allowed failure in the hlint job.
* Run all linting tests in CI using hadrian.
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/b99646ed23ba75506005025e625edbc9a5cad41b" style="color: #1068bf;">b99646ed</a></strong>
<div>
<span>by Matthew Pickering</span>
<i>at 2022-02-24T20:25:06-05:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>Add rule for generating HsBaseConfig.h

If you are running the `lint:{base/compiler}` command locally then this
improves the responsiveness because we don't re-run configure everytime
if the header file already exists.
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/d0deaaf4241fa236bd8d87abde68a0ad41a7e119" style="color: #1068bf;">d0deaaf4</a></strong>
<div>
<span>by Matthew Pickering</span>
<i>at 2022-02-24T20:25:06-05:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>Suggestions due to hlint

It turns out this job hasn't been running for quite a while (perhaps
ever) so there are quite a few failures when running the linter locally.
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/70bafefbfc5fc31d5fad3184fc9bdc623871923b" style="color: #1068bf;">70bafefb</a></strong>
<div>
<span>by nineonine</span>
<i>at 2022-02-24T20:25:42-05:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>ghci: show helpful error message when loading module with SIMD vector operations (#20214)

Previously, when trying to load module with SIMD vector operations, ghci would panic
in 'GHC.StgToByteCode.findPushSeq'. Now, a more helpful message is displayed.
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/8ed3d5fda3ad6ab9a1f4e50556850e605f000949" style="color: #1068bf;">8ed3d5fd</a></strong>
<div>
<span>by Matthew Pickering</span>
<i>at 2022-02-25T10:24:12+00:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>Remove test-bootstrap and cabal-reinstall jobs from fast-ci [skip ci]
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/8387dfbe6e468083c472ea019be8af79d489cbc8" style="color: #1068bf;">8387dfbe</a></strong>
<div>
<span>by Mario Blažević</span>
<i>at 2022-02-25T21:09:41-05:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>template-haskell: Fix two prettyprinter issues

Fix two issues regarding printing numeric literals.

Fixing #20454.
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/4ad8ce0b5c741862e2f94fd362077068b9b669d3" style="color: #1068bf;">4ad8ce0b</a></strong>
<div>
<span>by sheaf</span>
<i>at 2022-02-25T21:10:22-05:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>GHCi: don't normalise partially instantiated types

  This patch skips performing type normalisation when we haven't
  fully instantiated the type. That is, in tcRnExpr
  (used only for :type in GHCi), skip normalisation if
  the result type responds True to isSigmaTy.

  Fixes #20974
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/f35aca4d0612063155792587482a7905981c7070" style="color: #1068bf;">f35aca4d</a></strong>
<div>
<span>by Ben Gamari</span>
<i>at 2022-02-25T21:10:57-05:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>rts/adjustor: Always place adjustor templates in data section

@nrnrnr points out that on his machine ld.lld rejects text relocations.
Generalize the Darwin text-relocation avoidance logic to account for
this.
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/cddb040ac178ee0a996ac83baef48710bf88e5b2" style="color: #1068bf;">cddb040a</a></strong>
<div>
<span>by Andreas Klebinger</span>
<i>at 2022-02-25T21:11:33-05:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>Ticky: Gate tag-inference dummy ticky-counters behind a flag.

Tag inference included a way to collect stats about avoided tag-checks.
This was dony by emitting "dummy" ticky entries with counts corresponding
to predicted/unpredicated tag checks.

This behaviour for ticky is now gated behind -fticky-tag-checks.

I also documented ticky-LNE in the process.
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/948bf2d0ac28a367533523de59976c4b4b20db1c" style="color: #1068bf;">948bf2d0</a></strong>
<div>
<span>by Ben Gamari</span>
<i>at 2022-02-25T21:12:09-05:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>Fix comment reference to T4818
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/9c3edeb8124d0276d7bb29ac3e13016f0d57c7a5" style="color: #1068bf;">9c3edeb8</a></strong>
<div>
<span>by Ben Gamari</span>
<i>at 2022-02-25T21:12:09-05:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>simplCore: Correctly extend in-scope set in rule matching

Note [Matching lets] in GHC.Core.Rules claims the following:

> We use GHC.Core.Subst.substBind to freshen the binding, using an
> in-scope set that is the original in-scope variables plus the
> rs_bndrs (currently floated let-bindings).

However, previously the implementation didn't actually do extend the
in-scope set with rs_bndrs. This appears to be a regression which was
introduced by 4ff4d434e9a90623afce00b43e2a5a1ccbdb4c05.

Moreover, the originally reasoning was subtly wrong: we must rather use
the in-scope set from rv_lcl, extended with rs_bndrs, not that of
`rv_fltR`

Fixes #21122.
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/7f9f49c3319ce0fbcbc728f3ff04b7cc1f74de24" style="color: #1068bf;">7f9f49c3</a></strong>
<div>
<span>by sheaf</span>
<i>at 2022-02-25T21:12:47-05:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>Derive some stock instances for OverridingBool

  This patch adds some derived instances to
  `GHC.Data.Bool.OverridingBool`. It also changes the order of the
  constructors, so that the derived `Ord` instance matches the
  behaviour for `Maybe Bool`.

  Fixes #20326
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/140438a81be65d068f555788c4da2ce32182530b" style="color: #1068bf;">140438a8</a></strong>
<div>
<span>by nineonine</span>
<i>at 2022-02-25T21:13:23-05:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>Add test for #19271
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/ac9f460622b69bbd2fef3f08c0a876de226bc496" style="color: #1068bf;">ac9f4606</a></strong>
<div>
<span>by sheaf</span>
<i>at 2022-02-25T21:14:04-05:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>Allow qualified names in COMPLETE pragmas

  The parser didn't allow qualified constructor names to appear
  in COMPLETE pragmas. This patch fixes that.

  Fixes #20551
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/677c6c913a993a5298dcf19020641f24cede0239" style="color: #1068bf;">677c6c91</a></strong>
<div>
<span>by Sylvain Henry</span>
<i>at 2022-02-25T21:14:44-05:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>Testsuite: remove arch conditional in T8832

Taken from !3658
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/ad04953b0d28610c516ca897a0a9ee14577c3206" style="color: #1068bf;">ad04953b</a></strong>
<div>
<span>by Sylvain Henry</span>
<i>at 2022-02-25T21:15:23-05:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>Allow hscGenHardCode to not return CgInfos

This is a minor change in preparation for the JS backend: CgInfos aren't
mandatory and the JS backend won't return them.
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/929c280f991ee80ccf4fc1f451aa4c8a19113268" style="color: #1068bf;">929c280f</a></strong>
<div>
<span>by Sylvain Henry</span>
<i>at 2022-02-25T21:15:24-05:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>Derive Enum instances for CCallConv and Safety

This is used by the JS backend for serialization.
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/75e4e09040862dd12e6960d366868ca8ec434035" style="color: #1068bf;">75e4e090</a></strong>
<div>
<span>by Sebastian Graf</span>
<i>at 2022-02-25T21:15:59-05:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>base: Improve documentation of `throwIO` (#19854)

Now it takes a better account of precise vs. imprecise exception semantics.

Fixes #19854.
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/61a203ba2e942b39c5f26a7ad01017841937fd0a" style="color: #1068bf;">61a203ba</a></strong>
<div>
<span>by Matthew Pickering</span>
<i>at 2022-02-26T02:06:51-05:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>Make typechecking unfoldings from interfaces lazier

The old logic was unecessarily strict in loading unfoldings because when
reading the unfolding we would case on the result of attempting to load
the template before commiting to which type of unfolding we were
producing. Hence trying to inspect any of the information about an
unfolding would force the template to be loaded.

This also removes a potentially hard to discover bug where if the
template failed to be typechecked for some reason then we would just not
return an unfolding. Instead we now panic so these bad situations which
should never arise can be identified.
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/2be7446089de644048466ab8e9c71c596fa82d09" style="color: #1068bf;">2be74460</a></strong>
<div>
<span>by Matthew Pickering</span>
<i>at 2022-02-26T02:06:51-05:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>Use a more up-to-date snapshot of the current rules in the simplifier

As the prescient (now deleted) note warns in simplifyPgmIO we have to be a bit careful
about when we gather rules from the EPS so that we get the rules for
imported bindings.

```
  -- Get any new rules, and extend the rule base
  -- See Note [Overall plumbing for rules] in GHC.Core.Rules
  -- We need to do this regularly, because simplification can
  -- poke on IdInfo thunks, which in turn brings in new rules
  -- behind the scenes.  Otherwise there's a danger we'll simply
  -- miss the rules for Ids hidden inside imported inlinings
```

Given the previous commit, the loading of unfoldings is now even more
delayed so we need to be more careful to read the EPS rule base closer to the point
where we decide to try rules.

Without this fix GHC performance regressed by a noticeably amount
because the `zip` rule was not brought into scope eagerly enough which
led to a further series of unfortunate events in the simplifer which
tipped `substTyWithCoVars` over the edge of the size threshold, stopped
it being inlined and increased allocations by 10% in some cases.

Furthermore, this change is noticeably in the testsuite as it changes
T19790 so that the `length` rules from GHC.List fires earlier.

-------------------------
Metric Increase:
    T9961
-------------------------
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/b80461954e3c52a01d0c1cc7c4087959818dbd08" style="color: #1068bf;">b8046195</a></strong>
<div>
<span>by Matthew Pickering</span>
<i>at 2022-02-26T02:06:52-05:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>Improve efficiency of extending a RuleEnv with a new RuleBase

Essentially we apply the identity:

> lookupNameEnv n (plusNameEnv_C (++) rb1 rb2)
>   = lookupNameEnv n rb1 ++ lookupNameEnv n rb2

The latter being more efficient as we don't construct an intermediate
map.

This is now quite important as each time we try and apply rules we need
to combine the current EPS RuleBase with the HPT and ModGuts rule bases.
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/033e9f0fcd0c1f9a2814b6922275514951c87dfd" style="color: #1068bf;">033e9f0f</a></strong>
<div>
<span>by sheaf</span>
<i>at 2022-02-26T02:07:30-05:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>Error on anon wildcards in tcAnonWildCardOcc

  The code in tcAnonWildCardOcc assumed that it could never encounter
  anonymous wildcards in illegal positions, because the renamer would
  have ruled them out. However, it's possible to sneak past the checks
  in the renamer by using Template Haskell. It isn't possible to simply
  pass on additional information when renaming Template Haskell
  brackets, because we don't know in advance in what context the bracket
  will be spliced in (see test case T15433b). So we accept that we might
  encounter these bogus wildcards in the typechecker and throw the
  appropriate error.

  This patch also migrates the error messages for illegal wildcards in
  types to use the diagnostic infrastructure.

  Fixes #15433
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/32d8fe3a9a7f471e98d173eb83c02e61d9e12fbb" style="color: #1068bf;">32d8fe3a</a></strong>
<div>
<span>by sheaf</span>
<i>at 2022-02-26T14:15:33+01:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>Core Lint: ensure primops can be eta-expanded

This patch adds a check to Core Lint, checkCanEtaExpand,
which ensures that primops and other wired-in functions with
no binding such as unsafeCoerce#, oneShot, rightSection...
can always be eta-expanded, by checking that the remaining
argument types have a fixed RuntimeRep.

Two subtleties came up:

  - the notion of arity in Core looks through newtypes, so we may
    need to unwrap newtypes in this check,
  - we want to avoid calling hasNoBinding on something whose unfolding
    we are in the process of linting, as this would cause a loop;
    to avoid this we add some information to the Core Lint environment
    that holds this information.

Fixes #20480
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/0a80b43641c0b66ecdc6cf1d3ae08b002a0f270f" style="color: #1068bf;">0a80b436</a></strong>
<div>
<span>by Peter Trommler</span>
<i>at 2022-02-26T17:21:59-05:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>testsuite: Require LLVM for T15155l
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/38cb920e3c7bea7348a245c8602ea9562622f9cc" style="color: #1068bf;">38cb920e</a></strong>
<div>
<span>by Oleg Grenrus</span>
<i>at 2022-02-28T07:14:04-05:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>Add Monoid a => Monoid (STM a) instance
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/d734ef8f78203b856dcfaf19eaebfed6ec623850" style="color: #1068bf;">d734ef8f</a></strong>
<div>
<span>by Hécate Moonlight</span>
<i>at 2022-02-28T07:14:42-05:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>Make modules in base stable.

fix #18963
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/fbf005e973b18674494615bea59d42c54779a814" style="color: #1068bf;">fbf005e9</a></strong>
<div>
<span>by Sven Tennie</span>
<i>at 2022-02-28T19:16:01-05:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>Fix some hlint issues in ghc-heap

This does not fix all hlint issues as the criticised index and
length expressions seem to be fine in context.
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/adfddf7de3a9c1f757cbf027815a4b4f6ee86a7e" style="color: #1068bf;">adfddf7d</a></strong>
<div>
<span>by Matthew Pickering</span>
<i>at 2022-02-28T19:16:36-05:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>hadrian: Suggest to the user to run ./configure if missing a setting

If a setting is missing from the configuration file it's likely the user
needs to reconfigure.

Fixes #20476
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/4f0208e53444d32c7f3795b3ac15acbfc75bf58c" style="color: #1068bf;">4f0208e5</a></strong>
<div>
<span>by Andreas Klebinger</span>
<i>at 2022-02-28T19:17:12-05:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>CLabel cleanup:

Remove these smart constructors for these reasons:
* mkLocalClosureTableLabel : Does the same as the non-local variant.
* mkLocalClosureLabel      : Does the same as the non-local variant.
* mkLocalInfoTableLabel    : Decide if we make a local label based on the name
                             and just use mkInfoTableLabel everywhere.
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/065419affb4346bb81e91f8260e531a6e2342fa5" style="color: #1068bf;">065419af</a></strong>
<div>
<span>by Matthew Pickering</span>
<i>at 2022-02-28T19:17:47-05:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>linking: Don't pass --hash-size and --reduce-memory-overhead to ld

These flags were added to help with the high linking cost of the old
split-objs mode. Now we are using split-sections these flags appear to
make no difference to memory usage or time taken to link.

I tested various configurations linking together the ghc library with
-split-sections enabled.

| linker | time (s) |
| ------ | ------   |
| gold   | 0.95     |
| ld     | 1.6      |
| ld (hash-size = 31, reduce-memory-overheads) | 1.6 |
| ldd    | 0.47     |

Fixes #20967
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/3e65ef05cae9a0192b26fae184cb5037b013d4c5" style="color: #1068bf;">3e65ef05</a></strong>
<div>
<span>by Teo Camarasu</span>
<i>at 2022-02-28T19:18:27-05:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>template-haskell: fix typo in docstring for Overlap
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/80f9133e128abc61913d264ecd8b102517b266f5" style="color: #1068bf;">80f9133e</a></strong>
<div>
<span>by Teo Camarasu</span>
<i>at 2022-02-28T19:18:27-05:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>template-haskell: fix docstring for Bytes

It seems like a commented out section of code was accidentally included
in the docstring for a field.
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/547742682702f08041e518d68d752ef6329843c3" style="color: #1068bf;">54774268</a></strong>
<div>
<span>by Matthew Pickering</span>
<i>at 2022-03-01T16:23:10-05:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>Fix longstanding issue with moduleGraphNodes - no hs-boot files case

In the case when we tell moduleGraphNodes to drop hs-boot files the idea
is to collapse hs-boot files into their hs file nodes. In the old code

* nodeDependencies changed edges from IsBoot to NonBoot
* moduleGraphNodes just dropped boot file nodes

The net result is that any dependencies of the hs-boot files themselves
were dropped. The correct thing to do is

* nodeDependencies changes edges from IsBoot to NonBoot
* moduleGraphNodes merges dependencies of IsBoot and NonBoot nodes.

The result is a properly quotiented dependency graph which contains no
hs-boot files nor hs-boot file edges.

Why this didn't cause endless issues when compiling with boot files, we
will never know.
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/c84dc5065bcf5c87dd3d10421c99aa6941754f57" style="color: #1068bf;">c84dc506</a></strong>
<div>
<span>by Matthew Pickering</span>
<i>at 2022-03-01T16:23:10-05:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>driver: Properly add an edge between a .hs and its hs-boot file

As noted in #21071 we were missing adding this edge so there were
situations where the .hs file would get compiled before the .hs-boot
file which leads to issues with -j.

I fixed this properly by adding the edge in downsweep so the definition
of nodeDependencies can be simplified to avoid adding this dummy edge
in.

There are plenty of tests which seem to have these redundant boot files
anyway so no new test. #21094 tracks the more general issue of
identifying redundant hs-boot and SOURCE imports.
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/7aeb6d29313b23cd8d4da5d42cd9e740cca5c1df" style="color: #1068bf;">7aeb6d29</a></strong>
<div>
<span>by sheaf</span>
<i>at 2022-03-01T16:23:51-05:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>Core Lint: collect args through floatable ticks

We were not looking through floatable ticks when collecting arguments in
Core Lint, which caused `checkCanEtaExpand` to fail on something like:

```haskell
reallyUnsafePtrEquality
  = \ @a ->
      (src<loc> reallyUnsafePtrEquality#)
        @Lifted @a @Lifted @a
```

We fix this by using `collectArgsTicks tickishFloatable` instead of
`collectArgs`, to be consistent with the behaviour of eta expansion
outlined in Note [Eta expansion and source notes] in GHC.Core.Opt.Arity.

Fixes #21152.
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/75caafaafca5a1941c276f95017c34f68da8d679" style="color: #1068bf;">75caafaa</a></strong>
<div>
<span>by Matthew Pickering</span>
<i>at 2022-03-02T01:14:59-05:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>Ticky profiling improvements.

This adds a number of changes to ticky-ticky profiling.

When an executable is profiled with IPE profiling it's now possible to
associate id-related ticky counters to their source location.
This works by emitting the info table address as part of the counter
which can be looked up in the IPE table.

Add a `-ticky-ap-thunk` flag. This flag prevents the use of some standard thunks
which are precompiled into the RTS. This means reduced cache locality
and increased code size. But it allows better attribution of execution
cost to specific source locations instead of simple attributing it to
the standard thunk.

ticky-ticky now uses the `arg` field to emit additional information
about counters in json format. When ticky-ticky is used in combination
with the eventlog eventlog2html can be used to generate a html table
from the eventlog similar to the old text output for ticky-ticky.
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/aeea6bd588060108dea88996c19f48b9e50adad2" style="color: #1068bf;">aeea6bd5</a></strong>
<div>
<span>by doyougnu</span>
<i>at 2022-03-02T01:15:39-05:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>StgToCmm.cgTopBinding: no isNCG, use binBlobThresh

This is a one line change. It is a fixup from MR!7325, was pointed out
in review of MR!7442, specifically: https://gitlab.haskell.org/ghc/ghc/-/merge_requests/7442#note_406581

The change removes isNCG check from cgTopBinding. Instead it changes the
type of binBlobThresh in DynFlags from Word to Maybe Word, where a Just
0 or a Nothing indicates an infinite threshold and thus the disable
CmmFileEmbed case in the original check.

This improves the cohesion of the module because more NCG related
Backend stuff is moved into, and checked in, StgToCmm.Config. Note, that
the meaning of a Just 0 or a Nothing in binBlobThresh is indicated in a
comment next to its field in GHC.StgToCmm.Config.

DynFlags: binBlobThresh: Word -> Maybe Word

StgToCmm.Config: binBlobThesh add not ncg check

DynFlags.binBlob: move Just 0 check to dflags init

StgToCmm.binBlob: only check isNCG, Just 0 check to dflags

StgToCmm.Config: strictify binBlobThresh
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/b27b2af3fab48e21aabcc9441967c4dd7a6a75ea" style="color: #1068bf;">b27b2af3</a></strong>
<div>
<span>by sheaf</span>
<i>at 2022-03-02T14:08:36-05:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>Introduce ConcreteTv metavariables

  This patch introduces a new kind of metavariable, by adding the
  constructor `ConcreteTv` to `MetaInfo`. A metavariable with
  `ConcreteTv` `MetaInfo`, henceforth a concrete metavariable, can only
  be unified with a type that is concrete (that is, a type that answers
  `True` to `GHC.Core.Type.isConcrete`).

  This solves the problem of dangling metavariables in `Concrete#`
  constraints: instead of emitting `Concrete# ty`, which contains a
  secret existential metavariable, we simply emit a primitive equality
  constraint `ty ~# concrete_tv` where `concrete_tv` is a fresh concrete
  metavariable.

  This means we can avoid all the complexity of canonicalising
  `Concrete#` constraints, as we can just re-use the existing machinery
  for `~#`.

  To finish things up, this patch then removes the `Concrete#` special
  predicate, and instead introduces the special predicate `IsRefl#`
  which enforces that a coercion is reflexive.
  Such a constraint is needed because the canonicaliser is quite happy
  to rewrite an equality constraint such as `ty ~# concrete_tv`, but
  such a rewriting is not handled by the rest of the compiler currently,
  as we need to make use of the resulting coercion, as outlined in the
  FixedRuntimeRep plan.

  The big upside of this approach (on top of simplifying the code)
  is that we can now selectively implement PHASE 2 of FixedRuntimeRep,
  by changing individual calls of `hasFixedRuntimeRep_MustBeRefl` to
  `hasFixedRuntimeRep` and making use of the obtained coercion.
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/81b7c4361c0e3da403e0fcf42cc7faae2ca3db9a" style="color: #1068bf;">81b7c436</a></strong>
<div>
<span>by Matthew Pickering</span>
<i>at 2022-03-02T14:09:13-05:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>Make -dannot-lint not panic on let bound type variables

After certain simplifier passes we end up with let bound type variables
which are immediately inlined in the next pass. The core diff utility
implemented by -dannot-lint failed to take these into account and
paniced.

Progress towards #20965
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/f596c91aaede75f7293ac2214ad48018a6b7a753" style="color: #1068bf;">f596c91a</a></strong>
<div>
<span>by sheaf</span>
<i>at 2022-03-02T14:09:51-05:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>Improve out-of-order inferred type variables

  Don't instantiate type variables for :type in
  `GHC.Tc.Gen.App.tcInstFun`, to avoid inconsistently instantianting
  `r1` but not `r2` in the type

    forall {r1} (a :: TYPE r1) {r2} (b :: TYPE r2). ...

  This fixes #21088.

  This patch also changes the primop pretty-printer to ensure
  that we put all the inferred type variables first. For example,
  the type of reallyUnsafePtrEquality# is now

    forall {l :: Levity} {k :: Levity}
           (a :: TYPE (BoxedRep l))
           (b :: TYPE (BoxedRep k)).
      a -> b -> Int#

  This means we avoid running into issue #21088 entirely with
  the types of primops. Users can still write a type signature where
  the inferred type variables don't come first, however.

  This change to primops had a knock-on consequence, revealing that
  we were sometimes performing eta reduction on keepAlive#.
  This patch updates tryEtaReduce to avoid eta reducing functions
  with no binding, bringing it in line with tryEtaReducePrep,
  and thus fixing #21090.
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/1617fed3a97cd13b55a180029ab8fb9468d2b797" style="color: #1068bf;">1617fed3</a></strong>
<div>
<span>by Richard Eisenberg</span>
<i>at 2022-03-02T14:10:28-05:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>Make inert_cycle_breakers into a stack.

Close #20231.
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/c8652a0afc3d8b56d39f39ff587271dcc46b17ba" style="color: #1068bf;">c8652a0a</a></strong>
<div>
<span>by Richard Eisenberg</span>
<i>at 2022-03-02T14:11:03-05:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>Make Constraint not *apart* from Type.

More details in Note [coreView vs tcView]

Close #21092.
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/91a10cb06aa9ace905adeff3cc795de9c40f64a9" style="color: #1068bf;">91a10cb0</a></strong>
<div>
<span>by doyougnu</span>
<i>at 2022-03-02T14:11:43-05:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>GenStgAlt 3-tuple synonym --> Record type

This commit alters GenStgAlt from a type synonym to a Record with field
accessors. In pursuit of #21078, this is not a required change but cleans
up several areas for nicer code in the upcoming js-backend, and in GHC
itself.

GenStgAlt: 3-tuple -> record

Stg.Utils: GenStgAlt 3-tuple -> record

Stg.Stats: StgAlt 3-tuple --> record

Stg.InferTags.Rewrite: StgAlt 3-tuple -> record

Stg.FVs: GenStgAlt 3-tuple -> record

Stg.CSE: GenStgAlt 3-tuple -> record

Stg.InferTags: GenStgAlt 3-tuple --> record

Stg.Debug: GenStgAlt 3-tuple --> record

Stg.Lift.Analysis: GenStgAlt 3-tuple --> record

Stg.Lift: GenStgAlt 3-tuple --> record

ByteCode.Instr: GenStgAlt 3-tuple --> record

Stg.Syntax: add GenStgAlt helper functions

Stg.Unarise: GenStgAlt 3-tuple --> record

Stg.BcPrep: GenStgAlt 3-tuple --> record

CoreToStg: GenStgAlt 3-tuple --> record

StgToCmm.Expr: GenStgAlt 3-tuple --> record

StgToCmm.Bind: GenStgAlt 3-tuple --> record

StgToByteCode: GenStgAlt 3-tuple --> record

Stg.Lint: GenStgAlt 3-tuple --> record

Stg.Syntax: strictify GenStgAlt

GenStgAlt: add haddock, some cleanup

fixup: remove calls to pure, single ViewPattern

StgToByteCode: use case over viewpatterns
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/73864f006fa87fe16d4ede6363bf302d3b6cb202" style="color: #1068bf;">73864f00</a></strong>
<div>
<span>by Matthew Pickering</span>
<i>at 2022-03-02T14:12:19-05:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>base: Remove default method from bitraversable

The default instance leads to an infinite loop.
bisequenceA is defined in terms of bisquence which is defined in terms
of bitraverse.

```
bitraverse f g
= (defn of bitraverse)
bisequenceA . bimap f g
= (defn of bisequenceA)
bitraverse id id . bimap f g
= (defn of bitraverse)
...
```

Any instances defined without an explicitly implementation are currently
broken, therefore removing it will alert users to an issue in their
code.

CLC issue: https://github.com/haskell/core-libraries-committee/issues/47

Fixes #20329 #18901
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/9579bf357cabca4dd311a88eb16f2325a438fadc" style="color: #1068bf;">9579bf35</a></strong>
<div>
<span>by Matthew Pickering</span>
<i>at 2022-03-02T14:12:54-05:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>ci: Add check to CI to ensure compiler uses correct BIGNUM_BACKEND
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/c48a7c3a6165d8ffa9ff052db908083817cf6021" style="color: #1068bf;">c48a7c3a</a></strong>
<div>
<span>by Sylvain Henry</span>
<i>at 2022-03-03T07:37:12-05:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>Use Word64# primops in Word64 Num instance

Taken froù!3658
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/ce65d0cceda4a028f30deafa3c39d40a250acc6a" style="color: #1068bf;">ce65d0cc</a></strong>
<div>
<span>by Matthew Pickering</span>
<i>at 2022-03-03T07:37:48-05:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>hadrian: Correctly set whether we have a debug compiler when running tests

For example, running the `slow-validate` flavour would incorrectly run
the T16135 test which would fail with an assertion error, despite the
fact that is should be skipped when we have a debug compiler.
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/e0c3e757becc9bcc1852c1e14fa7d65c7d2b7b00" style="color: #1068bf;">e0c3e757</a></strong>
<div>
<span>by Matthew Pickering</span>
<i>at 2022-03-03T13:48:41-05:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>docs: Add note to unsafeCoerce function that you might want to use coerce [skip ci]

Fixes #15429
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/559d4cf3b30a926255902fd0e845090d4160fa4c" style="color: #1068bf;">559d4cf3</a></strong>
<div>
<span>by Matthew Pickering</span>
<i>at 2022-03-03T13:49:17-05:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>docs: Add note to RULES documentation about locally bound variables [skip ci]

Fixes #20100
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/c534b3dd30de8d5a59ff64628a6a0b3eb938a102" style="color: #1068bf;">c534b3dd</a></strong>
<div>
<span>by Matthew Pickering</span>
<i>at 2022-03-03T13:49:53-05:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>Replace ad-hoc CPP with constant from GHC.Utils.Constant

Fixes #21154
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/de56cc7ecf93c7439a6acf76892c08124fe3c64b" style="color: #1068bf;">de56cc7e</a></strong>
<div>
<span>by Krzysztof Gogolewski</span>
<i>at 2022-03-04T12:44:26-05:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>Update documentation of LiberalTypeSynonyms

We no longer require LiberalTypeSynonyms to use 'forall' or an unboxed
tuple in a synonym.

I also removed that kind checking before expanding synonyms "could be changed".
This was true when type synonyms were thought of macros, but with
the extensions such as SAKS or matchability I don't see it changing.
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/c0a392599af6f704de8cc2cd107f7b7600ec7990" style="color: #1068bf;">c0a39259</a></strong>
<div>
<span>by Simon Jakobi</span>
<i>at 2022-03-04T12:45:01-05:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>base: Mark GHC.Bits not-home for haddock

Most (all) of the exports are re-exported from
the preferable Data.Bits.
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/3570eda512d157a38da391b6f1d57dfbab72dd09" style="color: #1068bf;">3570eda5</a></strong>
<div>
<span>by Sylvain Henry</span>
<i>at 2022-03-04T12:45:42-05:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>Fix comments about Int64/Word64 primops
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/6f84ee332fd243e83004bdbc92a6970e96ab3189" style="color: #1068bf;">6f84ee33</a></strong>
<div>
<span>by Artem Pelenitsyn</span>
<i>at 2022-03-05T01:06:47-05:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>remove MonadFail instances of ST

CLC proposal: https://github.com/haskell/core-libraries-committee/issues/33

The instances had `fail` implemented in terms of `error`, whereas the
idea of the `MonadFail` class is that the `fail` method should be
implemented in terms of the monad itself.
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/584cd5ae200866fbfb480fab9591f0acf94a8033" style="color: #1068bf;">584cd5ae</a></strong>
<div>
<span>by sheaf</span>
<i>at 2022-03-05T01:07:25-05:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>Don't allow Float#/Double# literal patterns

  This patch does the following two things:

    1. Fix the check in Core Lint to properly throw an error when it
       comes across Float#/Double# literal patterns. The check
       was incorrect before, because it expected the type to be
       Float/Double instead of Float#/Double#.

    2. Add an error in the parser when the user writes a floating-point
       literal pattern such as `case x of { 2.0## -> ... }`.

  Fixes #21115
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/706deee0524ca6af26c8b8d5cff17a6e401a2c18" style="color: #1068bf;">706deee0</a></strong>
<div>
<span>by Greg Steuck</span>
<i>at 2022-03-05T17:44:10-08:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>Make T20214 terminate promptly be setting input to /dev/null

It was hanging and timing out on OpenBSD before.
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/14e900989ce1e2de733fbbcebe853ae363703e3a" style="color: #1068bf;">14e90098</a></strong>
<div>
<span>by Simon Peyton Jones</span>
<i>at 2022-03-07T14:05:41-05:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>Always generalise top-level bindings

Fix #21023 by always generalising top-level binding; change
the documentation of -XMonoLocalBinds to match.
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/c9c31c3cf6fbba4c469d493b94634b180146024a" style="color: #1068bf;">c9c31c3c</a></strong>
<div>
<span>by Matthew Pickering</span>
<i>at 2022-03-07T14:06:16-05:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>hadrian: Add little flavour transformer to build stage2 with assertions

This can be useful to build a `perf+assertions` build or even better
`default+no_profiled_libs+omit_pragmas+assertions`.
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/89c14a6ca76d244fe975bc4d9d7378d25b805d74" style="color: #1068bf;">89c14a6c</a></strong>
<div>
<span>by Matthew Pickering</span>
<i>at 2022-03-07T14:06:16-05:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>ci: Convert all deb10 make jobs into hadrian jobs

This is the first step in converting all the CI configs to use hadrian
rather than make. (#21129)

The metrics increase due to hadrian using --hyperlinked-source for
haddock builds. (See #21156)

-------------------------
Metric Increase:
    haddock.Cabal
    haddock.base
    haddock.compiler
-------------------------
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/7bfae2ee0e9548f489c52c0e3f4688a9ae83b12b" style="color: #1068bf;">7bfae2ee</a></strong>
<div>
<span>by Matthew Pickering</span>
<i>at 2022-03-07T14:06:16-05:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>Replace use of BIN_DIST_PREP_TAR_COMP with BIN_DIST_NAME

And adds a check to make sure we are not accidently settings
BIN_DIST_PREP_TAR_COMP when using hadrian.
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/5b35ca58d94d07751ef2f810686f588ce9c0878a" style="color: #1068bf;">5b35ca58</a></strong>
<div>
<span>by Matthew Pickering</span>
<i>at 2022-03-07T14:06:16-05:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>Fix gen_contents_index logic for hadrian bindist
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/273bc133a2f4d43be63dcfcf645e697d6fae8178" style="color: #1068bf;">273bc133</a></strong>
<div>
<span>by Krzysztof Gogolewski</span>
<i>at 2022-03-07T14:06:52-05:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>Fix reporting constraints in pprTcSolverReportMsg

'no_instance_msg' and 'no_deduce_msg' were omitting the first wanted.
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/5874a30af459892454cf696f5e6ca913b7f400cc" style="color: #1068bf;">5874a30a</a></strong>
<div>
<span>by Simon Jakobi</span>
<i>at 2022-03-07T14:07:28-05:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>Improve setBit for Natural

Previously the default definition was used, which involved allocating
intermediate Natural values.

Fixes #21173.
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/7a02aeb8785d5741f36287c89ffba7b50d29e853" style="color: #1068bf;">7a02aeb8</a></strong>
<div>
<span>by Matthew Pickering</span>
<i>at 2022-03-07T14:08:03-05:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>Remove leftover trace in testsuite
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/6ce6c2504c33eb0faa9c160dc1773735d858504c" style="color: #1068bf;">6ce6c250</a></strong>
<div>
<span>by Andreas Klebinger</span>
<i>at 2022-03-07T23:48:56-05:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>Expand and improve the Note [Strict Worker Ids].

I've added an explicit mention of the invariants surrounding those. As well as adding
more direct cross references to the Strict Field Invariant.
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/d0f892fe08a869f5bb924741b828bb7efdfcd801" style="color: #1068bf;">d0f892fe</a></strong>
<div>
<span>by Ryan Scott</span>
<i>at 2022-03-07T23:49:32-05:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>Delete GenericKind_ in favor of GenericKind_DC

When deriving a `Generic1` instance, we need to know what the last type
variable of a data type is. Previously, there were two mechanisms to determine
this information:

* `GenericKind_`, where `Gen1_` stored the last type variable of a data type
   constructor (i.e., the `tyConTyVars`).
* `GenericKind_DC`, where `Gen1_DC` stored the last universally quantified
  type variable in a data constructor (i.e., the `dataConUnivTyVars`).

These had different use cases, as `GenericKind_` was used for generating
`Rep(1)` instances, while `GenericKind_DC` was used for generating `from(1)`
and `to(1)` implementations. This was already a bit confusing, but things went
from confusing to outright wrong after !6976. This is because after !6976,
the `deriving` machinery stopped using `tyConTyVars` in favor of
`dataConUnivTyVars`. Well, everywhere with the sole exception of
`GenericKind_`, which still continued to use `tyConTyVars`. This lead to
disaster when deriving a `Generic1` instance for a GADT family instance, as
the `tyConTyVars` do not match the `dataConUnivTyVars`. (See #21185.)

The fix is to stop using `GenericKind_` and replace it with `GenericKind_DC`.
For the most part, this proves relatively straightforward. Some highlights:

* The `forgetArgVar` function was deleted entirely, as it no longer proved
  necessary after `GenericKind_`'s demise.
* The substitution that maps from the last type variable to `Any` (see
  `Note [Generating a correctly typed Rep instance]`) had to be moved from
  `tc_mkRepTy` to `tc_mkRepFamInsts`, as `tc_mkRepTy` no longer has access to
  the last type variable.

Fixes #21185.
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/a60ddffd75b9ff07b948ea8cdc71f677a4f8d167" style="color: #1068bf;">a60ddffd</a></strong>
<div>
<span>by Matthew Pickering</span>
<i>at 2022-03-08T22:51:37+00:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>Move bootstrap and cabal-reinstall test jobs to nightly

CI is creaking under the pressure of too many jobs so attempt to reduce
the strain by removing a couple of jobs.
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/7abe32889101f60c2779092eea75494d83254916" style="color: #1068bf;">7abe3288</a></strong>
<div>
<span>by Matthew Pickering</span>
<i>at 2022-03-09T10:24:15+00:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>Add 10 minute timeout to linters job
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/3cf75ede057148cc8e38692ff32013f7d3e4078f" style="color: #1068bf;">3cf75ede</a></strong>
<div>
<span>by Matthew Pickering</span>
<i>at 2022-03-09T10:24:16+00:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>Revert "hadrian: Correctly set whether we have a debug compiler when running tests"

Needing the arguments for "GHC/Utils/Constant.hs" implies a dependency
on the previous stage compiler. Whilst we work out how to get around
this I will just revert this commit (as it only affects running the
testsuite in debug way).

This reverts commit ce65d0cceda4a028f30deafa3c39d40a250acc6a.
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/18b9ba5602121c75f184f29e5b3e70bd7d4779c4" style="color: #1068bf;">18b9ba56</a></strong>
<div>
<span>by Matthew Pickering</span>
<i>at 2022-03-09T11:07:23+00:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>ci: Fix save_cache function

Each interation of saving the cache would copy the whole `cabal` store
into a subfolder in the CACHE_DIR rather than copying the contents of
the cabal store into the cache dir. This resulted in a cache which
looked like:

```
/builds/ghc/ghc/cabal-cache/cabal/cabal/cabal/cabal/cabal/cabal/cabal/cabal/cabal/cabal/
```

So it would get one layer deeper every CI run and take longer and longer
to compress.
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/bc684dfb97b9d1bb81d0b4a96f92226bf9748ea0" style="color: #1068bf;">bc684dfb</a></strong>
<div>
<span>by Ben Gamari</span>
<i>at 2022-03-10T03:20:07-05:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>mr-template: Mention timeframe for review</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/7f5f4edee074c6c26d34e1bf7a725a9de5e3e872" style="color: #1068bf;">7f5f4ede</a></strong>
<div>
<span>by Vladislav Zavialov</span>
<i>at 2022-03-10T03:20:43-05:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>Bump submodules: containers, exceptions

GHC Proposal #371 requires TypeOperators to use type equality a~b.
This submodule update pulls in the appropriate forward-compatibility
changes in 'libraries/containers' and 'libraries/exceptions'
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/8532b8a9d19effb5186fbe2101008655dfaa01f2" style="color: #1068bf;">8532b8a9</a></strong>
<div>
<span>by Matthew Pickering</span>
<i>at 2022-03-10T03:20:43-05:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>Add an inline pragma to lookupVarEnv

The containers bump reduced the size of the Data.IntMap.Internal.lookup
function so that it no longer experienced W/W. This means that the size
of lookupVarEnv increased over the inlining threshold and it wasn't
inlined into the hot code path in substTyVar.

See containers#821, #21159 and !7638 for some more explanation.

-------------------------
Metric Decrease:
    LargeRecord
    T12227
    T13386
    T15703
    T18223
    T5030
    T8095
    T9872a
    T9872b
    T9872c
    TcPlugin_RewritePerf
-------------------------
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/844cf1e14fe031c9ed7597b00a1183ad9b1ccc0a" style="color: #1068bf;">844cf1e1</a></strong>
<div>
<span>by Matthew Pickering</span>
<i>at 2022-03-10T03:20:43-05:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>Normalise output of T10970 test

The output of this test changes each time the containers submodule
version updates. It's easier to apply the version normaliser so that
the test checks that there is a version number, but not which one it is.
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/24b6af26e2e03c93e274ba15c6ead897d884fdd4" style="color: #1068bf;">24b6af26</a></strong>
<div>
<span>by Ryan Scott</span>
<i>at 2022-03-11T19:56:28-05:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>Refactor tcDeriving to generate tyfam insts before any bindings

Previously, there was an awful hack in `genInst` (now called `genInstBinds`
after this patch) where we had to return a continutation rather than directly
returning the bindings for a derived instance. This was done for staging
purposes, as we had to first infer the instance contexts for derived instances
and then feed these contexts into the continuations to ensure the generated
instance bindings had accurate instance contexts.
`Note [Staging of tcDeriving]` in `GHC.Tc.Deriving` described this confusing
state of affairs.

The root cause of this confusing design was the fact that `genInst` was trying
to generate instance bindings and associated type family instances for derived
instances simultaneously. This really isn't possible, however: as
`Note [Staging of tcDeriving]` explains, one needs to have access to the
associated type family instances before one can properly infer the instance
contexts for derived instances. The use of continuation-returning style was an
attempt to circumvent this dependency, but it did so in an awkward way.

This patch detangles this awkwardness by splitting up `genInst` into two
functions: `genFamInsts` (for associated type family instances) and
`genInstBinds` (for instance bindings). Now, the `tcDeriving` function calls
`genFamInsts` and brings all the family instances into scope before calling
`genInstBinds`. This removes the need for the awkward continuation-returning
style seen in the previous version of `genInst`, making the code easier to
understand.

There are some knock-on changes as well:

1. `hasStockDeriving` now needs to return two separate functions: one that
   describes how to generate family instances for a stock-derived instance,
   and another that describes how to generate the instance bindings. I factored
   out this pattern into a new `StockGenFns` data type.
2. While documenting `StockGenFns`, I realized that there was some
   inconsistency regarding which `StockGenFns` functions needed which
   arguments. In particular, the function in `GHC.Tc.Deriv.Generics` which
   generates `Rep(1)` instances did not take a `SrcSpan` like other `gen_*`
   functions did, and it included an extra `[Type]` argument that was entirely
   redundant. As a consequence, I refactored the code in
   `GHC.Tc.Deriv.Generics` to more closely resemble other `gen_*` functions.
   A happy result of all this is that all `StockGenFns` functions now take
   exactly the same arguments, which makes everything more uniform.

This is purely a refactoring that should not have any effect on user-observable
behavior. The new design paves the way for an eventual fix for #20719.
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/62caaa9b381b07208c8a2fae20fb7fee9e951004" style="color: #1068bf;">62caaa9b</a></strong>
<div>
<span>by Ben Gamari</span>
<i>at 2022-03-11T19:57:03-05:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>gitlab-ci: Use the linters image in hlint job

As the `hlint` executable is only available in the linters image.

Fixes #21146.
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/4abd7eb03f9bc05f0f53126d2d37d81d3070f15d" style="color: #1068bf;">4abd7eb0</a></strong>
<div>
<span>by Matthew Pickering</span>
<i>at 2022-03-11T19:57:38-05:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>Remove partOfGhci check in the loader

This special logic has been part of GHC ever since template haskell was
introduced in 9af77fa423926fbda946b31e174173d0ec5ebac8.

It's hard to believe in any case that this special logic pays its way at
all. Given

* The list is out-of-date, which has potential to lead to miscompilation
  when using "editline", which was removed in 2010 (46aed8a4).
* The performance benefit seems negligable as each load only happens
  once anyway and packages specified by package flags are preloaded into
  the linker state at the start of compilation.

Therefore we just remove this logic.

Fixes #19791
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/c40cbaa22973faf38599625351f9e2dd8dac3691" style="color: #1068bf;">c40cbaa2</a></strong>
<div>
<span>by Andreas Klebinger</span>
<i>at 2022-03-11T19:58:14-05:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>Improve -dtag-inference-checks checks.

FUN closures don't get tagged when evaluated. So no point in checking their
tags.
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/ab00d23b44f65c2443ade996a322730615870428" style="color: #1068bf;">ab00d23b</a></strong>
<div>
<span>by Simon Jakobi</span>
<i>at 2022-03-11T19:58:49-05:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>Improve clearBit and complementBit for Natural

Also optimize bigNatComplementBit#.

Fixes #21175, #21181, #21194.
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/a6d8facbbd0cb87374e2afd8a0b908e5cbec399d" style="color: #1068bf;">a6d8facb</a></strong>
<div>
<span>by Sebastian Graf</span>
<i>at 2022-03-11T19:59:24-05:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>gitignore all (build) directories headed by _
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/524795feabf3a977d074f40b482ed7d8893f8710" style="color: #1068bf;">524795fe</a></strong>
<div>
<span>by Sebastian Graf</span>
<i>at 2022-03-11T19:59:24-05:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>Demand: Document why we need three additional equations of multSubDmd
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/6bdcd5573a1fe67dd872c55e5911a1186071c5d3" style="color: #1068bf;">6bdcd557</a></strong>
<div>
<span>by Cheng Shao</span>
<i>at 2022-03-11T20:00:01-05:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>CmmToC: make 64-bit word splitting for 32-bit targets respect target endianness

This used to been broken for little-endian targets.
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/9e67c69e8421f1223a1d14a764740095adeaf89b" style="color: #1068bf;">9e67c69e</a></strong>
<div>
<span>by Cheng Shao</span>
<i>at 2022-03-11T20:00:01-05:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>CmmToC: fix Double# literal payload for 32-bit targets

Contrary to the legacy comment, the splitting didn't happen and we
ended up with a single StgWord64 literal in the output code! Let's
just do the splitting here.
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/1eee2e28ff51db0b8c2393d68f716c6c7941e779" style="color: #1068bf;">1eee2e28</a></strong>
<div>
<span>by Cheng Shao</span>
<i>at 2022-03-11T20:00:01-05:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>CmmToC: use __builtin versions of memcpyish functions to fix type mismatch

Our memcpyish primop's type signatures doesn't match the C type
signatures. It's not a problem for typical archs, since their C ABI
permits dropping the result, but it doesn't work for wasm. The
previous logic would cast the memcpyish function pointer to an
incorrect type and perform an indirect call, which results in a
runtime trap on wasm.

The most straightforward fix is: don't emit EFF_ for memcpyish
functions. Since we don't want to include extra headers in .hc to
bring in their prototypes, we can just use the __builtin versions.
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/9d8d48378840b856eee47a4ad245537829ce5e5a" style="color: #1068bf;">9d8d4837</a></strong>
<div>
<span>by Cheng Shao</span>
<i>at 2022-03-11T20:00:01-05:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>CmmToC: emit __builtin_unreachable() when CmmSwitch doesn't contain fallback case

Otherwise the C compiler may complain "warning: non-void function does
not return a value in all control paths [-Wreturn-type]".
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/27da55407121461695a831aac7cb0ce4845260da" style="color: #1068bf;">27da5540</a></strong>
<div>
<span>by Cheng Shao</span>
<i>at 2022-03-11T20:00:01-05:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>CmmToC: make floatToWord32/doubleToWord64 faster

Use castFloatToWord32/castDoubleToWord64 in base to perform the
reinterpret cast.
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/c98e8332e4a4d806ec53a69b57f38a15e9fab9d4" style="color: #1068bf;">c98e8332</a></strong>
<div>
<span>by Cheng Shao</span>
<i>at 2022-03-11T20:00:01-05:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>CmmToC: fix -Wunused-value warning in ASSIGN_BaseReg

When ASSIGN_BaseReg is a no-op, we shouldn't generate any C code,
otherwise C compiler complains a bunch of -Wunused-value warnings when
doing unregisterised codegen.
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/5932247cda7a782a3d1325b9715095a7d25e8571" style="color: #1068bf;">5932247c</a></strong>
<div>
<span>by Ben Gamari</span>
<i>at 2022-03-11T20:00:36-05:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>users guide: Eliminate spurious \spxentry mentions

We were failing to pass the style file to `makeindex`, as is done by
the mklatex configuration generated by Sphinx.

Fixes #20913.
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/e40cf4ef6cab8e02fcd34efdf98f1715bfa7315c" style="color: #1068bf;">e40cf4ef</a></strong>
<div>
<span>by Simon Jakobi</span>
<i>at 2022-03-11T20:01:11-05:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>ghc-bignum: Tweak integerOr

The result of ORing two BigNats is always greater or equal to the
larger of the two. Therefore it is safe to skip the magnitude checks of
integerFromBigNat#.
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/cf081476eb60ba8d65335234b654b457154b9d83" style="color: #1068bf;">cf081476</a></strong>
<div>
<span>by Vladislav Zavialov</span>
<i>at 2022-03-12T07:02:40-05:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>checkUnboxedLitPat: use non-fatal addError

This enables GHC to report more parse errors in a single pass.
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/7fe0714326080540945fb780cdf65e90e4b49d2f" style="color: #1068bf;">7fe07143</a></strong>
<div>
<span>by Andreas Klebinger</span>
<i>at 2022-03-12T07:03:16-05:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>Rename -fprof-late-ccs to -fprof-late
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/88a945410fe613d41fa3778b71fc187c6ec90155" style="color: #1068bf;">88a94541</a></strong>
<div>
<span>by Sylvain Henry</span>
<i>at 2022-03-12T07:03:56-05:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>Hadrian: avoid useless allocations in trackArgument

Cf ticky report before the change:

    Entries      Alloc    Alloc'd  Non-void Arguments      STG Name
--------------------------------------------------------------------------------
     696987   29044128          0   1 L                    main:Target.trackArgument_go5{v r24kY} (fun)
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/2509d676a77507833fe86d11ec4f41f463faffe4" style="color: #1068bf;">2509d676</a></strong>
<div>
<span>by Sylvain Henry</span>
<i>at 2022-03-12T07:04:36-05:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>Hadrian: avoid allocating in stageString (#19209)
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/c062fac0023dd9a6077a0067b61ce39e32617eec" style="color: #1068bf;">c062fac0</a></strong>
<div>
<span>by Sylvain Henry</span>
<i>at 2022-03-12T07:04:36-05:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>Hadrian: remove useless imports

Added for no reason in 7ce1b694f7be7fbf6e2d7b7eb0639e61fbe358c6
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/c82fb93476b9c32698f8c069e631d94fd6458666" style="color: #1068bf;">c82fb934</a></strong>
<div>
<span>by Sylvain Henry</span>
<i>at 2022-03-12T07:05:16-05:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>Hadrian: avoid allocations in WayUnit's Read instance (#19209)
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/ed04aed2b2d87d605c1cd13161bd3511e43c9452" style="color: #1068bf;">ed04aed2</a></strong>
<div>
<span>by Sylvain Henry</span>
<i>at 2022-03-12T07:05:16-05:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>Hadrian: use IntSet Binary instance for Way (#19209)
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/ad83553153278947f439951d79a842527f2f0983" style="color: #1068bf;">ad835531</a></strong>
<div>
<span>by Simon Peyton Jones</span>
<i>at 2022-03-13T18:12:12-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>Fix bug in weak loop-breakers in OccurAnal

Note [Weak loop breakers] explains why we need to track variables free
in RHS of rules.  But we need to do this for /inactive/ rules as well
as active ones, unlike the rhs_fv_env stuff.

So we now have two fields in node Details, one for free vars of
active rules, and one for free vars of all rules.

This was shown up by #20820, which is now fixed.
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/76b94b726f6e21bb2a46ae04e4a1be2cba45a3dc" style="color: #1068bf;">76b94b72</a></strong>
<div>
<span>by Sebastian Graf</span>
<i>at 2022-03-13T18:12:48-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>Worker/wrapper: Preserve float barriers (#21150)

Issue #21150 shows that worker/wrapper allocated a worker function for a
function with multiple calls that said "called at most once" when the first
argument was absent. That's bad!

This patch makes it so that WW preserves at least one non-one-shot value lambda
(see `Note [Preserving float barriers]`) by passing around `void#` in place of
absent arguments.

Fixes #21150.

Since the fix is pretty similar to `Note [Protecting the last value argument]`,
I put the logic in `mkWorkerArgs`. There I realised (#21204) that
`-ffun-to-thunk` is basically useless with `-ffull-laziness`, so I deprecated
the flag, simplified and split into `needsVoidWorkerArg`/`addVoidWorkerArg`.
SpecConstr is another client of that API.

Fixes #21204.

Metric Decrease:
    T14683
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/97db789eec7a49c3ec30a83666720221c26d8f9e" style="color: #1068bf;">97db789e</a></strong>
<div>
<span>by romes</span>
<i>at 2022-03-14T11:36:39-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>Fix up Note [Bind free vars]

Move GHC-specific comments from Language.Haskell.Syntax.Binds to
GHC.Hs.Binds

It looks like the Note was deleted but there were actually two copies of
it. L.H.S.B no longer references it, and GHC.Hs.Binds keeps an updated
copy. (See #19252)

There are other duplicated notes -- they will be fixed in the next
commit
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/135888ddc6adc99126b84194a5da3d8736324132" style="color: #1068bf;">135888dd</a></strong>
<div>
<span>by romes</span>
<i>at 2022-03-14T11:36:39-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>TTG Pull AbsBinds and ABExport out of the main AST

AbsBinds and ABExport both depended on the typechecker, and were thus
removed from the main AST Expr.

CollectPass now has a new function `collectXXHsBindsLR` used for the new
HsBinds extension point

Bumped haddock submodule to work with AST changes.

The removed Notes from Language.Haskell.Syntax.Binds were duplicated
(and not referenced) and the copies in GHC.Hs.Binds are kept (and
referenced there). (See #19252)
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/106413f094d01485503a9b84fa4545d938ea934d" style="color: #1068bf;">106413f0</a></strong>
<div>
<span>by sheaf</span>
<i>at 2022-03-14T11:37:21-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>Add two coercion optimisation perf tests
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/8eadea670adb5de49ddba7e23d04ec8242ba76a3" style="color: #1068bf;">8eadea67</a></strong>
<div>
<span>by sheaf</span>
<i>at 2022-03-14T15:08:24-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>Fix isLiftedType_maybe and handle fallout

As #20837 pointed out, `isLiftedType_maybe` returned `Just False` in
many situations where it should return `Nothing`, because it didn't
take into account type families or type variables.

In this patch, we fix this issue. We rename `isLiftedType_maybe` to
`typeLevity_maybe`, which now returns a `Levity` instead of a boolean.
We now return `Nothing` for types with kinds of the form
`TYPE (F a1 ... an)` for a type family `F`, as well as
`TYPE (BoxedRep l)` where `l` is a type variable.

This fix caused several other problems, as other parts of the compiler
were relying on `isLiftedType_maybe` returning a `Just` value, and were
now panicking after the above fix. There were two main situations in
which panics occurred:

  1. Issues involving the let/app invariant. To uphold that invariant,
     we need to know whether something is lifted or not. If we get an
     answer of `Nothing` from `isLiftedType_maybe`, then we don't know
     what to do. As this invariant isn't particularly invariant, we
     can change the affected functions to not panic, e.g. by behaving
     the same in the `Just False` case and in the `Nothing` case
     (meaning: no observable change in behaviour compared to before).

  2. Typechecking of data (/newtype) constructor patterns. Some programs
     involving patterns with unknown representations were accepted, such
     as T20363. Now that we are stricter, this caused further issues,
     culminating in Core Lint errors. However, the behaviour was
     incorrect the whole time; the incorrectness only being revealed by
     this change, not triggered by it.

     This patch fixes this by overhauling where the representation
     polymorphism involving pattern matching are done. Instead of doing
     it in `tcMatches`, we instead ensure that the `matchExpected`
     functions such as `matchExpectedFunTys`, `matchActualFunTySigma`,
     `matchActualFunTysRho` allow return argument pattern types which
     have a fixed RuntimeRep (as defined in Note [Fixed RuntimeRep]).
     This ensures that the pattern matching code only ever handles types
     with a known runtime representation. One exception was that
     patterns with an unknown representation type could sneak in via
     `tcConPat`, which points to a missing representation-polymorphism
     check, which this patch now adds.

     This means that we now reject the program in #20363, at least until
     we implement PHASE 2 of FixedRuntimeRep (allowing type families in
     RuntimeRep positions). The aforementioned refactoring, in which
     checks have been moved to `matchExpected` functions, is a first
     step in implementing PHASE 2 for patterns.

Fixes #20837
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/8ff32124c8cd37050f3dc7cbb32b8d41711ebcaf" style="color: #1068bf;">8ff32124</a></strong>
<div>
<span>by Sebastian Graf</span>
<i>at 2022-03-14T15:09:01-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>DmdAnal: Don't unbox recursive data types (#11545)

As `Note [Demand analysis for recursive data constructors]` describes, we now
refrain from unboxing recursive data type arguments, for two reasons:

 1. Relating to run/alloc perf: Similar to
    `Note [CPR for recursive data constructors]`, it seldomly improves run/alloc
    performance if we just unbox a finite number of layers of a potentially huge
    data structure.
 2. Relating to ghc/alloc perf: Inductive definitions on single-product
    recursive data types like the one in T11545 will (diverge, and) have very
    deep demand signatures before any other abortion mechanism in Demand
    analysis is triggered. That leads to great and unnecessary churn on Demand
    analysis when ultimately we will never make use of any nested strictness
    information anyway.

Conclusion: Discard nested demand and boxity information on such recursive types
with the help of `Note [Detecting recursive data constructors]`.

I also implemented `GHC.Types.Unique.MemoFun.memoiseUniqueFun` in order to avoid
the overhead of repeated calls to `GHC.Core.Opt.WorkWrap.Utils.isRecDataCon`.
It's nice and simple and guards against some smaller regressions in T9233 and
T16577.

ghc/alloc performance-wise, this patch is a very clear win:

                               Test    Metric          value      New value Change
---------------------------------------------------------------------------------------
                LargeRecord(normal) ghc/alloc  6,141,071,720  6,099,871,216  -0.7%
MultiLayerModulesTH_OneShot(normal) ghc/alloc  2,740,973,040  2,705,146,640  -1.3%
                     T11545(normal) ghc/alloc    945,475,492     85,768,928 -90.9% GOOD
                     T13056(optasm) ghc/alloc    370,245,880    326,980,632 -11.7% GOOD
                     T18304(normal) ghc/alloc     90,933,944     76,998,064 -15.3% GOOD
                     T9872a(normal) ghc/alloc  1,800,576,840  1,792,348,760  -0.5%
                     T9872b(normal) ghc/alloc  2,086,492,432  2,073,991,848  -0.6%
                     T9872c(normal) ghc/alloc  1,750,491,240  1,737,797,832  -0.7%
       TcPlugin_RewritePerf(normal) ghc/alloc  2,286,813,400  2,270,957,896  -0.7%

                          geo. mean                                          -2.9%

No noteworthy change in run/alloc either.

NoFib results show slight wins, too:

--------------------------------------------------------------------------------
        Program         Allocs    Instrs
--------------------------------------------------------------------------------
    constraints          -1.9%     -1.4%
          fasta          -3.6%     -2.7%
reverse-complem          -0.3%     -0.9%
       treejoin          -0.0%     -0.3%
--------------------------------------------------------------------------------
            Min          -3.6%     -2.7%
            Max          +0.1%     +0.1%
 Geometric Mean          -0.1%     -0.1%

Metric Decrease:
    T11545
    T13056
    T18304
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/ab618309069bb47645f33cd1b198ace46e27abb9" style="color: #1068bf;">ab618309</a></strong>
<div>
<span>by Vladislav Zavialov</span>
<i>at 2022-03-15T18:34:38+03:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>Export (~) from Data.Type.Equality (#18862)

* Users can define their own (~) type operator
* Haddock can display documentation for the built-in (~)
* New transitional warnings implemented:
    -Wtype-equality-out-of-scope
    -Wtype-equality-requires-operators

Updates the haddock submodule.
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/577135bf2251cf0aecf07ebb4966659d3fcc62b5" style="color: #1068bf;">577135bf</a></strong>
<div>
<span>by Aaron Allen</span>
<i>at 2022-03-16T02:27:48-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>Convert Diagnostics in GHC.Tc.Gen.Foreign

Converts all uses of 'TcRnUnknownMessage' to proper diagnostics.
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/c1fed9da095303591c37c53bad5f5559381048d7" style="color: #1068bf;">c1fed9da</a></strong>
<div>
<span>by Aaron Allen</span>
<i>at 2022-03-16T02:27:48-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>Suggest FFI extensions as hints (#20116)

- Use extension suggestion hints instead of suggesting extensions in the
error message body for several FFI errors.
- Adds a test case for `TcRnForeignImportPrimExtNotSet`
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/a33d10452c261ab39ce8c0954bac9053c212a6cc" style="color: #1068bf;">a33d1045</a></strong>
<div>
<span>by Zubin Duggal</span>
<i>at 2022-03-16T02:28:24-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>TH: allow negative patterns in quotes (#20711)

We still don't allow negative overloaded patterns. Earler all negative patterns
were treated as negative overloaded patterns. Now, we expliclty check the
extension field to see if the pattern is actually a negative overloaded pattern
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/1575c4a5d9611a7299c33d3fd98f52ddeff84c80" style="color: #1068bf;">1575c4a5</a></strong>
<div>
<span>by Sebastian Graf</span>
<i>at 2022-03-16T02:29:03-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>Demand: Let `Boxed` win in `lubBoxity` (#21119)

Previously, we let `Unboxed` win in `lubBoxity`, which is unsoundly optimistic
in terms ob Boxity analysis. "Unsoundly" in the sense that we sometimes unbox
parameters that we better shouldn't unbox. Examples are #18907 and T19871.absent.

Until now, we thought that this hack pulled its weight becuase it worked around
some shortcomings of the phase separation between Boxity analysis and CPR
analysis. But it is a gross hack which caused regressions itself that needed all
kinds of fixes and workarounds. See for example #20767. It became impossible to
work with in !7599, so I want to remove it.

For example, at the moment, `lubDmd B dmd` will not unbox `dmd`,
but `lubDmd A dmd` will. Given that `B` is supposed to be the bottom element of
the lattice, it's hardly justifiable to get a better demand when `lub`bing with
`A`.

The consequence of letting `Boxed` win in `lubBoxity` is that we *would* regress
 #2387, #16040 and parts of #5075 and T19871.sumIO, until Boxity and CPR
are able to communicate better. Fortunately, that is not the case since I could
tweak the other source of optimism in Boxity analysis that is described in
`Note [Unboxed demand on function bodies returning small products]` so that
we *recursively* assume unboxed demands on function bodies returning small
products. See the updated Note.

`Note [Boxity for bottoming functions]` describes why we need bottoming
functions to have signatures that say that they deeply unbox their arguments.
In so doing, I had to tweak `finaliseArgBoxities` so that it will never unbox
recursive data constructors. This is in line with our handling of them in CPR.
I updated `Note [Which types are unboxed?]` to reflect that.

In turn we fix #21119, #20767, #18907, T19871.absent and get a much simpler
implementation (at least to think about). We can also drop the very ad-hoc
definition of `deferAfterPreciseException` and its Note in favor of the
simple, intuitive definition we used to have.

Metric Decrease:
    T16875
    T18223
    T18698a
    T18698b
    hard_hole_fits
Metric Increase:
    LargeRecord
    MultiComponentModulesRecomp
    T15703
    T8095
    T9872d

Out of all the regresions, only the one in T9872d doesn't vanish in a perf
build, where the compiler is bootstrapped with -O2 and thus SpecConstr.
Reason for regressions:

  * T9872d is due to `ty_co_subst` taking its `LiftingContext` boxed.
    That is because the context is passed to a function argument, for
    example in `liftCoSubstTyVarBndrUsing`.
  * In T15703, LargeRecord and T8095, we get a bit more allocations in
    `expand_syn` and `piResultTys`, because a `TCvSubst` isn't unboxed.
    In both cases that guards against reboxing in some code paths.
  * The same is true for MultiComponentModulesRecomp, where we get less unboxing
    in `GHC.Unit.Finder.$wfindInstalledHomeModule`. In a perf build, allocations
    actually *improve* by over 4%!

Results on NoFib:

--------------------------------------------------------------------------------
        Program         Allocs    Instrs
--------------------------------------------------------------------------------
         awards          -0.4%     +0.3%
      cacheprof          -0.3%     +2.4%
            fft          -1.5%     -5.1%
       fibheaps          +1.2%     +0.8%
          fluid          -0.3%     -0.1%
            ida          +0.4%     +0.9%
   k-nucleotide          +0.4%     -0.1%
     last-piece         +10.5%    +13.9%
           lift          -4.4%     +3.5%
        mandel2         -99.7%    -99.8%
           mate          -0.4%     +3.6%
         parser          -1.0%     +0.1%
         puzzle         -11.6%     +6.5%
reverse-complem          -3.0%     +2.0%
            scs          -0.5%     +0.1%
         sphere          -0.4%     -0.2%
      wave4main          -8.2%     -0.3%
--------------------------------------------------------------------------------
Summary excludes mandel2 because of excessive bias
            Min         -11.6%     -5.1%
            Max         +10.5%    +13.9%
 Geometric Mean          -0.2%     +0.3%
--------------------------------------------------------------------------------

Not bad for a bug fix.

The regression in `last-piece` could become a win if SpecConstr would work on
non-recursive functions. The regression in `fibheaps` is due to
`Note [Reboxed crud for bottoming calls]`, e.g., #21128.
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/bb779b90bb093274ccf7a8e5b19f6661f4925bde" style="color: #1068bf;">bb779b90</a></strong>
<div>
<span>by sheaf</span>
<i>at 2022-03-16T02:29:42-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>Add a regression test for #21130

This problem was due to a bug in cloneWanted, which was incorrectly
creating a coercion hole to hold an evidence variable.

This bug was introduced by 8bb52d91 and fixed in 81740ce8.

Fixes #21130
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/0f0e2394942842c700484ecf4b473a929a436b0d" style="color: #1068bf;">0f0e2394</a></strong>
<div>
<span>by Tamar Christina</span>
<i>at 2022-03-17T10:16:37-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>linker: Initial Windows C++ exception unwinding support
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/36d20d4d5f089becd4dadb7bd6d477806e0b24a6" style="color: #1068bf;">36d20d4d</a></strong>
<div>
<span>by Tamar Christina</span>
<i>at 2022-03-17T10:16:37-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>linker: Fix ADDR32NB relocations on Windows
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/8a516527e03a17b5b7ebc3f7f88bf710bd16495c" style="color: #1068bf;">8a516527</a></strong>
<div>
<span>by Tamar Christina</span>
<i>at 2022-03-17T10:16:37-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>testsuite: properly escape string paths
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/1a0dd0088247f9d4e403a460f0f6120184af3e15" style="color: #1068bf;">1a0dd008</a></strong>
<div>
<span>by sheaf</span>
<i>at 2022-03-17T10:17:13-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>Hadrian: account for change in late-ccs flag

The late cost centre flag was renamed from -fprof-late-ccs
to -fprof-late in 7fe07143, but this change hadn't been
propagated to Hadrian.
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/8561c1afdbbda73a31cb8f8f1e80d1f403673e9b" style="color: #1068bf;">8561c1af</a></strong>
<div>
<span>by romes</span>
<i>at 2022-03-18T05:10:58-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>TTG: Refactor HsBracket
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/19163397000ae3ce9886a75bef900d35774d864e" style="color: #1068bf;">19163397</a></strong>
<div>
<span>by romes</span>
<i>at 2022-03-18T05:10:58-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>Type-checking untyped brackets

When HsExpr GhcTc, the HsBracket constructor should hold a HsBracket
GhcRn, rather than an HsBracket GhcTc.

We make use of the HsBracket p extension constructor (XBracket
(XXBracket p)) to hold an HsBracket GhcRn when the pass is GhcTc

See !4782 https://gitlab.haskell.org/ghc/ghc/-/merge_requests/4782
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/310890a51372937afa69e1edac1179eba67ac046" style="color: #1068bf;">310890a5</a></strong>
<div>
<span>by romes</span>
<i>at 2022-03-18T05:10:58-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>Separate constructors for typed and untyped brackets

Split HsBracket into HsTypedBracket and HsUntypedBracket.

Unfortunately, we still cannot get rid of

    instance XXTypedBracket GhcTc = HsTypedBracket GhcRn

despite no longer requiring it for typechecking, but rather because the
TH desugarer works on GhcRn rather than GhcTc (See GHC.HsToCore.Quote)
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/4a2567f5641a4807584c90015dfc40a791f241b4" style="color: #1068bf;">4a2567f5</a></strong>
<div>
<span>by romes</span>
<i>at 2022-03-18T05:10:58-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>TTG: Refactor bracket for desugaring during tc

When desugaring a bracket we want to desugar /renamed/ rather than
/typechecked/ code; So in (HsExpr GhcTc) tree, we must
have a (HsExpr GhcRn) for the quotation itself.

This commit reworks the TTG refactor on typed and untyped brackets by
storing the /renamed/ code in the bracket field extension rather than in
the constructor extension in `HsQuote` (previously called
`HsUntypedBracket`)

See Note [The life cycle of a TH quotation] and https://gitlab.haskell.org/ghc/ghc/-/merge_requests/4782
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/b056adc8062b4fe015450a21eb70e32dcf7023f5" style="color: #1068bf;">b056adc8</a></strong>
<div>
<span>by romes</span>
<i>at 2022-03-18T05:10:58-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>TTG: Make HsQuote GhcTc isomorphic to NoExtField

An untyped bracket `HsQuote p` can never be constructed with
`p ~ GhcTc`. This is because we don't typecheck `HsQuote` at all.

That's OK, because we also never use `HsQuote GhcTc`.

To enforce this at the type level we make `HsQuote GhcTc` isomorphic
to `NoExtField` and impossible to construct otherwise, by using TTG field
extensions to make all constructors, except for `XQuote` (which takes `NoExtField`),
unconstructable, with `DataConCantHappen`

This is explained more in detail in Note [The life cycle of a TH quotation]

Related discussion: https://gitlab.haskell.org/ghc/ghc/-/merge_requests/4782
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/ac3b2e7deb0e2987ae3f27d62c03716de46ebc79" style="color: #1068bf;">ac3b2e7d</a></strong>
<div>
<span>by romes</span>
<i>at 2022-03-18T05:10:58-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>TTG: TH brackets finishing touches

Rewrite the critical notes and fix outdated ones,

use `HsQuote GhcRn` (in `HsBracketTc`) for desugaring regardless of the
bracket being typed or untyped,

remove unused `EpAnn` from `Hs*Bracket GhcRn`,

zonkExpr factor out common brackets code,

ppr_expr factor out common brackets code,

and fix tests,

to finish MR https://gitlab.haskell.org/ghc/ghc/-/merge_requests/4782.

-------------------------
Metric Decrease:
    hard_hole_fits
-------------------------
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/d147428a5041adcdda2ffe02e3012c7987be3c23" style="color: #1068bf;">d147428a</a></strong>
<div>
<span>by Ben Gamari</span>
<i>at 2022-03-18T05:11:35-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>codeGen: Fix signedness of jump table indexing

Previously while constructing the jump table index we would
zero-extend the discriminant before subtracting the start of the
jump-table. This goes subtly wrong in the case of a sub-word, signed
discriminant, as described in the included Note. Fix this in both the
PPC and X86 NCGs.

Fixes #21186.
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/435a3d5df098099ec984847b84f0bc734f5d2c3f" style="color: #1068bf;">435a3d5d</a></strong>
<div>
<span>by Ben Gamari</span>
<i>at 2022-03-18T05:11:35-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>testsuite: Add test for #21186
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/e9d8de93ed8343be5a9530346f254b18dd6df3bc" style="color: #1068bf;">e9d8de93</a></strong>
<div>
<span>by Zubin Duggal</span>
<i>at 2022-03-19T07:35:49-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>TH: Fix pretty printing of newtypes with operators and GADT syntax (#20868)

The pretty printer for regular data types already accounted for these,
and had some duplication with the newtype pretty printer.

Factoring the logic out into a common function and using it for both
newtypes and data declarations is enough to fix the bug.
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/244da9ebc01b2a8c72f78e7be4411c32a4d0f524" style="color: #1068bf;">244da9eb</a></strong>
<div>
<span>by sheaf</span>
<i>at 2022-03-19T07:36:24-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>List GHC.Event.Internal in base.cabal on Windows

GHC.Event.Internal was not listed in base.cabal on Windows. This caused
undefined reference errors. This patch adds it back, by moving it out
of the OS-specific logic in base.cabal.

Fixes #21245.</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/d1c03719277c2eda9ee9f4b45c62fa954b609b8e" style="color: #1068bf;">d1c03719</a></strong>
<div>
<span>by Andreas Klebinger</span>
<i>at 2022-03-19T07:37:00-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>Compact regions: Maintain tags properly

Fixes #21251
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/d45bb70178e044bc8b6e8215da7bc8ed0c95f2cb" style="color: #1068bf;">d45bb701</a></strong>
<div>
<span>by romes</span>
<i>at 2022-03-19T07:37:36-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>Remove dead code HsDoRn
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/c842611fc72d987519cd9fab1c351135ae93665e" style="color: #1068bf;">c842611f</a></strong>
<div>
<span>by nineonine</span>
<i>at 2022-03-20T21:16:06-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>Revamp derived Eq instance code generation (#17240)

This patch improves code generation for derived Eq instances.
The idea is to use 'dataToTag' to evaluate both arguments.
This allows to 'short-circuit' when tags do not match.
Unfortunately, inner evals are still present when we branch
on tags. This is due to the way 'dataToTag#' primop
evaluates its argument in the code generator. #21207 was
created to explore further optimizations.

Metric Decrease:
    LargeRecord
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/52ffd38c610f418ee1d1a549cfdfdaa11794ea40" style="color: #1068bf;">52ffd38c</a></strong>
<div>
<span>by Sylvain Henry</span>
<i>at 2022-03-20T21:16:46-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>Avoid some SOURCE imports
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/b91798be48d9fa02610b419ccea15a7dfd663823" style="color: #1068bf;">b91798be</a></strong>
<div>
<span>by Zubin Duggal</span>
<i>at 2022-03-23T13:39:39-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>hi haddock: Lex and store haddock docs in interface files

Names appearing in Haddock docstrings are lexed and renamed like any other names
appearing in the AST. We currently rename names irrespective of the namespace,
so both type and constructor names corresponding to an identifier will appear in
the docstring. Haddock will select a given name as the link destination based on
its own heuristics.

This patch also restricts the limitation of `-haddock` being incompatible with
`Opt_KeepRawTokenStream`.

The export and documenation structure is now computed in GHC and serialised in
.hi files. This can be used by haddock to directly generate doc pages without
reparsing or renaming the source. At the moment the operation of haddock
is not modified, that's left to a future patch.

Updates the haddock submodule with the minimum changes needed.
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/78db231ffdf8385662812781c1d09c630cfad313" style="color: #1068bf;">78db231f</a></strong>
<div>
<span>by Cheng Shao</span>
<i>at 2022-03-23T13:40:17-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>configure: bump LlvmMaxVersion to 14

LLVM 13.0.0 is released in Oct 2021, and latest head validates against
LLVM 13 just fine if LlvmMaxVersion is bumped.
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/b06e5dd8a2b258d5d6f3676c9f424cc09d4d73f3" style="color: #1068bf;">b06e5dd8</a></strong>
<div>
<span>by Adam Sandberg Ericsson</span>
<i>at 2022-03-23T13:40:54-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>docs: clarify the eventlog format documentation a little bit
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/4dc624987a7e000e9e1086a601039afafb7f2d28" style="color: #1068bf;">4dc62498</a></strong>
<div>
<span>by Matthew Pickering</span>
<i>at 2022-03-23T13:41:31-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>Fix behaviour of -Wunused-packages in ghci

Ticket #21110 points out that -Wunused-packages behaves a bit unusually
in GHCi. Now we define the semantics for -Wunused-packages in
interactive mode as follows:

* If you use -Wunused-packages on an initial load then the warning is reported.
* If you explicitly set -Wunused-packages on the command line then the
  warning is displayed (until it is disabled)
* If you then subsequently modify the set of available targets by using
  :load or :cd (:cd unloads everything) then the warning is (silently)
  turned off.

This means that every :r the warning is printed if it's turned on (but you did ask for it).

Fixes #21110
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/fed05347224ee2fc36e926eb18532327896e287a" style="color: #1068bf;">fed05347</a></strong>
<div>
<span>by Ben Gamari</span>
<i>at 2022-03-23T13:42:07-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>rts/adjustor: Place adjustor templates in data section on all OSs

In !7604 we started placing adjustor templates in the data section on
Linux as some toolchains there reject relocations in the text section.
However, it turns out that OpenBSD also exhibits this restriction.

Fix this by *always* placing adjustor templates in the data section.

Fixes #21155.
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/db32bb8c704f83ef6dfe839b733274505ded6a08" style="color: #1068bf;">db32bb8c</a></strong>
<div>
<span>by Zubin Duggal</span>
<i>at 2022-03-23T13:42:44-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>Improve error message when warning about unsupported LLVM version (#20958)

Change the wording to make it clear that the upper bound is non-inclusive.
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/f214349ac9a9114e564f660d0618d683e2a4f74e" style="color: #1068bf;">f214349a</a></strong>
<div>
<span>by Ben Gamari</span>
<i>at 2022-03-23T13:43:20-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>rts: Untag function field in scavenge_PAP_payload

Previously we failed to untag the function closure when scavenging the
payload of a PAP, resulting in an invalid closure pointer being passed
to scavenge_large_bitmap and consequently #21254. Fix this.

Fixes #21254
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/e6d0e287272e1f5ee46d80676a1df2ff65584dad" style="color: #1068bf;">e6d0e287</a></strong>
<div>
<span>by Ben Gamari</span>
<i>at 2022-03-23T13:43:20-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>rts: Don't mark object code in markCAFs unless necessary

Previously `markCAFs` would call `markObjectCode` even in non-major GCs.
This is problematic since `prepareUnloadCheck` is not called in such
GCs, meaning that the section index has not been updated.

Fixes #21254
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/1a7cf0963e3511864013bbadfd1f01aaae16df80" style="color: #1068bf;">1a7cf096</a></strong>
<div>
<span>by Sylvain Henry</span>
<i>at 2022-03-23T13:44:05-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>Avoid redundant imports of GHC.Driver.Session

Remove GHC.Driver.Session imports that weren't considered as redundant
because of the reexport of PlatformConstants. Also remove this reexport
as modules using this datatype should import GHC.Platform instead.
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/e3f60577b5c513ae9c7bc6dc70c95c3e2762fa6c" style="color: #1068bf;">e3f60577</a></strong>
<div>
<span>by Sylvain Henry</span>
<i>at 2022-03-23T13:44:05-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>Reverse dependency between StgToCmm and Runtime.Heap.Layout
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/e6585ca168ba55ca81a3e6cd7221707719b7fa56" style="color: #1068bf;">e6585ca1</a></strong>
<div>
<span>by Sylvain Henry</span>
<i>at 2022-03-23T13:44:46-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>Define filterOut with filter

filter has fusion rules that filterOut lacks
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/c58d008c13391454ad565932593d5a46d5aeadf3" style="color: #1068bf;">c58d008c</a></strong>
<div>
<span>by Ryan Scott</span>
<i>at 2022-03-24T06:10:43-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>Fix and simplify DeriveAnyClass's context inference using SubTypePredSpec

As explained in `Note [Gathering and simplifying constraints for DeriveAnyClass]`
in `GHC.Tc.Deriv.Infer`, `DeriveAnyClass` infers instance contexts by emitting
implication constraints. Previously, these implication constraints were
constructed by hand. This is a terribly trick thing to get right, as it
involves a delicate interplay of skolemisation, metavariable instantiation, and
`TcLevel` bumping. Despite much effort, we discovered in #20719 that the
implementation was subtly incorrect, leading to valid programs being rejected.

While we could scrutinize the code that manually constructs implication
constraints and repair it, there is a better, less error-prone way to do
things. After all, the heart of `DeriveAnyClass` is generating code which
fills in each class method with defaults, e.g., `foo = $gdm_foo`. Typechecking
this sort of code is tantamount to calling `tcSubTypeSigma`, as we much ensure
that the type of `$gdm_foo` is a subtype of (i.e., more polymorphic than) the
type of `foo`. As an added bonus, `tcSubTypeSigma` is a battle-tested function
that handles skolemisation, metvariable instantiation, `TcLevel` bumping, and
all other means of tricky bookkeeping correctly.

With this insight, the solution to the problems uncovered in #20719 is simple:
use `tcSubTypeSigma` to check if `$gdm_foo`'s type is a subtype of `foo`'s
type. As a side effect, `tcSubTypeSigma` will emit exactly the implication
constraint that we were attempting to construct by hand previously. Moreover,
it does so correctly, fixing #20719 as a consequence.

This patch implements the solution thusly:

* The `PredSpec` data type (previously named `PredOrigin`) is now split into
  `SimplePredSpec`, which directly stores a `PredType`, and `SubTypePredSpec`,
  which stores the actual and expected types in a subtype check.
  `SubTypePredSpec` is only used for `DeriveAnyClass`; all other deriving
  strategies use `SimplePredSpec`.
* Because `tcSubTypeSigma` manages the finer details of type variable
  instantiation and constraint solving under the hood, there is no longer any
  need to delicately split apart the method type signatures in
  `inferConstraintsAnyclass`. This greatly simplifies the implementation of
  `inferConstraintsAnyclass` and obviates the need to store skolems,
  metavariables, or given constraints in a `ThetaSpec` (previously named
  `ThetaOrigin`). As a bonus, this means that `ThetaSpec` now simply becomes a
  synonym for a list of `PredSpec`s, which is conceptually much simpler than it
  was before.
* In `simplifyDeriv`, each `SubTypePredSpec` results in a call to
  `tcSubTypeSigma`. This is only performed for its side effect of emitting
  an implication constraint, which is fed to the rest of the constraint solving
  machinery in `simplifyDeriv`. I have updated
  `Note [Gathering and simplifying constraints for DeriveAnyClass]` to explain
  this in more detail.

To make the changes in `simplifyDeriv` more manageable, I also performed some
auxiliary refactoring:

* Previously, every iteration of `simplifyDeriv` was skolemising the type
  variables at the start, simplifying, and then performing a reverse
  substitution at the end to un-skolemise the type variables. This is not
  necessary, however, since we can just as well skolemise once at the
  beginning of the `deriving` pipeline and zonk the `TcTyVar`s after
  `simplifyDeriv` is finished. This patch does just that, having been made
  possible by prior work in !7613. I have updated `Note [Overlap and deriving]`
  in `GHC.Tc.Deriv.Infer` to explain this, and I have also left comments on
  the relevant data structures (e.g., `DerivEnv` and `DerivSpec`) to explain
  when things might be `TcTyVar`s or `TyVar`s.
* All of the aforementioned cleanup allowed me to remove an ad hoc
  deriving-related in `checkImplicationInvariants`, as all of the skolems in
  a `tcSubTypeSigma`–produced implication constraint should now be `TcTyVar`
  at the time the implication is created.
* Since `simplifyDeriv` now needs a `SkolemInfo` and `UserTypeCtxt`, I have
  added `ds_skol_info` and `ds_user_ctxt` fields to `DerivSpec` to store these.
  Similarly, I have also added a `denv_skol_info` field to `DerivEnv`, which
  ultimately gets used to initialize the `ds_skol_info` in a `DerivSpec`.

Fixes #20719.
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/21680fb05df18f4da855e1ca66e895b82cfd1e96" style="color: #1068bf;">21680fb0</a></strong>
<div>
<span>by Sebastian Graf</span>
<i>at 2022-03-24T06:11:19-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>WorkWrap: Handle partial FUN apps in `isRecDataCon` (#21265)

Partial FUN apps like `(->) Bool` aren't detected by `splitFunTy_maybe`.
A silly oversight that is easily fixed by replacing `splitFunTy_maybe` with a
guard in the `splitTyConApp_maybe` case.

But fortunately, Simon nudged me into rewriting the whole `isRecDataCon`
function in a way that makes it much shorter and hence clearer which DataCons
are actually considered as recursive.

Fixes #21265.
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/a2937e2b2cadc72b78641c321398cf6b7e7a485c" style="color: #1068bf;">a2937e2b</a></strong>
<div>
<span>by Matthew Pickering</span>
<i>at 2022-03-24T17:13:22-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>Add test for T21035

This test checks that you are allowed to explicitly supply object files
for dependencies even if you haven't got the shared object for that
library yet.

Fixes #21035
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/1756d54763d123cb8eabdc8fb95b3ece8c10a6d4" style="color: #1068bf;">1756d547</a></strong>
<div>
<span>by Matthew Pickering</span>
<i>at 2022-03-24T17:13:58-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>Add check to ensure we are not building validate jobs for releases
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/99623358754d812b8b4bdfcdc57190d38617b9cc" style="color: #1068bf;">99623358</a></strong>
<div>
<span>by Matthew Pickering</span>
<i>at 2022-03-24T17:13:58-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>hadrian: Correct generation of hsc2hs wrapper

If you inspect the inside of a wrapper script for hsc2hs you will see
that the cflag and lflag values are concatenated incorrectly.

```
HSC2HS_EXTRA="--cflag=-U__i686--lflag=-fuse-ld=gold"
```

It should instead be

```
HSC2HS_EXTRA="--cflag=-U__i686 --lflag=-fuse-ld=gold"
```

Fixes #21221
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/fefd4e312f0249117f2d5a5a6962edb1e0b6ed19" style="color: #1068bf;">fefd4e31</a></strong>
<div>
<span>by Matthew Pickering</span>
<i>at 2022-03-24T17:13:59-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>testsuite: Remove library dependenices from T21119

These dependencies would affect the demand signature depending on
various rules and so on.

Fixes #21271
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/5ff690b8474c74e9c968ef31e568c1ad0fe719a1" style="color: #1068bf;">5ff690b8</a></strong>
<div>
<span>by Matthew Pickering</span>
<i>at 2022-03-24T17:13:59-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>ci: Generate jobs for all normal builds and use hadrian for all builds

This commit introduces a new script (.gitlab/gen_ci.hs) which generates
a yaml file (.gitlab/jobs.yaml) which contains explicit descriptions for
all the jobs we want to run. The jobs are separated into three
categories:

* validate - jobs run on every MR
* nightly  - jobs run once per day on the master branch
* release  - jobs for producing release artifacts

The generation script is a Haskell program which includes a DSL for
specifying the different jobs. The hope is that it's easier to reason
about the different jobs and how the variables are merged together
rather than the unclear and opaque yaml syntax. The goal is to fix
issues like #21190 once and for all..

The `.gitlab/jobs.yaml` can be generated by running the `.gitlab/generate_jobs`
script. You have to do this manually.

Another consequence of this patch is that we use hadrian for all the
validate, nightly and release builds on all platforms.
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/1d673aa25205084d3973a3e9c7b7cd84a8b3171c" style="color: #1068bf;">1d673aa2</a></strong>
<div>
<span>by Christiaan Baaij</span>
<i>at 2022-03-25T11:35:49-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>Add the OPAQUE pragma

A new pragma, `OPAQUE`, that ensures that every call of a named
function annotated with an `OPAQUE` pragma remains a call of that
named function, not some name-mangled variant.

Implements GHC proposal 0415:
https://github.com/ghc-proposals/ghc-proposals/blob/master/proposals/0415-opaque-pragma.rst

This commit also updates the haddock submodule to handle the newly
introduced lexer tokens corresponding to the OPAQUE pragma.
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/83f5841b32ef11c54ff1e24dd5b92bc3c77f6250" style="color: #1068bf;">83f5841b</a></strong>
<div>
<span>by Bodigrim</span>
<i>at 2022-03-25T11:36:31-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>Add instance Lift ByteArray
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/7cc1184aec70e817a47f99d09e103c275e2a4b9a" style="color: #1068bf;">7cc1184a</a></strong>
<div>
<span>by Matthew Pickering</span>
<i>at 2022-03-25T11:37:07-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>Make -ddump-rn-ast and -ddump-tc-ast work in GHCi

Fixes #17830
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/940feaf3c2334d6eb8b66bd9d3edd560f789c94f" style="color: #1068bf;">940feaf3</a></strong>
<div>
<span>by Sylvain Henry</span>
<i>at 2022-03-25T11:37:47-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>Modularize Tidy (#17957)

- Factorize Tidy options into TidyOpts datatype. Initialize it in
  GHC.Driver.Config.Tidy
- Same thing for StaticPtrOpts
- Perform lookups of unpackCString[Utf8]# once in initStaticPtrOpts
  instead of for every use of mkStringExprWithFS
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/25101813905a78010e25ecc3a5f392e2403ae487" style="color: #1068bf;">25101813</a></strong>
<div>
<span>by Takenobu Tani</span>
<i>at 2022-03-28T01:16:02-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>users-guide: Correct markdown for profiling

This patch corrects some markdown.

[skip ci]
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/c832ae938e4f8cfd8ad2a0b06fa233df726175f6" style="color: #1068bf;">c832ae93</a></strong>
<div>
<span>by Matthew Pickering</span>
<i>at 2022-03-28T01:16:38-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>hadrian: Flag cabal flag handling

This patch basically deletes some ad-hoc handling of Cabal Flags and
replaces it with a correct query of the LocalBuildInfo. The flags in the
local build info can be modified by users by passing hadrian options

For example (!4331)

```
*.genapply.cabal.configure.opts += --flags=unregisterised
```

And all the flags specified by the `Cabal Flags` builder were already
passed to configure properly using `--flags`.
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/a9f3a5c67b8822aa32b2d158ae71698c19cffb32" style="color: #1068bf;">a9f3a5c6</a></strong>
<div>
<span>by Ben Gamari</span>
<i>at 2022-03-28T01:16:38-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>Disable text's dependency on simdutf by default

Unfortunately we are simply not currently in a good position to robustly
ship binary distributions which link against C++ code like simdutf.

Fixes #20724.
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/eff86e8a5bddf61824fcd0147a70890b692efdcb" style="color: #1068bf;">eff86e8a</a></strong>
<div>
<span>by Richard Eisenberg</span>
<i>at 2022-03-28T01:17:14-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>Add Red Herring to Note [What might equal later?]

Close #21208.
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/12653be933aa2c6d337f006a62f2d41bd584e7a4" style="color: #1068bf;">12653be9</a></strong>
<div>
<span>by jberryman</span>
<i>at 2022-03-28T01:17:55-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>Document typed splices inhibiting unused bind detection (#16524)</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/4aeade157474ae379466343b00920bbcc0bfa628" style="color: #1068bf;">4aeade15</a></strong>
<div>
<span>by Adam Sandberg Ericsson</span>
<i>at 2022-03-28T01:18:31-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>users-guide: group ticky-ticky profiling under one heading
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/cc59648adbf480e6af14e31e9e46801ab095f11a" style="color: #1068bf;">cc59648a</a></strong>
<div>
<span>by Sylvain Henry</span>
<i>at 2022-03-28T01:19:12-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>Hadrian: allow testsuite to run with cross-compilers (#21292)
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/89cb13153dbe9a88706c43dbf0f681e90ecaa599" style="color: #1068bf;">89cb1315</a></strong>
<div>
<span>by Matthew Pickering</span>
<i>at 2022-03-28T01:19:48-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>hadrian: Add show target to bindist makefile

Some build systems use "make show" to query facts about the bindist, for
example:

```
make show VALUE=ProjectVersion > version
```

to determine the ProjectVersion
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/8229885cb6a9f78ab09468f3797e3ec48ea24f82" style="color: #1068bf;">8229885c</a></strong>
<div>
<span>by Alan Zimmerman</span>
<i>at 2022-03-28T19:23:28-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>EPA: let stmt with semicolon has wrong anchor

The code

   let ;x =1

Captures the semicolon annotation, but did not widen the anchor in the
ValBinds.

Fix that.

Closes #20247
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/2c12627caba908153bf0af92459d08e399aa8aad" style="color: #1068bf;">2c12627c</a></strong>
<div>
<span>by Ryan Scott</span>
<i>at 2022-03-28T19:24:04-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>Consistently attach SrcSpans to sub-expressions in TH splices

Before, `GHC.ThToHs` was very inconsistent about where various sub-expressions
would get the same `SrcSpan` from the original TH splice location or just a
generic `noLoc` `SrcSpan`. I have ripped out all uses of `noLoc` in favor of
the former instead, and I have added a
`Note [Source locations within TH splices]` to officially enshrine this
design choice.

Fixes #21299.
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/789add55e0f5648981ffba77135b2a525369bf79" style="color: #1068bf;">789add55</a></strong>
<div>
<span>by Zubin Duggal</span>
<i>at 2022-03-29T13:07:22-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>Fix all invalid haddock comments in the compiler

Fixes #20935 and #20924
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/967dad03566c754ce88388e61678b70eddfee528" style="color: #1068bf;">967dad03</a></strong>
<div>
<span>by Zubin Duggal</span>
<i>at 2022-03-29T13:07:22-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>hadrian: Build lib:GHC with -haddock and -Winvalid-haddock (#21273)
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/ad09a5f7671c5594524c517945b2bdd7c5e2c8fa" style="color: #1068bf;">ad09a5f7</a></strong>
<div>
<span>by sheaf</span>
<i>at 2022-03-29T13:08:05-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>Hadrian: make DDEBUG separate from debugged RTS

This patchs separates whether -DDEBUG is enabled (i.e. whether debug
assertions are enabled) from whether we are using the debugged RTS
(i.e. GhcDebugged = YES).

This means that we properly skip tests which have been marked with
`when(compiler_debugged(), skip)`.

Fixes #21113, #21153 and #21234
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/840a6811b074a883b6e01ff10ac65387acd85089" style="color: #1068bf;">840a6811</a></strong>
<div>
<span>by Matthew Pickering</span>
<i>at 2022-03-29T13:08:42-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>RTS: Zero gc_cpu_start and gc_cpu_end after accounting

When passed a combination of `-N` and `-qn` options the cpu time for
garbage collection was being vastly overcounted because the counters
were not being zeroed appropiately.

When -qn1 is passed, only 1 of the N avaiable GC threads is chosen to
perform work, the rest are idle. At the end of the GC period, stat_endGC
traverses all the GC threads and adds up the elapsed time from each of
them. For threads which didn't participate in this GC, the value of the
cpu time should be zero, but before this patch, the counters were not
zeroed and hence we would count the same elapsed time on many subsequent
iterations (until the thread participated in a GC again).

The most direct way to zero these fields is to do so immediately after
the value is added into the global counter, after which point they are
never used again.

We also tried another approach where we would zero the counter in
yieldCapability but there are some (undiagnosed) siations where a
capbility would not pass through yieldCapability before the GC ended and
the same double counting problem would occur.

Fixes #21082
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/dda46e2da13268c239db3290720b014cef00c01d" style="color: #1068bf;">dda46e2d</a></strong>
<div>
<span>by Matthew Pickering</span>
<i>at 2022-03-29T13:09:18-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>Add test for T21306

Fixes #21306
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/f07c7766663fa52a037aaf941fd0d34523ff2f2f" style="color: #1068bf;">f07c7766</a></strong>
<div>
<span>by Jakob Brünker</span>
<i>at 2022-03-30T03:10:33-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>Give parsing plugins access to errors

Previously, when the parser produced non-fatal errors (i.e. it produced
errors but the 'PState' is 'POk'), compilation would be aborted before
the 'parsedResultAction' of any plugin was invoked. This commit changes
that, so that such that 'parsedResultAction' gets collections of
warnings and errors as argument, and must return them after potentially
modifying them.

Closes #20803
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/e5dfde75850a6c18fca55b302713fe81794069dd" style="color: #1068bf;">e5dfde75</a></strong>
<div>
<span>by Ben Gamari</span>
<i>at 2022-03-30T03:11:10-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>Fix reference to Note [FunBind vs PatBind]

This Note was renamed in 2535a6716202253df74d8190b028f85cc6d21b72 yet
this occurrence was not updated.
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/21894a6318e0daffa0e34041855c3c73ad1f5b6f" style="color: #1068bf;">21894a63</a></strong>
<div>
<span>by Krzysztof Gogolewski</span>
<i>at 2022-03-30T03:11:45-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>Refactor: make primtypes independent of PrimReps

Previously, 'pcPrimTyCon', the function used to define a primitive type,
was taking a PrimRep, only to convert it to a RuntimeRep. Now it takes
a RuntimeRep directly.

Moved primRepToRuntimeRep to GHC.Types.RepType. It is now
located next to its inverse function runtimeRepPrimRep.
Now GHC.Builtin.Types.Prim no longer mentions PrimRep, and GHC.Types.RepType
no longer imports GHC.Builtin.Types.Prim.

Removed unused functions `primRepsToRuntimeRep` and `mkTupleRep`.

Removed Note [PrimRep and kindPrimRep] - it was never referenced,
didn't belong to Types.Prim, and Note [Getting from RuntimeRep to
PrimRep] is more comprehensive.
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/43da296365ddbbb807dead5e97720504ce729660" style="color: #1068bf;">43da2963</a></strong>
<div>
<span>by Matthew Pickering</span>
<i>at 2022-03-30T09:55:49+01:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>Fix mention of non-existent "rehydrateIface" function [skip ci]

Fixes #21303
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/6793a20fe0cd1f04dabad46b87e86018abf73e54" style="color: #1068bf;">6793a20f</a></strong>
<div>
<span>by gershomb</span>
<i>at 2022-04-01T10:33:46+01:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>Remove wrong claim about naturality law.

This docs change removes a longstanding confusion in the Traversable
docs. The docs say "(The naturality law is implied by parametricity and
thus so is the purity law [1, p15].)". However if one reads the
reference a different "natural" law is implied by parametricity. The
naturality law given as a law here is imposed. Further, the reference
gives examples which violate both laws -- so they cannot be implied by
parametricity. This PR just removes the wrong claim.
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/5beeff46972b8b52e9f2572fff8b1ad9ace38cd8" style="color: #1068bf;">5beeff46</a></strong>
<div>
<span>by Ben Gamari</span>
<i>at 2022-04-01T10:34:39+01:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>Refactor handling of global initializers

GHC uses global initializers for a number of things including
cost-center registration, info-table provenance registration, and setup
of foreign exports. Previously, the global initializer arrays which
referenced these initializers would live in the object file of the C
stub, which would then be merged into the main object file of the
module.

Unfortunately, this approach is no longer tenable with the move to
Clang/LLVM on Windows (see #21019). Specifically, lld's PE backend does
not support object merging (that is, the -r flag). Instead we are now
rather packaging a module's object files into a static library. However,
this is problematic in the case of initializers as there are no
references to the C stub object in the archive, meaning that the linker
may drop the object from the final link.

This patch refactors our handling of global initializers to instead
place initializer arrays within the object file of the module to which
they belong. We do this by introducing a Cmm data declaration containing
the initializer array in the module's Cmm stream. While the initializer
functions themselves remain in separate C stub objects, the reference
from the module's object ensures that they are not dropped from the
final link.

In service of #21068.
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/3e6fe71b09fcaa6b0672f94ea33dc0a284bf9cce" style="color: #1068bf;">3e6fe71b</a></strong>
<div>
<span>by Matthew Pickering</span>
<i>at 2022-04-01T10:35:41+01:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>Fix remaining issues in eventlog types (gen_event_types.py)

*  The size of End concurrent mark phase looks wrong and, it used to be 4 and now it's 0.
*  The size of Task create is wrong, used to be 18 and now 14.
*  The event ticky-ticky entry counter begin sample has the wrong name
*  The event ticky-ticky entry counter being sample has the wrong size, was 0 now 32.

Closes #21070
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/7847f47a72a25ae6b4523907e452b666d72d0d28" style="color: #1068bf;">7847f47a</a></strong>
<div>
<span>by Ben Gamari</span>
<i>at 2022-04-01T10:35:41+01:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>users-guide: Fix a few small issues in eventlog format descriptions

The CONC_MARK_END event description didn't mention its payload.
Clarify the meaning of the CREATE_TASK's payload.
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/acfd5a4c4f0a235240a15dc9f4417a11ece5a143" style="color: #1068bf;">acfd5a4c</a></strong>
<div>
<span>by Matthew Pickering</span>
<i>at 2022-04-01T10:35:53+01:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>ci: Regenerate jobs.yaml

It seems I forgot to update this to reflect the current state of
gen_ci.hs
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/a952dd80d40bf6b67194a44ff71d7bf75957d29e" style="color: #1068bf;">a952dd80</a></strong>
<div>
<span>by Matthew Pickering</span>
<i>at 2022-04-01T10:35:59+01:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>ci: Attempt to fix windows cache issues

It appears that running the script directly does nothing (no info is
printed about saving the cache).
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/fb65e6e3e27a56cd16142c0eb7bd0a7e1e259742" style="color: #1068bf;">fb65e6e3</a></strong>
<div>
<span>by Adrian Ratiu</span>
<i>at 2022-04-01T10:49:52+01:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>fp_prog_ar.m4: take AR var into consideration

In ChromeOS and Gentoo we want the ability to use LLVM ar
instead of GNU ar even though both are installed, thus we
pass (for eg) AR=llvm-ar to configure.

Unfortunately GNU ar always gets picked regardless of the
AR setting because the check does not consider the AR var
when setting fp_prog_ar, hence this fix.
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/1daaefdf3f772d74838c0ef0a6be0e5a0ce6ca23" style="color: #1068bf;">1daaefdf</a></strong>
<div>
<span>by Greg Steuck</span>
<i>at 2022-04-01T10:50:16+01:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>T13366 requires c++ & c++abi libraries on OpenBSD

Fixes this failure:

=====> 1 of 1 [0, 0, 0]
T13366(normal) 1 of 1 [0, 0, 0] Compile failed (exit code 1) errors were:

<no location info>: error:
    user specified .o/.so/.DLL could not be loaded (File not found)
Whilst trying to load:  (dynamic) stdc++
Additional directories searched: (none)

*** unexpected failure for T13366(normal)
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/18e6c85b2ccc8c52dca22bfa7f6c278bd1610736" style="color: #1068bf;">18e6c85b</a></strong>
<div>
<span>by Jakob Bruenker</span>
<i>at 2022-04-01T10:54:28+01:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>new datatypes for parsedResultAction

Previously, the warnings and errors were given and returned as a tuple
(Messages PsWarnings, Messages PsErrors). Now, it's just PsMessages.

This, together with the HsParsedModule the parser plugin gets and
returns, has been wrapped up as ParsedResult.
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/9727e5924d9b326a0113a68f7ecb396015b80bf4" style="color: #1068bf;">9727e592</a></strong>
<div>
<span>by Morrow</span>
<i>at 2022-04-01T10:55:12+01:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>Clarify that runghc interprets the input program
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/f589dea3b30695701ebcc0d742488290273d8cf2" style="color: #1068bf;">f589dea3</a></strong>
<div>
<span>by sheaf</span>
<i>at 2022-04-01T10:59:58+01:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>Unify RuntimeRep arguments in ty_co_match

The `ty_co_match` function ignored the implicit RuntimeRep coercions
that occur in a `FunCo`. Even though a comment explained that this
should be fine, #21205 showed that it could result in discarding a
RuntimeRep coercion, and thus discarding an important cast entirely.

With this patch, we first match the kinds in `ty_co_match`.

Fixes #21205

-------------------------
Metric Increase:
    T12227
    T18223
-------------------------
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/6f4dc372d5c91686ad4148b82ad49a71d4dd82b5" style="color: #1068bf;">6f4dc372</a></strong>
<div>
<span>by Andreas Klebinger</span>
<i>at 2022-04-01T11:01:35+01:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>Export MutableByteArray from Data.Array.Byte

This implements CLC proposal #49
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/5df9f5e732a1086c66ad391e581f55b9d3e3712c" style="color: #1068bf;">5df9f5e7</a></strong>
<div>
<span>by ARATA Mizuki</span>
<i>at 2022-04-01T11:02:35+01:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>Add test cases for #20640

Closes #20640
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/8334ff9e5de48361e8fde3fdacb4523857c366b7" style="color: #1068bf;">8334ff9e</a></strong>
<div>
<span>by Krzysztof Gogolewski</span>
<i>at 2022-04-01T11:03:16+01:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>Minor cleanup

- Remove unused functions exprToCoercion_maybe, applyTypeToArg,
  typeMonoPrimRep_maybe, runtimeRepMonoPrimRep_maybe.
- Replace orValid with a simpler check
- Use splitAtList in applyTysX
- Remove calls to extra_clean in the testsuite; it does not do anything.

Metric Decrease:
    T18223
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/b2785cfc60f3c481f35181c41729561113866974" style="color: #1068bf;">b2785cfc</a></strong>
<div>
<span>by Eric Lindblad</span>
<i>at 2022-04-01T11:04:07+01:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>hadrian typos
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/418e6fab732b9aaa0a00c5e235f445fb547ae196" style="color: #1068bf;">418e6fab</a></strong>
<div>
<span>by Eric Lindblad</span>
<i>at 2022-04-01T11:04:12+01:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>two typos
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/dd7c7c998aea402bd5d8ae7ef7854a3bb60bcf2b" style="color: #1068bf;">dd7c7c99</a></strong>
<div>
<span>by Phil de Joux</span>
<i>at 2022-04-01T11:04:56+01:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>Add tests and docs on plugin args and order.
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/3e209a62148a45b4af7441ee963f6f055b333864" style="color: #1068bf;">3e209a62</a></strong>
<div>
<span>by MaxHearnden</span>
<i>at 2022-04-01T11:05:19+01:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>Change may not to might not</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/b84380d383cc723644199977dfc2cfbf467358c4" style="color: #1068bf;">b84380d3</a></strong>
<div>
<span>by Matthew Pickering</span>
<i>at 2022-04-01T11:07:27+01:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>hadrian: Remove linters-common from bindist

Zubin observed that the bindists contains the utility library
linters-common. There are two options:

1. Make sure only the right files are added into the bindist.. a bit
   tricky due to the non-trivial structure of the lib directory.
2. Remove the bad files once they get copied in.. a bit easier

So I went for option 2 but we perhaps should go for option 1 in the
future.

Fixes #21203
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/ba9904c184bf210e044c4eaad25d37750c0d4219" style="color: #1068bf;">ba9904c1</a></strong>
<div>
<span>by Zubin Duggal</span>
<i>at 2022-04-01T11:07:31+01:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>hadrian: allow testing linters with out of tree compilers
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/265477593865f436fe97c903cc20d7d448a66b79" style="color: #1068bf;">26547759</a></strong>
<div>
<span>by Matthew Pickering</span>
<i>at 2022-04-01T11:07:35+01:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>hadrian: Introduce CheckProgram datatype to replace a 7-tuple
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/df65d732d6a39e6d0a7886dc5faa265caece3ce0" style="color: #1068bf;">df65d732</a></strong>
<div>
<span>by Jakob Bruenker</span>
<i>at 2022-04-01T11:08:28+01:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>Fix panic when pretty printing HsCmdLam

When pretty printing a HsCmdLam with more than one argument, GHC
panicked because of a missing case. This fixes that.

Closes #21300
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/ad6cd16515101c331123bd3566b9c0861a6cac5f" style="color: #1068bf;">ad6cd165</a></strong>
<div>
<span>by John Ericson</span>
<i>at 2022-04-01T11:10:06+01:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>hadrian: Remove vestigial -this-unit-id support check

This has been dead code since 400ead81e80f66ad7b1260b11b2a92f25ccc3e5a.
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/8ca7ab81b4f2344116646f849843e8b0fc6fd4b7" style="color: #1068bf;">8ca7ab81</a></strong>
<div>
<span>by Matthew Pickering</span>
<i>at 2022-04-01T11:10:23+01:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>hadrian: Fix race involving empty package databases

There was a small chance of a race occuring between the small window of

1. The first package (.conf) file get written into the database
2. hadrian calling "ghc-pkg recache" to refresh the package.conf file

In this window the package database would contain rts.conf but not a
package.cache file, and therefore if ghc was invoked it would error
because it was missing.

To solve this we call "ghc-pkg recache" at when the database is created
by shake by writing the stamp file into the database folder. This also
creates the package.cache file and so avoids the possibility of this
race.
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/cc4ec64b2e4dd2e7a68ff554c4d3604942c71f38" style="color: #1068bf;">cc4ec64b</a></strong>
<div>
<span>by Matthew Pickering</span>
<i>at 2022-04-01T11:11:05+01:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>hadrian: Add assertion that in/out tree args are the same

There have been a few instances where this calculation was incorrect, so
we add a non-terminal assertion when now checks they the two
computations indeed compute the same thing.

Fixes #21285
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/691508d87ec089e46524461a5c6ec59b1c17be4c" style="color: #1068bf;">691508d8</a></strong>
<div>
<span>by Matthew Pickering</span>
<i>at 2022-04-01T11:13:10+01:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>hlint: Ignore suggestions in generated HaddockLex file

With the make build system this file ends up in the compiler/
subdirectory so is linted. With hadrian, the file ends up in _build so
it's not linted.

Fixes #21313
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/f8f152e7089af9a5434408e17ff071999d381ee1" style="color: #1068bf;">f8f152e7</a></strong>
<div>
<span>by Krzysztof Gogolewski</span>
<i>at 2022-04-01T11:14:08+01:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>Change GHC.Prim to GHC.Exts in docs and tests

Users are supposed to import GHC.Exts rather than GHC.Prim.
Part of #18749.
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/f8fc6d2e91038a98a321eceefe0a2ffff3dc9e72" style="color: #1068bf;">f8fc6d2e</a></strong>
<div>
<span>by Matthew Pickering</span>
<i>at 2022-04-01T11:15:24+01:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>driver: Improve -Wunused-packages error message (and simplify implementation)

In the past I improved the part of -Wunused-packages which found which
packages were used. Now I improve the part which detects which ones were
specified. The key innovation is to use the explicitUnits field from
UnitState which has the result of resolving the package flags, so we
don't need to mess about with the flag arguments from DynFlags anymore.

The output now always includes the package name and version (and the
flag which exposed it).

```
    The following packages were specified via -package or -package-id flags,
    but were not needed for compilation:
      - bytestring-0.11.2.0 (exposed by flag -package bytestring)
      - ghc-9.3 (exposed by flag -package ghc)
      - process-1.6.13.2 (exposed by flag -package process)
```

Fixes #21307
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/5e5a12d9c672ee30590293e3f2dd48c15d1acf35" style="color: #1068bf;">5e5a12d9</a></strong>
<div>
<span>by Matthew Pickering</span>
<i>at 2022-04-01T11:15:32+01:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>driver: In oneshot mode, look for interface files in hidir

How things should work:

*  -i is the search path for source files
*  -hidir explicitly sets the search path for interface files and the output location for interface files.
*  -odir sets the search path and output location for object files.

Before in one shot mode we would look for the interface file in the
search locations given by `-i`, but then set the path to be in the
`hidir`, so in unusual situations the finder could find an interface
file in the `-i` dir but later fail because it tried to read the
interface file from the `-hidir`.

A bug identified by #20569
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/950f58e7bf584ec6970327ac7c7ae3f3fdbc9882" style="color: #1068bf;">950f58e7</a></strong>
<div>
<span>by Matthew Pickering</span>
<i>at 2022-04-01T11:15:36+01:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>docs: Update documentation interaction of search path, -hidir and -c mode.

As noted in #20569 the documentation for search path was wrong because
it seemed to indicate that `-i` dirs were important when looking for
interface files in `-c` mode, but they are not important if `-hidir` is
set.

Fixes #20569
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/d85c7dcb7c457efc23b20ac8f4e4ae88bae5b050" style="color: #1068bf;">d85c7dcb</a></strong>
<div>
<span>by sheaf</span>
<i>at 2022-04-01T11:17:56+01:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>Keep track of promotion ticks in HsOpTy

This patch adds a PromotionFlag field to HsOpTy, which is used
in pretty-printing and when determining whether to emit warnings
with -fwarn-unticked-promoted-constructors.

This allows us to correctly report tick-related warnings for things
like:

  type A = Int : '[]
  type B = [Int, Bool]

Updates haddock submodule

Fixes #19984
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/32070e6c2e1b4b7c32530a9566fe14543791f9a6" style="color: #1068bf;">32070e6c</a></strong>
<div>
<span>by Jakob Bruenker</span>
<i>at 2022-04-01T20:31:08+02:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>Implement \cases (Proposal 302)

This commit implements proposal 302: \cases - Multi-way lambda
expressions.

This adds a new expression heralded by \cases, which works exactly like
\case, but can match multiple apats instead of a single pat.

Updates submodule haddock to support the ITlcases token.

Closes #20768
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/c6f77f3912a9178cf839a14c3d6ed590820d18ed" style="color: #1068bf;">c6f77f39</a></strong>
<div>
<span>by sheaf</span>
<i>at 2022-04-01T20:33:05+02:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>Add a regression test for #21323

This bug was fixed at some point between GHC 9.0 and GHC 9.2;
this patch simply adds a regression test.
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/3596684e704fb4edc453ba0ae0c6c296c2812fbf" style="color: #1068bf;">3596684e</a></strong>
<div>
<span>by Jakob Bruenker</span>
<i>at 2022-04-01T20:33:05+02:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>Fix error when using empty case in arrow notation

It was previously not possible to use -XEmptyCase in Arrow notation,
since GHC would print "Exception: foldb of empty list".

This is now fixed.

Closes #21301
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/9a325b59aeba2b52af1ab9e4ca0b1a8aafc82a54" style="color: #1068bf;">9a325b59</a></strong>
<div>
<span>by Ben Gamari</span>
<i>at 2022-04-01T20:33:05+02:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>users-guide: Fix various markup issues
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/aefb1e6d15749dd318e98a326d9df34b26c38cbd" style="color: #1068bf;">aefb1e6d</a></strong>
<div>
<span>by sheaf</span>
<i>at 2022-04-01T20:36:01+02:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>Ensure implicit parameters are lifted

`tcExpr` typechecked implicit parameters by introducing a metavariable
of kind `TYPE kappa`, without enforcing that `kappa ~ LiftedRep`.
This patch instead creates a metavariable of kind `Type`.

Fixes #21327
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/ed62dc66c6fff433349145b4cc41198effedfab8" style="color: #1068bf;">ed62dc66</a></strong>
<div>
<span>by Ben Gamari</span>
<i>at 2022-04-05T11:44:51-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>gitlab-ci: Disable cabal-install store caching on Windows

For reasons that remain a mystery, cabal-install seems to consistently
corrupt its cache on Windows. Disable caching for now.

Works around #21347.
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/5ece5c5a225d9919d87a6d760f4e583775793b8c" style="color: #1068bf;">5ece5c5a</a></strong>
<div>
<span>by Ryan Scott</span>
<i>at 2022-04-06T13:00:51-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>Add /linters/*/dist-install/ to .gitignore

Fixes #21335.

[ci skip]
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/410c76eea7370f2d1143cf79aa524fcdec184f89" style="color: #1068bf;">410c76ee</a></strong>
<div>
<span>by Ben Gamari</span>
<i>at 2022-04-06T13:01:28-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>Use static archives as an alternative to object merging

Unfortunately, `lld`'s COFF backend does not currently support object
merging. With ld.bfd having broken support for high image-load base
addresses, it's necessary to find an alternative. Here I introduce
support in the driver for generating static archives, which we use on
Windows instead of object merging.

Closes #21068.
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/400666c81af024b6d16100aba88c2e8e78e8eef8" style="color: #1068bf;">400666c8</a></strong>
<div>
<span>by Ben Gamari</span>
<i>at 2022-04-06T13:01:28-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>rts/linker: Catch archives masquerading as object files

Check the file's header to catch static archive bearing the `.o`
extension, as may happen on Windows after the Clang refactoring.

See #21068
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/694d39f0391c58cd926887e274c227e99099a900" style="color: #1068bf;">694d39f0</a></strong>
<div>
<span>by Ben Gamari</span>
<i>at 2022-04-06T13:01:28-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>driver: Make object merging optional

On Windows we don't have a linker which supports object joining (i.e.
the `-r` flag). Consequently, `-pgmlm` is now a `Maybe`.

See #21068.
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/41fcb5cd756f52cd313d90a73f556fa5f3890818" style="color: #1068bf;">41fcb5cd</a></strong>
<div>
<span>by Ben Gamari</span>
<i>at 2022-04-06T13:01:28-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>hadrian: Refactor handling of ar flags

Previously the setup was quite fragile as it had to assume which
arguments were file arguments and which were flags.
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/3ac80a8609418f9f1e9aa025b182fb3445f14428" style="color: #1068bf;">3ac80a86</a></strong>
<div>
<span>by Ben Gamari</span>
<i>at 2022-04-06T13:01:28-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>hadrian: Produce ar archives with L modifier on Windows

Since object files may in fact be archive files, we must ensure that
their contents are merged rather than constructing an
archive-of-an-archive.

See #21068.
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/295c35c5cfda67c11222f99fb338d3cac52abac1" style="color: #1068bf;">295c35c5</a></strong>
<div>
<span>by Ben Gamari</span>
<i>at 2022-04-06T13:01:28-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>Add a Note describing lack of object merging on Windows

See #21068.
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/d2ae0a3a1a8e31e5d769f1aea95e85793043cb3a" style="color: #1068bf;">d2ae0a3a</a></strong>
<div>
<span>by Ben Gamari</span>
<i>at 2022-04-06T13:01:28-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>Build ar archives with -L when "joining" objects

Since there may be .o files which are in fact archives.
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/babb47d263e0df0fa4e16da6bf86164a2a3e07ea" style="color: #1068bf;">babb47d2</a></strong>
<div>
<span>by Zubin Duggal</span>
<i>at 2022-04-06T13:02:04-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>Add warnings for file header pragmas that appear in the body of a module (#20385)

Once we are done parsing the header of a module to obtain the options, we
look through the rest of the tokens in order to determine if they contain any
misplaced file header pragmas that would usually be ignored, potentially
resulting in bad error messages.

The warnings are reported immediately so that later errors don't shadow
over potentially helpful warnings.

Metric Increase:
  T13719
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/3f31825bf3126073ab527d5e6661bf0aff4e8c66" style="color: #1068bf;">3f31825b</a></strong>
<div>
<span>by Ben Gamari</span>
<i>at 2022-04-06T13:02:40-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>rts/AdjustorPool: Generalize to allow arbitrary contexts

Unfortunately the i386 adjustor logic needs this.
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/9b645ee1a9fff64b66b36dc73d8809ff82025829" style="color: #1068bf;">9b645ee1</a></strong>
<div>
<span>by Ben Gamari</span>
<i>at 2022-04-06T13:02:40-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>adjustors/i386: Use AdjustorPool

In !7511 (closed) I introduced a new allocator for adjustors,
AdjustorPool, which eliminates the address space fragmentation issues
which adjustors can introduce. In that work I focused on amd64 since
that was the platform where I observed issues.

However, in #21132 we noted that the size of adjustors is also a cause
of CI fragility on i386. In this MR I port i386 to use AdjustorPool.
Sadly the complexity of the i386 adjustor code does cause require a bit
of generalization which makes the code a bit more opaque but such is the
world.

Closes #21132.
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/c657a616d126dbbf1fadb8f195e569ee86061593" style="color: #1068bf;">c657a616</a></strong>
<div>
<span>by Ben Gamari</span>
<i>at 2022-04-06T13:03:16-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>hadrian: Clean up flavour transformer definitions

Previously the `ipe` and `omit_pragmas` transformers were hackily
defined using the textual key-value syntax. Fix this.
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/9ce273b98b06823fc04946806c1e497f6b0c68fc" style="color: #1068bf;">9ce273b9</a></strong>
<div>
<span>by Ben Gamari</span>
<i>at 2022-04-06T13:03:16-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>gitlab-ci: Drop dead HACKAGE_INDEX_STATE variable
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/018453751b10cf26506d5076f08fc3a537973d9e" style="color: #1068bf;">01845375</a></strong>
<div>
<span>by Ben Gamari</span>
<i>at 2022-04-06T13:03:16-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>gitlab/darwin: Factor out bindists

This makes it a bit easier to bump them.
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/c41c478eb9003eaa9fc8081a0039652448124f5d" style="color: #1068bf;">c41c478e</a></strong>
<div>
<span>by Ben Gamari</span>
<i>at 2022-04-06T13:03:16-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>Fix a few new warnings when booting with GHC 9.2.2

-Wuni-incomplete-patterns and apparent improvements in the pattern match
checker surfaced these.
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/6563cd2473a309b135eb8f950adf28b9f3d8e5c2" style="color: #1068bf;">6563cd24</a></strong>
<div>
<span>by Ben Gamari</span>
<i>at 2022-04-06T13:03:16-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>gitlab-ci: Bump bootstrap compiler to 9.2.2

This is necessary to build recent `text` commits.

Bumps Hackage index state for a hashable which builds with GHC 9.2.
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/a62e983e695b48e37ba5d867fe55a08c964813df" style="color: #1068bf;">a62e983e</a></strong>
<div>
<span>by Ben Gamari</span>
<i>at 2022-04-06T13:03:16-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>Bump text submodule to current `master`

Addresses #21295.
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/88d610317a707eb33fe8f1a1a8ab6456279861f2" style="color: #1068bf;">88d61031</a></strong>
<div>
<span>by Vladislav Zavialov</span>
<i>at 2022-04-06T13:03:53-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>Refactor OutputableBndrFlag instances

The matching on GhcPass introduced by 95275a5f25a is not necessary.
This patch reverts it to make the code simpler.
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/f601f00246ffe3e4fcd1fc333c1d41e0dc738fc1" style="color: #1068bf;">f601f002</a></strong>
<div>
<span>by GHC GitLab CI</span>
<i>at 2022-04-06T15:18:26-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>rts: Eliminate use of nested functions

This is a gcc-specific extension.
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/d4c5f29ceced0891dfad266ef1daa54975547068" style="color: #1068bf;">d4c5f29c</a></strong>
<div>
<span>by Ben Gamari</span>
<i>at 2022-04-06T15:18:26-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>driver: Drop hacks surrounding windres invocation

Drop hack for #1828, among others as they appear to be unnecessary when
using `llvm-windres`.
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/6be2c5a7e9187fc14d51e1ec32ca235143bb0d8b" style="color: #1068bf;">6be2c5a7</a></strong>
<div>
<span>by Ben Gamari</span>
<i>at 2022-04-06T15:18:26-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>Windows/Clang: Build system adaptation

* Bump win32-tarballs to 0.7
* Move Windows toolchain autoconf logic into separate file
* Use clang and LLVM utilities as described in #21019
* Disable object merging as lld doesn't support -r
* Drop --oformat=pe-bigobj-x86-64 arguments from ld flags as LLD detects
  that the output is large on its own.
* Drop gcc wrapper since Clang finds its root fine on its own.
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/c6fb7aff8ae15e0b208221727518fa38c29077f8" style="color: #1068bf;">c6fb7aff</a></strong>
<div>
<span>by Ben Gamari</span>
<i>at 2022-04-06T15:18:26-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>testsuite: Test that we can build bigobj PE objects
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/79851c07a15c14364219af1f1751c9e547442bcc" style="color: #1068bf;">79851c07</a></strong>
<div>
<span>by Ben Gamari</span>
<i>at 2022-04-06T15:18:26-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>Drop -static-libgcc

This flag is not applicable when Clang is used.
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/1f8a82645f0f648fda1bd3afc5cb6b8ce8c78508" style="color: #1068bf;">1f8a8264</a></strong>
<div>
<span>by Ben Gamari</span>
<i>at 2022-04-06T15:18:26-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>testsuite: Port T16514 to C

Previously this test was C++ which made it a bit of a portability
problem.
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/d7e650d13abe1296bed899563e5cb103db0938c6" style="color: #1068bf;">d7e650d1</a></strong>
<div>
<span>by Ben Gamari</span>
<i>at 2022-04-06T15:18:26-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>testsuite: Mark Windows as a libc++ platform
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/d7886c46cf7b86444b96389242818ec3e7a48948" style="color: #1068bf;">d7886c46</a></strong>
<div>
<span>by Ben Gamari</span>
<i>at 2022-04-06T15:18:26-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>testsuite: Mark T9405 as fixed on Windows

I have not seen it fail since moving to clang.

Closes #12714.
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/4c3fbb4e3867d991e53813c80348a2b6bf9bdd86" style="color: #1068bf;">4c3fbb4e</a></strong>
<div>
<span>by Ben Gamari</span>
<i>at 2022-04-06T15:18:26-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>testsuite: Mark FloatFnInverses as fixed

The new toolchain has fixed it.

Closes #15670.
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/402c36ba403c26a3e3738405c5ad76c13d8c3ad2" style="color: #1068bf;">402c36ba</a></strong>
<div>
<span>by Ben Gamari</span>
<i>at 2022-04-06T15:18:26-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>testsuite: Rework T13606 to avoid gcc dependence

Previously we used libgcc_s's import library in T13606. However, now that
we ship with clang we no longer have this library. Instead we now use gdi32.
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/9934ad54dcdc00a3a236fc8cb09b1a76e7aea81e" style="color: #1068bf;">9934ad54</a></strong>
<div>
<span>by Ben Gamari</span>
<i>at 2022-04-06T15:18:26-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>testsuite: Clean up tests depending on C++ std lib
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/12fcdef29a4f1762f6ed7c1a90f30ccd573b6227" style="color: #1068bf;">12fcdef2</a></strong>
<div>
<span>by Ben Gamari</span>
<i>at 2022-04-06T15:18:26-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>testsuite: Split T13366 into two tests

Split up the C and C++ uses since the latter is significantly more
platform-dependent.
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/3c08a1981e99a24295fb229a0c71defe1f100386" style="color: #1068bf;">3c08a198</a></strong>
<div>
<span>by Ben Gamari</span>
<i>at 2022-04-06T15:18:26-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>testsuite: Fix mk-big-obj

I'm a bit unclear on how this previously worked as it attempted
to build an executable without defining `main`.
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/7e97cc23e47d12c4050f257c7271976b5b846180" style="color: #1068bf;">7e97cc23</a></strong>
<div>
<span>by Ben Gamari</span>
<i>at 2022-04-06T15:18:26-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>testsuite: Provide module definitions in T10955dyn

Otherwise the linker will export all symbols, including those provided
by the RTS, from the produced shared object. Consequently, attempting
to link against multiple objects simultaneously will cause the linker
to complain that RTS symbols are multiply defined. Avoid this
by limiting the DLL exports with a module definition file.
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/9a248afaa9196e6a267605893ab44e0abd562499" style="color: #1068bf;">9a248afa</a></strong>
<div>
<span>by Ben Gamari</span>
<i>at 2022-04-06T15:18:26-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>testsuite: Mark test-defaulting-plugin as fragile on Windows

Currently llvm-ar does not handle long file paths, resulting in
occassional failures of these tests and #21293.
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/39371aa4ca144541e60c09f85a1ddb2769443d1a" style="color: #1068bf;">39371aa4</a></strong>
<div>
<span>by Ben Gamari</span>
<i>at 2022-04-06T15:18:26-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>testsuite/driver: Treat framework failures of fragile tests as non-fatal

Previously we would report framework failures of tests marked as fragile
as failures. Now we rather treat them as fragile test failures, which
are not fatal to the testsuite run. Noticed while investigating #21293.
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/a1e6661d5b14e7b8dafbaf7cd225b6495ee7f6a0" style="color: #1068bf;">a1e6661d</a></strong>
<div>
<span>by Ben Gamari</span>
<i>at 2022-04-06T15:18:32-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>Bump Cabal submodule

- Disable support for library-for-ghci on Windows as described
  in #21068.
- Teach Cabal to use `ar -L` when available
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/f7b0f63c5f605c005b90d2c06d9e29893dba2dd1" style="color: #1068bf;">f7b0f63c</a></strong>
<div>
<span>by Ben Gamari</span>
<i>at 2022-04-06T15:18:37-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>Bump process submodule

Fixes missing TEST_CC_OPTS in testsuite tests.
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/109cee198886974ab5348c9a2ae5dd0275046b5e" style="color: #1068bf;">109cee19</a></strong>
<div>
<span>by Ben Gamari</span>
<i>at 2022-04-06T15:18:37-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>hadrian: Disable ghci libraries when object merging is not available
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/c22fba5c69b6ad68bdb38e4f058899a6b8e9619e" style="color: #1068bf;">c22fba5c</a></strong>
<div>
<span>by Ben Gamari</span>
<i>at 2022-04-06T15:18:37-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>Bump bytestring submodule
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/6e2744cc9fdf7b35e3053a16db52172f5b3791aa" style="color: #1068bf;">6e2744cc</a></strong>
<div>
<span>by Ben Gamari</span>
<i>at 2022-04-06T15:18:37-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>Bump text submodule
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/3233374778d0deb0a99774319463d198d0ff0f65" style="color: #1068bf;">32333747</a></strong>
<div>
<span>by Ben Gamari</span>
<i>at 2022-04-06T15:18:37-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>hadrian: Build wrappers using ghc rather than cc
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/59787ba55265e4632207e71f04a8d164d807791e" style="color: #1068bf;">59787ba5</a></strong>
<div>
<span>by Ben Gamari</span>
<i>at 2022-04-06T15:18:37-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>linker/PEi386: More descriptive error message
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/5e3c3c4f6b7b4bfa94e555b86165c296717f8dec" style="color: #1068bf;">5e3c3c4f</a></strong>
<div>
<span>by Ben Gamari</span>
<i>at 2022-04-06T15:18:37-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>testsuite: Mark TH_spliceE5_prof as unbroken on Windows

It was previously failing due to #18721 and now passes with the new
toolchain.

Closes #18721.
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/9eb0a9d96942a3d17e5e2e02b5cd44c3ac513158" style="color: #1068bf;">9eb0a9d9</a></strong>
<div>
<span>by GHC GitLab CI</span>
<i>at 2022-04-06T15:23:48-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>rts/PEi386: Move some debugging output to -DL
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/ce8745952f99174ad9d3bdc7697fd086b47cdfb5" style="color: #1068bf;">ce874595</a></strong>
<div>
<span>by Ben Gamari</span>
<i>at 2022-04-06T15:24:01-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>nativeGen/x86: Use %rip-relative addressing

On Windows with high-entropy ASLR we must use %rip-relative addressing
to avoid overflowing the signed 32-bit immediate size of x86-64.
Since %rip-relative addressing comes essentially for free and can make
linking significantly easier, we use it on all platforms.
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/52deee64d222d2bada5bda1c1e6a77f505f98656" style="color: #1068bf;">52deee64</a></strong>
<div>
<span>by Ben Gamari</span>
<i>at 2022-04-06T15:24:01-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>Generate LEA for label expressions
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/105a0056afbe6226d849c586f2e76c726fe89c3f" style="color: #1068bf;">105a0056</a></strong>
<div>
<span>by Ben Gamari</span>
<i>at 2022-04-06T15:24:01-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>Refactor is32BitLit to take Platform rather than Bool
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/ec4526b5cbb58b93457591e2595c5a66b2a101f9" style="color: #1068bf;">ec4526b5</a></strong>
<div>
<span>by Ben Gamari</span>
<i>at 2022-04-06T15:24:01-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>Don't assume that labels are 32-bit on Windows
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/ffdbe457189a12d9eca6be2cfab977cd71411766" style="color: #1068bf;">ffdbe457</a></strong>
<div>
<span>by Ben Gamari</span>
<i>at 2022-04-06T15:24:01-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>nativeGen: Note signed-extended nature of MOV
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/bfb796974fa0bfcaa9fc18c5deedca6889e4bdf2" style="color: #1068bf;">bfb79697</a></strong>
<div>
<span>by Ben Gamari</span>
<i>at 2022-04-06T15:30:56-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>rts: Move __USE_MINGW_ANSI_STDIO definition to PosixSource.h

It's easier to ensure that this is included first than Rts.h
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/5ad143fd8c448d7af3950f71f53feac6cd33f956" style="color: #1068bf;">5ad143fd</a></strong>
<div>
<span>by Ben Gamari</span>
<i>at 2022-04-06T15:30:56-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>rts: Fix various #include issues

This fixes various violations of the newly-added RTS includes linter.
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/a59a66a8163cbbfa49a14f3c91af322f906084ea" style="color: #1068bf;">a59a66a8</a></strong>
<div>
<span>by Ben Gamari</span>
<i>at 2022-04-06T15:30:56-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>testsuite: Lint RTS #includes

Verifies two important properties of #includes in the RTS:

 * That system headers don't appear inside of a `<BeginPrivate.h>` block
   as this can hide system library symbols, resulting in very
   hard-to-diagnose linker errors

 * That no headers precede `Rts.h`, ensuring that __USE_MINGW_ANSI_STDIO
   is set correctly before system headers are included.
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/42bf7528559fb518092fef3902afb73af5de146e" style="color: #1068bf;">42bf7528</a></strong>
<div>
<span>by GHC GitLab CI</span>
<i>at 2022-04-06T16:25:04-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>rts/PEi386: Fix memory leak

Previously we would leak the section information of the `.bss`
section.
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/d286a55caebca8a4e5e73bbfeeb766e333271a09" style="color: #1068bf;">d286a55c</a></strong>
<div>
<span>by Ben Gamari</span>
<i>at 2022-04-06T16:25:25-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>rts/linker: Preserve information about symbol types

As noted in #20978, the linker would previously handle overflowed
relocations by creating a jump island. While this is fine in the case of
code symbols, it's very much not okay in the case of data symbols. To
fix this we must keep track of whether each symbol is code or data and
relocate them appropriately. This patch takes the first step in this
direction, adding a symbol type field to the linker's symbol table. It
doesn't yet change relocation behavior to take advantage of this
knowledge.

Fixes #20978.
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/e689e9d5d058dbe05890038c28abdf3301679d7b" style="color: #1068bf;">e689e9d5</a></strong>
<div>
<span>by Ben Gamari</span>
<i>at 2022-04-06T16:25:25-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>rts/PEi386: Fix relocation overflow behavior

This fixes handling of overflowed relocations on PEi386 targets:

 * Refuse to create jump islands for relocations of data symbols
 * Correctly handle the `__imp___acrt_iob_func` symbol, which is an new
   type of symbol: `SYM_TYPE_INDIRECT_DATA`
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/655e7d8f968eeaabfc02329d7ac9361678364c06" style="color: #1068bf;">655e7d8f</a></strong>
<div>
<span>by GHC GitLab CI</span>
<i>at 2022-04-06T16:25:25-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>rts: Mark anything that might have an info table as data

Tables-next-to-code mandates that we treat symbols with info tables like
data since we cannot relocate them using a jump island.

See #20983.
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/7e8cc293702354bec350c4d3c784a70cd8f7ffe4" style="color: #1068bf;">7e8cc293</a></strong>
<div>
<span>by Ben Gamari</span>
<i>at 2022-04-06T16:25:25-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>rts/PEi386: Rework linker

This is a significant rework of the PEi386 linker, making the linker
compatible with high image base addresses. Specifically, we now use the
m32 allocator instead of `HeapAllocate`.

In addition I found a number of latent bugs in our handling of import
libraries and relocations. I've added quite a few comments describing
what I've learned about Windows import libraries while fixing these.

Thanks to Tamar Christina (@Phyx) for providing the address space search
logic, countless hours of help while debugging, and his boundless
Windows knowledge.

Co-Authored-By: Tamar Christina <tamar@zhox.com>
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/ff625218d9d7c17f1c6117991d1d2a28f9e4497a" style="color: #1068bf;">ff625218</a></strong>
<div>
<span>by Ben Gamari</span>
<i>at 2022-04-06T16:25:25-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>rts/PEi386: Move allocateBytes to MMap.c
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/f562b5cacae6a7ce8958fb5635856009f8833ea3" style="color: #1068bf;">f562b5ca</a></strong>
<div>
<span>by Ben Gamari</span>
<i>at 2022-04-06T16:25:25-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>rts/PEi386: Avoid accidentally-quadratic allocation cost

We now preserve the address that we last mapped, allowing us to resume
our search and avoiding quadratic allocation costs. This fixes the
runtime of T10296a, which allocates many adjustors.
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/3247b7dbc6eab81c9fc02fbc385b69dc129fcdc6" style="color: #1068bf;">3247b7db</a></strong>
<div>
<span>by Ben Gamari</span>
<i>at 2022-04-06T16:25:25-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>Move msvcrt dep out of base
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/fa404335dd9ca45a75f9184f671eb5f9664ef1fa" style="color: #1068bf;">fa404335</a></strong>
<div>
<span>by Ben Gamari</span>
<i>at 2022-04-06T16:25:25-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>rts/linker: More descriptive debug output
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/140f338f83f3dda5f3198c791918214012842f21" style="color: #1068bf;">140f338f</a></strong>
<div>
<span>by Ben Gamari</span>
<i>at 2022-04-06T16:25:25-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>rts/PathUtils: Define pathprintf in terms of snwprintf on Windows

swprintf deviates from usual `snprintf` semantics in that it does not
guarantee reasonable behavior when the buffer is NULL (that is,
returning the number of bytes that would have been emitted).
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/eb60565b30225b2a215c0ae168b899a257706877" style="color: #1068bf;">eb60565b</a></strong>
<div>
<span>by Ben Gamari</span>
<i>at 2022-04-06T16:25:25-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>rts/linker: Report archive member index
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/209fd61b32855aa3151e222dee1513ec1fa362d3" style="color: #1068bf;">209fd61b</a></strong>
<div>
<span>by Ben Gamari</span>
<i>at 2022-04-06T16:25:25-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>rts/linker: Split up object resolution and initialization

Previously the RTS linker would call initializers during the
"resolve" phase of linking. However, this is problematic in the
case of cyclic dependencies between objects. In particular, consider
the case where we have a situation where a static library
contains a set of recursive objects:

 * object A has depends upon symbols in object B
 * object B has an initializer that depends upon object A
 * we try to load object A

The linker would previously:

 1. start resolving object A
 2. encounter the reference to object B, loading it resolve object B
 3. run object B's initializer
 4. the initializer will attempt to call into object A,
    which hasn't been fully resolved (and therefore protected)

Fix this by moving constructor execution to a new linking
phase, which follows resolution.

Fix #21253.
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/8e8a1021c3cacd5c4736a93ffb53a1143d5077c4" style="color: #1068bf;">8e8a1021</a></strong>
<div>
<span>by Ben Gamari</span>
<i>at 2022-04-06T16:25:25-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>rts/linker/LoadArchive: Fix leaking file handle

Previously `isArchive` could leak a `FILE` handle if the `fread`
returned a short read.
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/429ea5d9147a9d3bd2513b27a4064c1ca1be2090" style="color: #1068bf;">429ea5d9</a></strong>
<div>
<span>by sheaf</span>
<i>at 2022-04-07T07:55:52-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>Remove Fun pattern from Typeable COMPLETE set

GHC merge request !963 improved warnings in the presence of
COMPLETE annotations. This allows the removal of the Fun pattern
from the complete set.

Doing so expectedly causes some redundant pattern match warnings,
in particular in GHC.Utils.Binary.Typeable and Data.Binary.Class
from the binary library; this commit addresses that.

Updates binary submodule

Fixes #20230
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/54b1882416558936d171d78749400b1c838b11b8" style="color: #1068bf;">54b18824</a></strong>
<div>
<span>by Alan Zimmerman</span>
<i>at 2022-04-07T07:56:28-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>EPA: handling of con_bndrs in mkGadtDecl

Get rid of unnnecessary case clause that always matched.

Closes #20558
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/9c838429b01c5acdeccaebf2ef7786feb69d87fa" style="color: #1068bf;">9c838429</a></strong>
<div>
<span>by Ben Gamari</span>
<i>at 2022-04-07T09:38:53-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>testsuite: Mark T10420 as broken on Windows

Due to #21322.
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/50739d2b19cc6bb3bc9b2749ba1e1e164574f957" style="color: #1068bf;">50739d2b</a></strong>
<div>
<span>by Ben Gamari</span>
<i>at 2022-04-07T09:42:42-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>rts: Refactor and fix printf attributes on clang

Clang on Windows does not understand the `gnu_printf` attribute; use
`printf` instead.
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/9eeaeca4e95d58f362737bceead0ae2e16bcbbbb" style="color: #1068bf;">9eeaeca4</a></strong>
<div>
<span>by Ben Gamari</span>
<i>at 2022-04-07T09:42:42-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>rts: Add missing newline in error message
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/fcef9a175f810e7bfccbae9bf9e79b2b95da17ab" style="color: #1068bf;">fcef9a17</a></strong>
<div>
<span>by Ben Gamari</span>
<i>at 2022-04-07T09:42:42-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>configure: Make environ decl check more robust

Some platforms (e.g. Windows/clang64) declare `environ` in `<stdlib.h>`,
not `<unistd.h>`
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/8162b4f329a15b011e2dff055548cb00bdb5c7a0" style="color: #1068bf;">8162b4f3</a></strong>
<div>
<span>by Ben Gamari</span>
<i>at 2022-04-07T09:42:42-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>rts: Adjust RTS symbol table on Windows for ucrt
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/633280d7c192d12bf20cb00988f299a2787c8128" style="color: #1068bf;">633280d7</a></strong>
<div>
<span>by Ben Gamari</span>
<i>at 2022-04-07T09:43:21-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>testsuite: Fix exit code of bounds checking tests on Windows

`abort` exits with 255, not 134, on Windows.
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/cab4dc013354e6bce5d104c882f08c4a8f32adea" style="color: #1068bf;">cab4dc01</a></strong>
<div>
<span>by Ben Gamari</span>
<i>at 2022-04-07T09:43:31-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>testsuite: Update expected output from T5435 tests on Windows

I'll admit, I don't currently see *why* this output is reordered
but it is a fairly benign difference and I'm out of time to investigate.
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/edf5134e8ca8e830998defb06ba40a26c0de2636" style="color: #1068bf;">edf5134e</a></strong>
<div>
<span>by Ben Gamari</span>
<i>at 2022-04-07T09:43:35-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>testsuite: Mark T20918 as broken on Windows

Our toolchain on Windows doesn't currently have Windows support.
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/d0ddeff308aad29b270aded620e23fd726b682ea" style="color: #1068bf;">d0ddeff3</a></strong>
<div>
<span>by Ben Gamari</span>
<i>at 2022-04-07T09:43:39-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>testsuite: Mark linker unloading tests as broken on Windows

Due to #20354.

We will need to investigate this prior the release.
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/5a86da2b04bc329ff6810bf7f2b6d03156b43ef3" style="color: #1068bf;">5a86da2b</a></strong>
<div>
<span>by Ben Gamari</span>
<i>at 2022-04-07T09:43:43-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>testsuite: Mark T9405 as broken on Windows

Due to #21361.
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/4aa86dcfc5fbb5a08f28261817511378fcb5e3be" style="color: #1068bf;">4aa86dcf</a></strong>
<div>
<span>by Ben Gamari</span>
<i>at 2022-04-07T09:44:18-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>Merge branches 'wip/windows-high-codegen', 'wip/windows-high-linker', 'wip/windows-clang-2' and 'wip/lint-rts-includes' into wip/windows-clang-join
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/7206f05586b8190e26e392eaa9e74ab3cf9f9c60" style="color: #1068bf;">7206f055</a></strong>
<div>
<span>by Ben Gamari</span>
<i>at 2022-04-07T09:45:07-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>rts/CloneStack: Ensure that Rts.h is #included first

As is necessary on Windows.
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/9cfcb27b68e4b836bdfc92c900fc58a1ef646c0a" style="color: #1068bf;">9cfcb27b</a></strong>
<div>
<span>by Ben Gamari</span>
<i>at 2022-04-07T09:45:07-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>rts: Fallback to ucrtbase not msvcrt

Since we have switched to Clang the toolchain now links against
ucrt rather than msvcrt.
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/d6665d8589bfc9869486fe57644f40a7704d95d0" style="color: #1068bf;">d6665d85</a></strong>
<div>
<span>by Ben Gamari</span>
<i>at 2022-04-07T09:46:25-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>Accept spurious perf test shifts on Windows

Metric Decrease:
    T16875
Metric Increase:
    T12707
    T13379
    T3294
    T4801
    T5321FD
    T5321Fun
    T783
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/83363c8b04837ee871a304cf85207cf79b299fb0" style="color: #1068bf;">83363c8b</a></strong>
<div>
<span>by Simon Peyton Jones</span>
<i>at 2022-04-07T12:57:21-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>Use prepareBinding in tryCastWorkerWrapper

As #21144 showed, tryCastWorkerWrapper was calling prepareRhs, and
then unconditionally floating the bindings, without the checks of
doFloatFromRhs.   That led to floating an unlifted binding into
a Rec group.

This patch refactors prepareBinding to make these checks,
and do them uniformly across all calls.  A nice improvement.

Other changes
* Instead of passing around a RecFlag and a TopLevelFlag; and sometimes
  a (Maybe SimplCont) for join points, define a new Simplifier-specific
  data type BindContext:
      data BindContext = BC_Let  TopLevelFlag RecFlag
                       | BC_Join SimplCont
  and use it consistently.

* Kill off completeNonRecX by inlining it.  It was only called in
  one place.

* Add a wrapper simplImpRules for simplRules.

Compile time on T9630 drops by 4.7%; little else changes.

Metric Decrease:
    T9630
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/02279a9c37deb34556834f706dbedc09258df753" style="color: #1068bf;">02279a9c</a></strong>
<div>
<span>by Vladislav Zavialov</span>
<i>at 2022-04-07T12:57:59-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>Rename [] to List (#21294)

This patch implements a small part of GHC Proposal #475.
The key change is in GHC.Types:

        - data [] a = [] | a : [a]
        + data List a = [] | a : List a

And the rest of the patch makes sure that List is pretty-printed as []
in various contexts.

Updates the haddock submodule.
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/08480d2af91b933a2cfc1e2f97a132eab6bba254" style="color: #1068bf;">08480d2a</a></strong>
<div>
<span>by Simon Peyton Jones</span>
<i>at 2022-04-07T12:58:36-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>Fix the free-var test in validDerivPred

The free-var test (now documented as (VD3)) was too narrow,
affecting only class predicates.  #21302 demonstrated that
this wasn't enough!

Fixes #21302.

Co-authored-by: Ryan Scott <ryan.gl.scott@gmail.com>
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/b3d6d23d11a19d5304538b4a55bd9b93f39a3e63" style="color: #1068bf;">b3d6d23d</a></strong>
<div>
<span>by Andreas Klebinger</span>
<i>at 2022-04-07T12:59:12-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>Properly explain where INLINE pragmas can appear.

Fixes #20676
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/23ef62b3e04ad834153269980dab4aac35a1fc7e" style="color: #1068bf;">23ef62b3</a></strong>
<div>
<span>by Ben Gamari</span>
<i>at 2022-04-07T14:28:28-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>rts: Fix off-by-one in snwprintf usage
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/b2dbcc7d28f11de92441fae3f20c6dc35498469f" style="color: #1068bf;">b2dbcc7d</a></strong>
<div>
<span>by Simon Jakobi</span>
<i>at 2022-04-08T03:00:38-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>Improve seq[D]VarSet

Previously, the use of size[D]VarSet would involve a traversal of the
entire underlying IntMap. Since IntMaps are already spine-strict,
this is unnecessary.
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/64ac20a72dfda1f6122d5c6dd5077796cd94f124" style="color: #1068bf;">64ac20a7</a></strong>
<div>
<span>by sheaf</span>
<i>at 2022-04-08T03:01:16-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>Add test for #21338

This no-skolem-info bug was fixed by the no-skolem-info patch
that will be part of GHC 9.4. This patch adds a regression test for
the issue reported in issue #21338.

Fixes #21338.
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/c32c4db60307b1f64369d2c63ccee331c9f33f11" style="color: #1068bf;">c32c4db6</a></strong>
<div>
<span>by Ben Gamari</span>
<i>at 2022-04-08T03:01:53-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>rts: Move __USE_MINGW_ANSI_STDIO definition to PosixSource.h

It's easier to ensure that this is included first than Rts.h
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/56f85d62cf3d3effe1d64624898b779d764730fb" style="color: #1068bf;">56f85d62</a></strong>
<div>
<span>by Ben Gamari</span>
<i>at 2022-04-08T03:01:53-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>rts: Fix various #include issues

This fixes various violations of the newly-added RTS includes linter.
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/cb1f31f5a1ad025c93f2a0b2ac57b8ec57c53ec7" style="color: #1068bf;">cb1f31f5</a></strong>
<div>
<span>by Ben Gamari</span>
<i>at 2022-04-08T03:01:53-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>testsuite: Lint RTS #includes

Verifies two important properties of #includes in the RTS:

 * That system headers don't appear inside of a `<BeginPrivate.h>` block
   as this can hide system library symbols, resulting in very
   hard-to-diagnose linker errors

 * That no headers precede `Rts.h`, ensuring that __USE_MINGW_ANSI_STDIO
   is set correctly before system headers are included.
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/c44432db254d2fc960d7864e080cb50e65dfa7c6" style="color: #1068bf;">c44432db</a></strong>
<div>
<span>by Krzysztof Gogolewski</span>
<i>at 2022-04-08T03:02:29-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>Fixes to 9.4 release notes

- Mention -Wforall-identifier
- Improve description of withDict
- Fix formatting
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/777365f18233d7ad032435ea2c93197cbb1d732e" style="color: #1068bf;">777365f1</a></strong>
<div>
<span>by sheaf</span>
<i>at 2022-04-08T09:43:35-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>Correctly report SrcLoc of redundant constraints

We were accidentally dropping the source location information in
certain circumstances when reporting redundant constraints. This patch
makes sure that we set the TcLclEnv correctly before reporting the
warning.

Fixes #21315
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/af300a439fd360944cc9424b1676ef0b832922dc" style="color: #1068bf;">af300a43</a></strong>
<div>
<span>by Vladislav Zavialov</span>
<i>at 2022-04-08T09:44:11-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>Reject illegal quote mark in data con declarations (#17865)

* Non-fatal (i.e. recoverable) parse error
* Checking infix constructors
* Extended the regression test
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/56254e6be108bf7d1993df269b3ae22a91903d45" style="color: #1068bf;">56254e6b</a></strong>
<div>
<span>by Ben Gamari</span>
<i>at 2022-04-08T09:59:46-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>Merge remote-tracking branch 'origin/master'
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/6e2c3b7cba823cd9c315edb9c0c0edeece33ac30" style="color: #1068bf;">6e2c3b7c</a></strong>
<div>
<span>by Matthew Pickering</span>
<i>at 2022-04-08T13:55:15-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>driver: Introduce HomeModInfoCache abstraction

The HomeModInfoCache is a mutable cache which is updated incrementally
as the driver completes, this makes it robust to exceptions including
(SIGINT)

The interface for the cache is described by the `HomeMOdInfoCache` data
type:

```
data HomeModInfoCache = HomeModInfoCache { hmi_clearCache :: IO [HomeModInfo]
                                         , hmi_addToCache :: HomeModInfo -> IO () }
```

The first operation clears the cache and returns its contents. This is
designed so it's harder to end up in situations where the cache is
retained throughout the execution of upsweep.

The second operation allows a module to be added to the cache.

The one slightly nasty part is in `interpretBuildPlan` where we have to
be careful to ensure that the cache writes happen:

1. In parralel
2. Before the executation continues after upsweep.

This requires some simple, localised MVar wrangling.

Fixes #20780
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/85f4a3c9c2635e71a9ab0b723774ec993fefb93d" style="color: #1068bf;">85f4a3c9</a></strong>
<div>
<span>by Andreas Klebinger</span>
<i>at 2022-04-08T13:55:50-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>Add flag -fprof-manual which controls if GHC should honour manual cost centres.

This allows disabling of manual control centres in code a user doesn't control like
libraries.

Fixes #18867
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/3415981c36631115bc1d7fb5b51abfcc2932a12f" style="color: #1068bf;">3415981c</a></strong>
<div>
<span>by Vladislav Zavialov</span>
<i>at 2022-04-08T13:56:27-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>HsUniToken for :: in GADT constructors (#19623)

One more step towards the new design of EPA.

Updates the haddock submodule.
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/23f95735825cd2bfb8d84337cd502d2b2ff533c5" style="color: #1068bf;">23f95735</a></strong>
<div>
<span>by sheaf</span>
<i>at 2022-04-08T13:57:07-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>Docs: datacon eta-expansion, rep-poly checks

The existing notes weren't very clear on how the eta-expansion of
data constructors that occurs in tcInferDataCon/dsConLike interacts
with the representation polymorphism invariants. So we explain with
a few more details how we ensure that the representation-polymorphic
lambdas introduced by tcInferDataCon/dsConLike don't end up causing
problems, by checking they are properly instantiated and then relying
on the simple optimiser to perform beta reduction.

A few additional changes:

  - ConLikeTc just take type variables instead of binders, as we
    never actually used the binders.
  - Removed the FRRApp constructor of FRROrigin; it was no longer used
    now that we use ExpectedFunTyOrigin.
  - Adds a bit of documentation to the constructors
    of ExpectedFunTyOrigin.
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/d448049040d8f7b9b75863b096d08d16d6810f96" style="color: #1068bf;">d4480490</a></strong>
<div>
<span>by Matthew Pickering</span>
<i>at 2022-04-08T13:57:43-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>ci: Replace "always" with "on_success" to stop build jobs running before hadrian-ghci has finished

See https://docs.gitlab.com/ee/ci/yaml/#when

* always means, always run not matter what
* on_success means, run if the dependencies have built successfully
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/0736e949b71a0c2b5eb404aac7a5883dd52b7b5c" style="color: #1068bf;">0736e949</a></strong>
<div>
<span>by Vladislav Zavialov</span>
<i>at 2022-04-08T13:58:19-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>Disallow (->) as a data constructor name (#16999)

The code was misusing isLexCon, which was never meant for validation.
In fact, its documentation states the following:

        Use these functions to figure what kind of name a 'FastString'
        represents; these functions do /not/ check that the identifier
        is valid.

Ha! This sign can't stop me because I can't read.

The fix is to use okConOcc instead. The other checks (isTcOcc or
isDataOcc) seem superfluous, so I also removed those.
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/e58d5eeb90fb0c35ff08d8d9f752eab74fc9889e" style="color: #1068bf;">e58d5eeb</a></strong>
<div>
<span>by Simon Peyton Jones</span>
<i>at 2022-04-08T13:58:55-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>Tiny documentation wibble

This commit
   commit 83363c8b04837ee871a304cf85207cf79b299fb0
   Author: Simon Peyton Jones <simon.peytonjones@gmail.com>
   Date:   Fri Mar 11 16:55:38 2022 +0000

       Use prepareBinding in tryCastWorkerWrapper

refactored completeNonRecX away, but left a Note referring to it.
This MR fixes that Note.
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/4bb008393bc7cc851b86bd0e4460612f8d415a76" style="color: #1068bf;">4bb00839</a></strong>
<div>
<span>by Matthew Pickering</span>
<i>at 2022-04-09T07:40:28-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>ci: Fix nightly head.hackage pipelines

This also needs a corresponding commit to head.hackage, I also made the
job explicitly depend on the fedora33 job so that it isn't blocked by a
failing windows job, which causes docs-tarball to fail.
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/3c48e12a241d50c480ed4e68180a1886be649a35" style="color: #1068bf;">3c48e12a</a></strong>
<div>
<span>by Matthew Pickering</span>
<i>at 2022-04-09T07:40:28-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>ci: Remove doc-tarball dependency from perf and perf-nofib jobs

These don't depend on the contents of the tarball so we can run them
straight after the fedora33 job finishes.
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/27362265e50b59aee9a0ae17560ce091f5501985" style="color: #1068bf;">27362265</a></strong>
<div>
<span>by Matthew Pickering</span>
<i>at 2022-04-09T07:41:04-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>Bump deepseq to 1.4.7.0

Updates deepseq submodule

Fixes #20653
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/dcf30da8ff3ddcea9db3369870039f1b2c5d7b2c" style="color: #1068bf;">dcf30da8</a></strong>
<div>
<span>by Joachim Breitner</span>
<i>at 2022-04-09T13:02:19-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>Drop the app invariant

previously, GHC had the "let/app-invariant" which said that the RHS of a
let or the argument of an application must be of lifted type or ok for
speculation. We want this on let to freely float them around, and we
wanted that on app to freely convert between the two (e.g. in
beta-reduction or inlining).

However, the app invariant meant that simple code didn't stay simple and
this got in the way of rules matching. By removing the app invariant,
this thus fixes #20554.

The new invariant is now called "let-can-float invariant", which is
hopefully easier to guess its meaning correctly.

Dropping the app invariant means that everywhere where we effectively do
beta-reduction (in the two simplifiers, but also in `exprIsConApp_maybe`
and other innocent looking places) we now have to check if the argument
must be evaluated (unlifted and side-effecting), and analyses have to be
adjusted to the new semantics of `App`.

Also, `LetFloats` in the simplifier can now also carry such non-floating
bindings.

The fix for DmdAnal, refine by Sebastian, makes functions with unlifted
arguments strict in these arguments, which changes some signatures.

This causes some extra calls to `exprType` and `exprOkForSpeculation`,
so some perf benchmarks regress a bit (while others improve).

Metric Decrease:
    T9020
Metric Increase:
    LargeRecord
    T12545
    T15164
    T16577
    T18223
    T5642
    T9961

Co-authored-by: Sebastian Graf <sebastian.graf@kit.edu>
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/6c6c537964c6dc9ed3e8c4a4be68b587a27a3f50" style="color: #1068bf;">6c6c5379</a></strong>
<div>
<span>by Philip Hazelden</span>
<i>at 2022-04-09T13:02:59-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>Add functions traceWith, traceShowWith, traceEventWith.

As discussed at
https://github.com/haskell/core-libraries-committee/issues/36
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/8fafacf7bae432fe20a46265af497b8fb42cbd1c" style="color: #1068bf;">8fafacf7</a></strong>
<div>
<span>by Philip Hazelden</span>
<i>at 2022-04-09T13:02:59-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>Add tests for several trace functions.
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/20bbf3ace6bda71b28154bec3e840e418440eac0" style="color: #1068bf;">20bbf3ac</a></strong>
<div>
<span>by Philip Hazelden</span>
<i>at 2022-04-09T13:02:59-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>Update changelog.
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/47d18b0b387fbfe07e1b4fbda578a81a74ab0eeb" style="color: #1068bf;">47d18b0b</a></strong>
<div>
<span>by Andreas Klebinger</span>
<i>at 2022-04-09T13:03:35-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>Add regression test for #19569
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/5f8d6e65f3d8268c70d6a8434ba9df03087a22eb" style="color: #1068bf;">5f8d6e65</a></strong>
<div>
<span>by sheaf</span>
<i>at 2022-04-09T13:04:14-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>Fix missing SymCo in pushCoercionIntoLambda

There was a missing SymCo in pushCoercionIntoLambda. Currently
this codepath is only used with rewrite rules, so this bug managed
to slip by, but trying to use pushCoercionIntoLambda in other contexts
revealed the bug.
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/20eca489df8c3dae80a584dede8fea40728bde3b" style="color: #1068bf;">20eca489</a></strong>
<div>
<span>by Vladislav Zavialov</span>
<i>at 2022-04-09T13:04:50-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>Refactor: simplify lexing of the dot

Before this patch, the lexer did a truly roundabout thing with the dot:

1. look up the varsym in reservedSymsFM and turn it into ITdot
2. under OverloadedRecordDot, turn it into ITvarsym
3. in varsym_(prefix|suffix|...) turn it into ITvarsym, ITdot, or
   ITproj, depending on extensions and whitespace

Turns out, the last step is sufficient to handle the dot correctly.
This patch removes the first two steps.
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/5440f63ec4a584b8805a8ff49ba1bd26bc2c032d" style="color: #1068bf;">5440f63e</a></strong>
<div>
<span>by Hécate Moonlight</span>
<i>at 2022-04-12T11:11:06-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>Document that DuplicateRecordFields doesn't tolerates ambiguous fields

Fix #19891
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/0090ad7b8b436961fe1e225aae214d0ea1381c07" style="color: #1068bf;">0090ad7b</a></strong>
<div>
<span>by Sebastian Graf</span>
<i>at 2022-04-12T11:11:42-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>Eta reduction based on evaluation context (#21261)

I completely rewrote our Notes surrounding eta-reduction. The new entry point is
`Note [Eta reduction makes sense]`.

Then I went on to extend the Simplifier to maintain an evaluation context in the
form of a `SubDemand` inside a `SimplCont`. That `SubDemand` is useful for doing
eta reduction according to `Note [Eta reduction based on evaluation context]`,
which describes how Demand analysis, Simplifier and `tryEtaReduce` interact to
facilitate eta reduction in more scenarios.

Thus we fix #21261.

ghc/alloc perf marginally improves (-0.0%). A medium-sized win is when compiling
T3064 (-3%). It seems that haddock improves by 0.6% to 1.0%, too.

Metric Decrease:
    T3064
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/4d2ee313f23a4454d12c9f94ff132f078dd64d31" style="color: #1068bf;">4d2ee313</a></strong>
<div>
<span>by Sebastian Graf</span>
<i>at 2022-04-12T17:54:57+02:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>Specialising through specialised method calls (#19644)

In #19644, we discovered that the ClassOp/DFun rules from
Note [ClassOp/DFun selection] inhibit transitive specialisation in a scenario
like
```
class C a where m :: Show b => a -> b -> ...; n :: ...
instance C Int where m = ... -- $cm :: Show b => Int -> b -> ...
f :: forall a b. (C a, Show b) => ...
f $dC $dShow = ... m @a $dC @b $dShow ...
main = ... f @Int @Bool ...
```
After we specialise `f` for `Int`, we'll see `m @a $dC @b $dShow` in the body of
`$sf`. But before this patch, Specialise doesn't apply the ClassOp/DFun rule to
rewrite to a call of the instance method for `C Int`, e.g., `$cm @Bool $dShow`.
As a result, Specialise couldn't further specialise `$cm` for `Bool`.

There's a better example in `Note [Specialisation modulo dictionary selectors]`.

This patch enables proper Specialisation, as follows:

1. In the App case of `specExpr`, try to apply the CalssOp/DictSel rule on the
   head of the application
2. Attach an unfolding to freshly-bound dictionary ids such as `$dC` and
   `$dShow` in `bindAuxiliaryDict`

NB: Without (2), (1) would be pointless, because `lookupRule` wouldn't be able
to look into the RHS of `$dC` to see the DFun.

(2) triggered #21332, because the Specialiser floats around dictionaries without
accounting for them in the `SpecEnv`'s `InScopeSet`, triggering a panic when
rewriting dictionary unfoldings.

Fixes #19644 and #21332.
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/b06f4f470b6bbe296cc828f8698e9d55cca39d73" style="color: #1068bf;">b06f4f47</a></strong>
<div>
<span>by Sebastian Graf</span>
<i>at 2022-04-12T17:54:58+02:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>Specialise: Check `typeDeterminesValue` before specialising on an interesting dictionary

I extracted the checks from `Note [Type determines value]` into its own
function, so that we share the logic properly. Then I made sure that we
actually call `typeDeterminesValue` everywhere we check for `interestingDict`.
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/a42dbc55ad1aff242c0b6b2b22188a25d588c8bf" style="color: #1068bf;">a42dbc55</a></strong>
<div>
<span>by Matthew Pickering</span>
<i>at 2022-04-13T06:24:52-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>Refine warning about defining rules in SAFE modules

This change makes it clear that it's the definition rather than any
usage which is a problem, and that rules defined in other modules will
still be  used to do rewrites.

Fixes #20923
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/df893f6667b31946ae7995150a6a5920602f7b0b" style="color: #1068bf;">df893f66</a></strong>
<div>
<span>by Andreas Klebinger</span>
<i>at 2022-04-14T08:18:37-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>StgLint: Lint constructor applications and strict workers for arity.

This will mean T9208 when run with lint will return a lint error instead
of resulting in a panic.

Fixes #21117
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/426ec4461c1723a8fe4be97404c7e6c10a10cee5" style="color: #1068bf;">426ec446</a></strong>
<div>
<span>by sheaf</span>
<i>at 2022-04-14T08:19:16-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>Hadrian: use a set to keep track of ways

The order in which ways are provided doesn't matter,
so we use a data structure with the appropriate semantics to
represent ways.

Fixes #21378
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/7c639b9a589f7e937f2343ae4bdfea2ba5b1f74b" style="color: #1068bf;">7c639b9a</a></strong>
<div>
<span>by Dylan Yudaken</span>
<i>at 2022-04-15T13:55:59-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>Only enable PROF_SPIN in DEBUG
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/96b9e5ea93f7a70b6481182652e4433f53cd244b" style="color: #1068bf;">96b9e5ea</a></strong>
<div>
<span>by Ben Gamari</span>
<i>at 2022-04-15T13:56:34-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>testsuite: Add test for #21390
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/d8392f6a714b5646d43ed54eee0d028f714da717" style="color: #1068bf;">d8392f6a</a></strong>
<div>
<span>by Ben Gamari</span>
<i>at 2022-04-15T13:56:34-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>rts: Ensure that the interpreter doesn't disregard tags

Previously the interpreter's handling of `RET_BCO` stack frames would
throw away the tag of the returned closure. This resulted in #21390.
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/83c67f766be615d4db6f71f8af0cbb9b4c4917bb" style="color: #1068bf;">83c67f76</a></strong>
<div>
<span>by Alan Zimmerman</span>
<i>at 2022-04-20T11:49:28-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>Add -dkeep-comments flag to keep comments in the parser

This provides a way to set the Opt_KeepRawTokenStream from the command
line, allowing exact print annotation users to see exactly what is
produced for a given parsed file, when used in conjunction with
-ddump-parsed-ast

Discussed in #19706, but this commit does not close the issue.
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/a5ea65c981a70454dc56719f8566efa7ee184d3f" style="color: #1068bf;">a5ea65c9</a></strong>
<div>
<span>by Krzysztof Gogolewski</span>
<i>at 2022-04-20T11:50:04-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>Remove LevityInfo

Every Id was storing a boolean whether it could be levity-polymorphic.
This information is no longer needed since representation-checking
has been moved to the typechecker.
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/49bd758417fd539080469f2fc2a996ea6dc75d45" style="color: #1068bf;">49bd7584</a></strong>
<div>
<span>by Andreas Klebinger</span>
<i>at 2022-04-20T11:50:39-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>Fix a shadowing issue in StgUnarise.

For I assume performance reasons we don't record no-op replacements
during unarise. This lead to problems with code like this:

    f = \(Eta_B0 :: VoidType) x1 x2 ->
       ... let foo = \(Eta_B0 :: LiftedType) -> g x y Eta_B0
           in ...

Here we would record the outer Eta_B0 as void rep, but would not
shadow Eta_B0 inside `foo` because this arg is single-rep and so
doesn't need to replaced. But this means when looking at occurence
sites we would check the env and assume it's void rep based on the
entry we made for the (no longer in scope) outer `Eta_B0`.

Fixes #21396 and the ticket has a few more details.
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/0c02c9199c26bebde17cd0afd378802c6d622a88" style="color: #1068bf;">0c02c919</a></strong>
<div>
<span>by Simon Peyton Jones</span>
<i>at 2022-04-20T11:51:15-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>Fix substitution in bindAuxiliaryDict

In GHC.Core.Opt.Specialise.bindAuxiliaryDict we were unnecessarily
calling `extendInScope` to bring into scope variables that were
/already/ in scope.  Worse, GHC.Core.Subst.extendInScope strangely
deleted the newly-in-scope variables from the substitution -- and that
was fatal in #21391.

I removed the redundant calls to extendInScope.

More ambitiously, I changed GHC.Core.Subst.extendInScope (and cousins)
to stop deleting variables from the substitution.  I even changed the
names of the function to extendSubstInScope (and cousins) and audited
all the calls to check that deleting from the substitution was wrong.
In fact there are very few such calls, and they are all about
introducing a fresh non-in-scope variable.  These are "OutIds"; it is
utterly wrong to mess with the "InId" substitution.

I have not added a Note, because I'm deleting wrong code, and it'd be
distracting to document a bug.
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/0481a6af8d5d0279809bd14082d9f2d988da6df2" style="color: #1068bf;">0481a6af</a></strong>
<div>
<span>by Cheng Shao</span>
<i>at 2022-04-21T11:06:06+00:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>[ci skip] Drop outdated TODO in RtsAPI.c
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/1e062a8a220c2fb5d707c7e36c6532d0e16291e9" style="color: #1068bf;">1e062a8a</a></strong>
<div>
<span>by Ben Gamari</span>
<i>at 2022-04-22T02:12:59-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>rts: Introduce ip_STACK_FRAME

While debugging it is very useful to be able to determine whether a
given info table is a stack frame or not. We have spare bits in the
closure flags array anyways, use one for this information.
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/08a6a2ee078418099c8ae614f5755876de4e380a" style="color: #1068bf;">08a6a2ee</a></strong>
<div>
<span>by Ben Gamari</span>
<i>at 2022-04-22T02:12:59-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>rts: Mark closureFlags array as const
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/8f9b8282a294150810db272815f1a47287bf33b6" style="color: #1068bf;">8f9b8282</a></strong>
<div>
<span>by Krzysztof Gogolewski</span>
<i>at 2022-04-22T02:13:35-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>Check for zero-bit types in sizeExpr

Fixes #20940

Metric Decrease:
    T18698a
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/fcf22883774fab6e77058d981a3f840fa663e3ac" style="color: #1068bf;">fcf22883</a></strong>
<div>
<span>by Andreas Klebinger</span>
<i>at 2022-04-22T02:14:10-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>Include the way string in the file name for dump files.

This can be disabled by `-fno-dump-with-ways` if not desired.
Finally we will be able to look at both profiled and non-profiled dumps
when compiling with dump flags and we compile in both ways.
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/252394cefa746cb9eaf4fed4ea23d716eab20d1b" style="color: #1068bf;">252394ce</a></strong>
<div>
<span>by Bodigrim</span>
<i>at 2022-04-22T02:14:48-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>Improve error messages from GHC.IO.Encoding.Failure
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/250f57c17f72ba11eda3655f553957f6f04c0399" style="color: #1068bf;">250f57c1</a></strong>
<div>
<span>by Bodigrim</span>
<i>at 2022-04-22T02:14:48-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>Update test baselines to match new error messages from GHC.IO.Encoding.Failure
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/5ac9b32112facbf0630313c002f8c9b6ac1c986a" style="color: #1068bf;">5ac9b321</a></strong>
<div>
<span>by Ben Gamari</span>
<i>at 2022-04-22T02:15:25-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>get-win32-tarballs: Drop i686 architecture

As of #18487 we no longer support 32-bit Windows.

Fixes #21372.
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/dd5fecb0e2990b192d92f4dfd7519ecb33164fad" style="color: #1068bf;">dd5fecb0</a></strong>
<div>
<span>by Ben Gamari</span>
<i>at 2022-04-22T02:16:00-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>hadrian: Don't rely on xxx not being present in installation path

Previously Hadrian's installation makefile would assume that the string
`xxx` did not appear in the installation path. This would of course
break for some users.

Fixes #21402.
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/09e98859be5304176d5c66b4a71d61bf381bcae5" style="color: #1068bf;">09e98859</a></strong>
<div>
<span>by Ben Gamari</span>
<i>at 2022-04-22T02:16:35-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>testsuite: Ensure that GHC doesn't pick up environment files

Here we set GHC_ENVIRONMENT="-" to ensure that GHC invocations of tests
don't pick up a user's local package environment.

Fixes #21365.

Metric Decrease:
    T10421
    T12234
    T12425
    T13035
    T16875
    T9198
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/76bb8cb3fd0f376b6af4bff12c29cb4226c24a72" style="color: #1068bf;">76bb8cb3</a></strong>
<div>
<span>by Ben Gamari</span>
<i>at 2022-04-22T02:17:11-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>hadrian: Enable -dlint in devel2 flavour

Previously only -dcore-lint was enabled.
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/f435d55fe969e739eb92bbb681069020d0622137" style="color: #1068bf;">f435d55f</a></strong>
<div>
<span>by Krzysztof Gogolewski</span>
<i>at 2022-04-22T08:00:18-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>Fixes to rubbish literals

* In CoreToStg, the application 'RUBBISH[rep] x' was simplified
  to 'RUBBISH[rep]'. But it is possible that the result of the function
  is represented differently than the function.
* In Unarise, 'LitRubbish (primRepToType prep)'
  is incorrect: LitRubbish takes a RuntimeRep such as IntRep,
  while primRepToType returns a type such as Any @(TYPE IntRep). Use
  primRepToRuntimeRep instead.
  This code is never run in the testsuite.
* In StgToByteCode, all rubbish literals were assumed to be boxed.
  This code predates representation-polymorphic RubbishLit and I think
  it was not updated.

I don't have a testcase for any of those issues, but the code looks
wrong.
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/93c16b94ebff03c81c2285eb2b622dc62f9bca16" style="color: #1068bf;">93c16b94</a></strong>
<div>
<span>by sheaf</span>
<i>at 2022-04-22T08:00:57-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>Relax "suppressing errors" assert in reportWanteds

The assertion in reportWanteds that we aren't suppressing all the
Wanted constraints was too strong: it might be the case that we are
inside an implication, and have already reported an unsolved Wanted
from outside the implication. It is possible that all Wanteds inside
the implication have been rewritten by the outer Wanted, so we shouldn't
throw an assertion failure in that case.

Fixes #21405
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/78ec692d9c8d6d138f68e179a7ca57784daa2342" style="color: #1068bf;">78ec692d</a></strong>
<div>
<span>by Andreas Klebinger</span>
<i>at 2022-04-22T08:01:33-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>Mention new MutableByteArray# wrapper in base changelog.
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/56d7cb538fc486bdb92ec9c911e7ad04f5522b77" style="color: #1068bf;">56d7cb53</a></strong>
<div>
<span>by Eric Lindblad</span>
<i>at 2022-04-22T14:13:32-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>unlist announce
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/1e4dcf230a50b00350e084ca43e9d098ff865b22" style="color: #1068bf;">1e4dcf23</a></strong>
<div>
<span>by sheaf</span>
<i>at 2022-04-22T14:14:12-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>decideMonoTyVars: account for CoVars in candidates

The "candidates" passed to decideMonoTyVars can contain coercion holes.
This is because we might well decide to quantify over some unsolved
equality constraints, as long as they are not definitely insoluble.

In that situation, decideMonoTyVars was passing a set of type variables
that was not closed over kinds to closeWrtFunDeps, which was tripping
up an assertion failure.

Fixes #21404
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/2c541f99f5a83cee873b76b3bd46e4d617f5bcd7" style="color: #1068bf;">2c541f99</a></strong>
<div>
<span>by Simon Peyton Jones</span>
<i>at 2022-04-22T14:14:47-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>Improve floated dicts in Specialise

Second fix to #21391.  It turned out that we missed calling
bringFloatedDictsIntoScope when specialising imports, which
led to the same bug as before.

I refactored to move that call to a single place, in specCalls,
so we can't forget it.

This meant making `FloatedDictBinds` into its own type, pairing
the dictionary bindings themselves with the set of their binders.
Nicer this way.
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/0950e2c49c96465ee1e82a073a88f6fecd20ccde" style="color: #1068bf;">0950e2c4</a></strong>
<div>
<span>by Ben Gamari</span>
<i>at 2022-04-25T10:18:17-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>hadrian: Ensure that --extra-lib-dirs are used

Previously we only took `extraLibDirs` and friends from the package
description, ignoring any contribution from the `LocalBuildInfo`. Fix
this.

Fixes #20566.
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/53cc93ae3c9b939fff8407ee588dff89f7f92a12" style="color: #1068bf;">53cc93ae</a></strong>
<div>
<span>by Ben Gamari</span>
<i>at 2022-04-25T10:18:17-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>hadrian: Drop redundant include directories

The package-specific include directories in
Settings.Builders.Common.cIncludeDirs are now redundant since they now
come from Cabal.

Closes #20566.
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/b2721819f391ab49871271283f32df54810c4387" style="color: #1068bf;">b2721819</a></strong>
<div>
<span>by Ben Gamari</span>
<i>at 2022-04-25T10:18:17-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>hadrian: Clean up handling of libffi dependencies
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/18e5103f0f73570e31421e67e54f1693936f5efd" style="color: #1068bf;">18e5103f</a></strong>
<div>
<span>by Ben Gamari</span>
<i>at 2022-04-25T10:18:17-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>testsuite: More robust library way detection

Previously `test.mk` would try to determine whether the dynamic,
profiling, and vanilla library ways are available by searching for
`PrimOpWrappers.{,dyn_,p_}hi` in directory reported by `ghc-pkg field
ghc-prim library-dirs`. However, this is extremely fragile as
there is no guarantee that there is only one library directory. To
handle the case of multiple `library-dirs` correct we would
have to carry out the delicate task of tokenising the directory list (in
shell, no less).

Since this isn't a task that I am eager to solve, I have rather moved
the detection logic into the testsuite driver and instead perform a test
compilation in each of the ways. This should be more robust than the
previous approach.

I stumbled upon this while fixing #20579.
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/6c7a49139cf120a9bf9370ff472aa2839b4289c6" style="color: #1068bf;">6c7a4913</a></strong>
<div>
<span>by Ben Gamari</span>
<i>at 2022-04-25T10:18:17-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>testsuite: Cabalify ghc-config

To ensure that the build benefits from Hadrian's usual logic for building
packages, avoiding #21409.

Closes #21409.
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/9af091f7ced3c76abf86b607d775c0746bfbabd7" style="color: #1068bf;">9af091f7</a></strong>
<div>
<span>by Ben Gamari</span>
<i>at 2022-04-25T10:18:53-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>rts: Factor out built-in GC roots
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/e7c4719d8990a58abd9073731a36922a843ba797" style="color: #1068bf;">e7c4719d</a></strong>
<div>
<span>by Ben Gamari</span>
<i>at 2022-04-25T10:18:54-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>Ensure that wired-in exception closures aren't GC'd

As described in Note [Wired-in exceptions are not CAFfy], a small set of
built-in exception closures get special treatment in the code generator,
being declared as non-CAFfy despite potentially containing CAF
references. The original intent of this treatment for the RTS to then
add StablePtrs for each of the closures, ensuring that they are not
GC'd. However, this logic was not applied consistently and eventually
removed entirely in 951c1fb0. This lead to #21141.

Here we fix this bug by reintroducing the StablePtrs and document the
status quo.

Closes #21141.
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/9587726f53e51e429bdb8d8ca11f9de4d0902b77" style="color: #1068bf;">9587726f</a></strong>
<div>
<span>by Ben Gamari</span>
<i>at 2022-04-25T10:18:54-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>testsuite: Add testcase for #21141
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/cb71226f9537e542c6eadb90d8006e525c941605" style="color: #1068bf;">cb71226f</a></strong>
<div>
<span>by Ben Gamari</span>
<i>at 2022-04-25T10:19:29-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>Drop dead code in GHC.Linker.Static.linkBinary'

Previously we supported building statically-linked executables using
libtool. However, this was dropped in
91262e75dd1d80f8f28a3922934ec7e59290e28c in favor of using ar/ranlib
directly. Consequently we can drop this logic.

Fixes #18826.
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/9420d26b4b9dd42238d3ec2a92abe0552d37775e" style="color: #1068bf;">9420d26b</a></strong>
<div>
<span>by Ben Gamari</span>
<i>at 2022-04-25T10:19:29-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>Drop libtool path from settings file

GHC no longers uses libtool for linking and therefore this is no longer
necessary.
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/41cf758b3f50554e0aa5240a5898b693758d9670" style="color: #1068bf;">41cf758b</a></strong>
<div>
<span>by Ben Gamari</span>
<i>at 2022-04-25T10:19:29-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>Drop remaining vestiges of libtool

Drop libtool logic from gen-dll, allowing us to drop the remaining logic
from the `configure` script.

Strangely, this appears to reliably reduce compiler allocations of
T16875 on Windows.

Closes #18826.

Metric Decrease:
    T16875
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/e09afbf2a998beea7783e3de5dce5dd3c6ff23db" style="color: #1068bf;">e09afbf2</a></strong>
<div>
<span>by Ben Gamari</span>
<i>at 2022-04-25T10:20:05-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>rts: Refactor handling of dead threads' stacks

This fixes a bug that @JunmingZhao42 and I noticed while working on her
MMTK port. Specifically, in stg_stop_thread we used stg_enter_info as a
sentinel at the tail of a stack after a thread has completed. However,
stg_enter_info expects to have a two-field payload, which we do not
push. Consequently, if the GC ends up somehow the stack it will attempt
to interpret data past the end of the stack as the frame's fields,
resulting in unsound behavior.

To fix this I eliminate this hacky use of `stg_stop_thread` and instead
introduce a new stack frame type, `stg_dead_thread_info`. Not only does
this eliminate the potential for the previously mentioned memory
unsoundness but it also more clearly captures the intended structure of
the dead threads' stacks.
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/e76705cf9548ada18020b14cb049aece8660f749" style="color: #1068bf;">e76705cf</a></strong>
<div>
<span>by Ben Gamari</span>
<i>at 2022-04-25T10:20:05-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>rts: Improve documentation of closure types

Also drops the unused TREC_COMMITTED transaction state.
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/f2c08124b30eb87482dc0ed1d7199aa58950e309" style="color: #1068bf;">f2c08124</a></strong>
<div>
<span>by Bodigrim</span>
<i>at 2022-04-25T10:20:44-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>Document behaviour of RULES with KnownNat
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/360dc2bc2de3ddcb9c77ce85db7f257d95d9ce56" style="color: #1068bf;">360dc2bc</a></strong>
<div>
<span>by Li-yao Xia</span>
<i>at 2022-04-25T19:13:06+00:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>Fix rendering of liftA haddock
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/16df6058cd234b81b3e4a86e986f1598b45e1cd1" style="color: #1068bf;">16df6058</a></strong>
<div>
<span>by Ben Gamari</span>
<i>at 2022-04-27T10:02:25-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>testsuite: Report minimum and maximum stat changes

As suggested in #20733.
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/e39cab6256706e23d1e16177913dae190fe32e4f" style="color: #1068bf;">e39cab62</a></strong>
<div>
<span>by Fabian Thorand</span>
<i>at 2022-04-27T10:03:03-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>Defer freeing of mega block groups

Solves the quadratic worst case performance of freeing megablocks that
was described in issue #19897.

During GC runs, we now keep a secondary free list for megablocks that is
neither sorted, nor coalesced. That way, free becomes an O(1) operation
at the expense of not being able to reuse memory for larger allocations.
At the end of a GC run, the secondary free list is sorted and then
merged into the actual free list in a single pass.

That way, our worst case performance is O(n log(n)) rather than O(n^2).

We postulate that temporarily losing coalescense during a single GC run
won't have any adverse effects in practice because:

- We would need to release enough memory during the GC, and then after
  that (but within the same GC run) allocate a megablock group of more
  than one megablock. This seems unlikely, as large objects are not
  copied during GC, and so we shouldn't need such large allocations
  during a GC run.
- Allocations of megablock groups of more than one megablock are rare.
  They only happen when a single heap object is large enough to require
  that amount of space. Any allocation areas that are supposed to hold
  more than one heap object cannot use megablock groups, because only
  the first megablock of a megablock group has valid `bdescr`s. Thus,
  heap object can only start in the first megablock of a group, not in
  later ones.
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/5de6be0c9120550aaa15534d0a1466018eff137a" style="color: #1068bf;">5de6be0c</a></strong>
<div>
<span>by Fabian Thorand</span>
<i>at 2022-04-27T10:03:03-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>Add note about inefficiency in returnMemoryToOS
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/8bef471aaaf3cf40d68786f06b2b9f65d3d851e7" style="color: #1068bf;">8bef471a</a></strong>
<div>
<span>by sheaf</span>
<i>at 2022-04-27T10:03:43-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>Ensure that Any is Boxed in FFI imports/exports

We should only accept the type `Any` in foreign import/export
declarations when it has type `Type` or `UnliftedType`.
This patch adds a kind check, and a special error message triggered by
occurrences of `Any` in foreign import/export declarations at other
kinds.

Fixes #21305
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/ba3d4e1c43e6772f11f9a7105ef4bf3be8efb2df" style="color: #1068bf;">ba3d4e1c</a></strong>
<div>
<span>by Ben Gamari</span>
<i>at 2022-04-27T10:04:19-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>Basic response file support

Here we introduce support into our command-line parsing infrastructure
and driver for handling gnu-style response file arguments,
typically used to work around platform command-line length limitations.

Fixes #16476.
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/3b6061be6bf89f653147a010193d7701d3e6182c" style="color: #1068bf;">3b6061be</a></strong>
<div>
<span>by Ben Gamari</span>
<i>at 2022-04-27T10:04:19-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>testsuite: Add test for #16476
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/75bf1337e6623286b3cbf1a1c42dd083c50359d3" style="color: #1068bf;">75bf1337</a></strong>
<div>
<span>by Matthew Pickering</span>
<i>at 2022-04-27T10:04:55-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>ci: Fix cabal-reinstall job

It's quite nice we can do this by mostly deleting code

Fixes #21373
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/2c00d9048873f3d6d7e188dd1ef7f670a83a5c94" style="color: #1068bf;">2c00d904</a></strong>
<div>
<span>by Matthew Pickering</span>
<i>at 2022-04-27T10:04:55-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>ci: Add test to check that release jobs have profiled libs
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/50d78d3bad4fda94ca32fd484578543b03aa0a6c" style="color: #1068bf;">50d78d3b</a></strong>
<div>
<span>by Matthew Pickering</span>
<i>at 2022-04-27T10:04:55-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>ci: Explicitly handle failures in test_hadrian

We also disable the stage1 testing which is broken.

Related to #21072
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/2dcdf091960d3b8bafc23d0ab0e0be8aa6871d8b" style="color: #1068bf;">2dcdf091</a></strong>
<div>
<span>by Matthew Pickering</span>
<i>at 2022-04-27T10:04:55-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>ci: Fix shell command
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/55c84123fd9af420de1600309a6fbe73f1975094" style="color: #1068bf;">55c84123</a></strong>
<div>
<span>by Matthew Pickering</span>
<i>at 2022-04-27T10:04:55-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>bootstrap: Add bootstrapping files for ghc-9_2_2

Fixes #21373
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/c7ee0be6bc1573b024f425dcf5fe6d91389e8185" style="color: #1068bf;">c7ee0be6</a></strong>
<div>
<span>by Matthew Pickering</span>
<i>at 2022-04-27T10:04:55-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>ci: Add linting job which checks authors are not GHC CI
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/23aad124ff76ad4bb2ba697d4d1e306e7cc595ac" style="color: #1068bf;">23aad124</a></strong>
<div>
<span>by Adam Sandberg Ericsson</span>
<i>at 2022-04-27T10:05:31-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>rts: state explicitly what evacuate and scavange mean in the copying gc
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/318e0005b5a3a522854ced7162f3eee95f964bd9" style="color: #1068bf;">318e0005</a></strong>
<div>
<span>by Ben Gamari</span>
<i>at 2022-04-27T10:06:07-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>rts/eventlog: Don't attempt to flush if there is no writer

If the user has not configured a writer then there is nothing to flush.
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/ee11d04363ed8aa1d73a0cda16076a39e668d163" style="color: #1068bf;">ee11d043</a></strong>
<div>
<span>by Ben Gamari</span>
<i>at 2022-04-27T10:06:07-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>Enable eventlog support in all ways by default

Here we deprecate the eventlogging RTS ways and instead enable eventlog
support in the remaining ways. This simplifies packaging and reduces GHC
compilation times (as we can eliminate two whole compilations of the RTS)
while simplifying the end-user story. The trade-off is a small increase
in binary sizes in the case that the user does not want eventlogging
support, but we think that this is a fine trade-off.

This also revealed a latent RTS bug: some files which included `Cmm.h`
also assumed that it defined various macros which were in fact defined
by `Config.h`, which `Cmm.h` did not include. Fixing this in turn
revealed that `StgMiscClosures.cmm` failed to import various spinlock
statistics counters, as evidenced by the failed unregisterised build.

Closes #18948.
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/a2e5ab705dada18a88d8594b299c9950da50adb0" style="color: #1068bf;">a2e5ab70</a></strong>
<div>
<span>by Andreas Klebinger</span>
<i>at 2022-04-27T10:06:43-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>Change `-dsuppress-ticks` to only suppress non-code ticks.

This means cost centres and coverage ticks will still be present in
output. Makes using -dsuppress-all more convenient when looking at
profiled builds.
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/ec9d7e04d0d6730fe63bdce3eb824f8f35fb0d7b" style="color: #1068bf;">ec9d7e04</a></strong>
<div>
<span>by Ben Gamari</span>
<i>at 2022-04-27T10:07:21-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>Bump text submodule.

This should fix #21352
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/c3105be4bbfeb5005d8c585b5a3f91a4c3ee5b4b" style="color: #1068bf;">c3105be4</a></strong>
<div>
<span>by Bodigrim</span>
<i>at 2022-04-27T10:08:01-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>Documentation for setLocaleEncoding
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/7f618fd308b8db016009254aa8bbeb935d9d30e6" style="color: #1068bf;">7f618fd3</a></strong>
<div>
<span>by sheaf</span>
<i>at 2022-04-27T10:08:40-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>Update docs for change to type-checking plugins

There was no mention of the changes to type-checking plugins
in the 9.4.1 notes, and the extending_ghc documentation contained
a reference to an outdated type.
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/4419dd3afe2de8b24d2dd10fe6b4c7370b861d6d" style="color: #1068bf;">4419dd3a</a></strong>
<div>
<span>by Adam Sandberg Ericsson</span>
<i>at 2022-04-27T10:09:18-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>rts: add some more documentation to StgWeak closure type
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/5a7f0deee64f32777db8b87b056b4e9ba154093f" style="color: #1068bf;">5a7f0dee</a></strong>
<div>
<span>by Matthew Pickering</span>
<i>at 2022-04-27T10:09:54-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>Give Cmm files fake ModuleNames which include full filepath

This fixes the initialisation functions when using -prof or
-finfo-table-map.

Fixes #21370
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/81cf52bb301592ff3d043d03eb9a0d547891a3e1" style="color: #1068bf;">81cf52bb</a></strong>
<div>
<span>by sheaf</span>
<i>at 2022-04-27T10:10:33-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>Mark GHC.Prim.PtrEq as Unsafe

This module exports unsafe pointer equality operations,
so we accordingly mark it as Unsafe.

Fixes #21433
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/f6a8185d741adec8b0cc89749bc660128eca57fe" style="color: #1068bf;">f6a8185d</a></strong>
<div>
<span>by Ben Gamari</span>
<i>at 2022-04-28T09:10:31+00:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>testsuite: Add performance test for #14766

This distills the essence of the Sigs.hs program found in the ticket.
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/c7a3dc292a7ee7d1639955b6343b0d3c755c7248" style="color: #1068bf;">c7a3dc29</a></strong>
<div>
<span>by Douglas Wilson</span>
<i>at 2022-04-28T18:54:44-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>hadrian: Add Monoid instance to Way
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/654bafea5bd4a1ce82af440c90f5fa38ac532503" style="color: #1068bf;">654bafea</a></strong>
<div>
<span>by Douglas Wilson</span>
<i>at 2022-04-28T18:54:44-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>hadrian: Enrich flavours to build profiled/debugged/threaded ghcs per stage
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/4ad559c8142e52f4a97076c813471a2848ed4e0f" style="color: #1068bf;">4ad559c8</a></strong>
<div>
<span>by Douglas Wilson</span>
<i>at 2022-04-28T18:54:44-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>hadrian: add debug_ghc and debug_stage1_ghc flavour transformers
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/f9728fdbe58fd8d8ccabdf7a9fecff83456dd0f8" style="color: #1068bf;">f9728fdb</a></strong>
<div>
<span>by Douglas Wilson</span>
<i>at 2022-04-28T18:54:44-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>hadrian: Don't pass -rtsopts when building libraries
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/769279e65a67ae67bd707152f82af6b1b1bbf133" style="color: #1068bf;">769279e6</a></strong>
<div>
<span>by Matthew Pickering</span>
<i>at 2022-04-28T18:54:44-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>testsuite: Fix calculation about whether to pass -dynamic to compiler
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/da8ae7f273fcbb57ab5630aa1160c586e64fc0ed" style="color: #1068bf;">da8ae7f2</a></strong>
<div>
<span>by Ben Gamari</span>
<i>at 2022-04-28T18:55:20-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>hadrian: Clean up flavour transformer definitions

Previously the `ipe` and `omit_pragmas` transformers were hackily
defined using the textual key-value syntax. Fix this.
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/6130518409cd44de620489a2981fd3075dfb94a1" style="color: #1068bf;">61305184</a></strong>
<div>
<span>by Ben Gamari</span>
<i>at 2022-04-28T18:55:56-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>Bump process submodule
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/a8c993910ea79264775105a09ad6c80fb52400db" style="color: #1068bf;">a8c99391</a></strong>
<div>
<span>by sheaf</span>
<i>at 2022-04-28T18:56:37-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>Fix unification of ConcreteTvs, removing IsRefl#

This patch fixes the unification of concrete type variables.
The subtlety was that unifying concrete metavariables is more subtle
than other metavariables, as decomposition is possible. See the Note
[Unifying concrete metavariables], which explains how we unify a
concrete type variable with a type 'ty' by concretising 'ty', using
the function 'GHC.Tc.Utils.Concrete.concretise'.

This can be used to perform an eager syntactic check for concreteness,
allowing us to remove the IsRefl# special predicate. Instead of emitting
two constraints `rr ~# concrete_tv` and `IsRefl# rr concrete_tv`, we
instead concretise 'rr'. If this succeeds we can fill 'concrete_tv',
and otherwise we directly emit an error message to the typechecker
environment instead of deferring. We still need the error message
to be passed on (instead of directly thrown), as we might benefit from
further unification in which case we will need to zonk the stored types.
To achieve this, we change the 'wc_holes' field of 'WantedConstraints'
to 'wc_errors', which stores general delayed errors. For the moement,
a delayed error is either a hole, or a syntactic equality error.

hasFixedRuntimeRep_MustBeRefl is now hasFixedRuntimeRep_syntactic, and
hasFixedRuntimeRep has been refactored to directly return the most
useful coercion for PHASE 2 of FixedRuntimeRep.

This patch also adds a field ir_frr to the InferResult datatype,
holding a value of type Maybe FRROrigin. When this value is not
Nothing, this means that we must fill the ir_ref field with a type
which has a fixed RuntimeRep.
When it comes time to fill such an ExpType, we ensure that the type
has a fixed RuntimeRep by performing a representation-polymorphism
check with the given FRROrigin
This is similar to what we already do to ensure we fill an Infer
ExpType with a type of the correct TcLevel.
This allows us to properly perform representation-polymorphism checks
on 'Infer' 'ExpTypes'.

The fillInferResult function had to be moved to GHC.Tc.Utils.Unify
to avoid a cyclic import now that it calls hasFixedRuntimeRep.

This patch also changes the code in matchExpectedFunTys to make use
of the coercions, which is now possible thanks to the previous change.
This implements PHASE 2 of FixedRuntimeRep in some situations.
For example, the test cases T13105 and T17536b are now both accepted.

Fixes #21239 and #21325

-------------------------
Metric Decrease:
    T18223
    T5631
-------------------------
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/43bd897dd9fc41265ad5d5ce3eb6cf09b9224f90" style="color: #1068bf;">43bd897d</a></strong>
<div>
<span>by Simon Peyton Jones</span>
<i>at 2022-04-28T18:57:13-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>Add INLINE pragmas for Enum helper methods

As #21343 showed, we need to be super-certain that the "helper
methods" for Enum instances are actually inlined or specialised.

I also tripped over this when I discovered that numericEnumFromTo
and friends had no pragmas at all, so their performance was very
fragile.  If they weren't inlined, all bets were off.  So I've added
INLINE pragmas for them too.

See new Note [Inline Enum method helpers] in GHC.Enum.

I also expanded Note [Checking for INLINE loop breakers] in
GHC.Core.Lint to explain why an INLINE function might temporarily
be a loop breaker -- this was the initial bug report in #21343.

Strangely we get a 16% runtime allocation decrease in
perf/should_run/T15185, but only on i386.  Since it moves in the right
direction I'm disinclined to investigate, so I'll accept it.

Metric Decrease:
    T15185
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/ca1434e318872a2a3e4fab530423d2fc99254709" style="color: #1068bf;">ca1434e3</a></strong>
<div>
<span>by Ben Gamari</span>
<i>at 2022-04-28T18:57:49-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>configure: Bump GHC version to 9.5

Bumps haddock submodule.
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/292e39713e2e17ca902e575d6a41a6f95ee444b2" style="color: #1068bf;">292e3971</a></strong>
<div>
<span>by Teo Camarasu</span>
<i>at 2022-04-28T18:58:28-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>add since annotation for GHC.Stack.CCS.whereFrom
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/905206d67854edbc89978bd554724f57dc8553c2" style="color: #1068bf;">905206d6</a></strong>
<div>
<span>by Tamar Christina</span>
<i>at 2022-04-28T22:19:34-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>winio: add support to iserv.
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/d182897e738ae1fb594ddc88cc27f607266ef5d1" style="color: #1068bf;">d182897e</a></strong>
<div>
<span>by Tamar Christina</span>
<i>at 2022-04-28T22:19:34-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>Remove unused line</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/22cf46980ad9b57eb428e7be045a1bc198b6380d" style="color: #1068bf;">22cf4698</a></strong>
<div>
<span>by Matthew Pickering</span>
<i>at 2022-04-28T22:20:10-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>Revert "rts: Refactor handling of dead threads' stacks"

This reverts commit e09afbf2a998beea7783e3de5dce5dd3c6ff23db.
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/8ed571353c0d6d7e7039686809ea95309bfb32d4" style="color: #1068bf;">8ed57135</a></strong>
<div>
<span>by Matthew Pickering</span>
<i>at 2022-04-29T04:11:29-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>Provide efficient unionMG function for combining two module graphs.

This function is used by API clients (hls).

This supercedes !6922
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/0235ff02285c2265e478b9056e9536f15745f4c9" style="color: #1068bf;">0235ff02</a></strong>
<div>
<span>by Ben Gamari</span>
<i>at 2022-04-29T04:12:05-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>Bump bytestring submodule

Update to current `master`.
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/0198841877f6f04269d6050892b98b5c3807ce4c" style="color: #1068bf;">01988418</a></strong>
<div>
<span>by Matthew Pickering</span>
<i>at 2022-04-29T04:12:05-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>testsuite: Normalise package versions in UnusedPackages test
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/724d0dc04645b21865bcd1877b7cc77e9a3fe9b2" style="color: #1068bf;">724d0dc0</a></strong>
<div>
<span>by Matthew Pickering</span>
<i>at 2022-04-29T08:59:42+00:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>testsuite: Deduplicate ways correctly

This was leading to a bug where we would run a profasm test twice which
led to invalid junit.xml which meant the test results database was not
being populated for the fedora33-perf job.
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/5630dde68185f96da026a4e0c722fe6631633299" style="color: #1068bf;">5630dde6</a></strong>
<div>
<span>by Ben Gamari</span>
<i>at 2022-04-29T13:06:20-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>rts: Refactor handling of dead threads' stacks

This fixes a bug that @JunmingZhao42 and I noticed while working on her
MMTK port. Specifically, in stg_stop_thread we used stg_enter_info as a
sentinel at the tail of a stack after a thread has completed. However,
stg_enter_info expects to have a two-field payload, which we do not
push. Consequently, if the GC ends up somehow the stack it will attempt
to interpret data past the end of the stack as the frame's fields,
resulting in unsound behavior.

To fix this I eliminate this hacky use of `stg_stop_thread` and instead
introduce a new stack frame type, `stg_dead_thread_info`. Not only does
this eliminate the potential for the previously mentioned memory
unsoundness but it also more clearly captures the intended structure of
the dead threads' stacks.
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/0cdef80783b95ea2d2a49c5a9ee4ec06cde3958e" style="color: #1068bf;">0cdef807</a></strong>
<div>
<span>by parsonsmatt</span>
<i>at 2022-04-30T16:51:12-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>Add a note about instance visibility across component boundaries

In principle, the *visible* instances are
* all instances defined in a prior top-level declaration group
  (see docs on `newDeclarationGroup`), or
* all instances defined in any module transitively imported by the
  module being compiled

However, actually searching all modules transitively below the one being
compiled is unreasonably expensive, so `reifyInstances` will report only the
instance for modules that GHC has had some cause to visit during this
compilation.  This is a shortcoming: `reifyInstances` might fail to report
instances for a type that is otherwise unusued, or instances defined in a
different component.  You can work around this shortcoming by explicitly importing the modules
whose instances you want to be visible. GHC issue #20529
has some discussion around this.

Fixes #20529
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/e2dd884aa9ffcac5b4bf0d8c826d07ffd18e5d6e" style="color: #1068bf;">e2dd884a</a></strong>
<div>
<span>by Ryan Scott</span>
<i>at 2022-04-30T16:51:47-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>Make mkFunCo take AnonArgFlags into account

Previously, whenever `mkFunCo` would produce reflexive coercions, it would
use `mkVisFunTy` to produce the kind of the coercion. However, `mkFunCo` is
also used to produce coercions between types of the form `ty1 => ty2` in
certain places. This has the unfortunate side effect of causing the type of
the coercion to appear as `ty1 -> ty2` in certain error messages, as spotted
in #21328.

This patch address this by changing replacing the use of `mkVisFunTy` with
`mkFunctionType` in `mkFunCo`. `mkFunctionType` checks the kind of `ty1` and
makes the function arrow `=>` instead of `->` if `ty1` has kind `Constraint`,
so this should always produce the correct `AnonArgFlag`. As a result, this
patch fixes part (2) of #21328.

This is not the only possible way to fix #21328, as the discussion on that
issue lists some possible alternatives. Ultimately, it was concluded that the
alternatives would be difficult to maintain, and since we already use
`mkFunctionType` in `coercionLKind` and `coercionRKind`, using `mkFunctionType`
in `mkFunCo` is consistent with this choice. Moreover, using `mkFunctionType`
does not regress the performance of any test case we have in GHC's test suite.
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/170da54f8a9100b3f9ef02389af5834180b0cd27" style="color: #1068bf;">170da54f</a></strong>
<div>
<span>by Ben Gamari</span>
<i>at 2022-04-30T16:52:27-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>Convert More Diagnostics (#20116)

Replaces uses of `TcRnUnknownMessage` with proper diagnostics
constructors.
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/39edc7b42cf9ad54e19679a3b3494e3a166eaabe" style="color: #1068bf;">39edc7b4</a></strong>
<div>
<span>by Marius Ghita</span>
<i>at 2022-04-30T16:53:06-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>Update user guide example rewrite rules formatting

Change the rewrite rule examples to include a space between the
composition of `f` and `g` in the map rewrite rule examples.

Without this change, if the user has locally enabled the extension
OverloadedRecordDot the copied example will result in a compile time
error that `g` is not a field of `f`.

```
    • Could not deduce (GHC.Records.HasField "g" (a -> b) (a1 -> b))
        arising from selecting the field ‘g’
```
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/2e951e48d9df131f55c2b939e283d4d38004937a" style="color: #1068bf;">2e951e48</a></strong>
<div>
<span>by Adam Sandberg Ericsson</span>
<i>at 2022-04-30T16:53:42-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>ghc-boot: export typesynonyms from GHC.Utils.Encoding

This makes the Haddocks easier to understand.
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/d8cbc77e755f418ec40f15c7785c16e7a0309722" style="color: #1068bf;">d8cbc77e</a></strong>
<div>
<span>by Adam Sandberg Ericsson</span>
<i>at 2022-04-30T16:54:18-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>users guide: add categories to some flags
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/d0f14fadd41f7bf032c48c3eceeaff3a85318426" style="color: #1068bf;">d0f14fad</a></strong>
<div>
<span>by Chris Martin</span>
<i>at 2022-04-30T16:54:57-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>hacking guide: mention the core libraries committee
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/34b2820018ee05336be061aabea7d421bdd49ab9" style="color: #1068bf;">34b28200</a></strong>
<div>
<span>by Matthew Pickering</span>
<i>at 2022-04-30T16:55:32-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>Revert "Make the specialiser handle polymorphic specialisation"

This reverts commit ef0135934fe32da5b5bb730dbce74262e23e72e8.

See ticket #21229

-------------------------
Metric Decrease:
    T15164
Metric Increase:
    T13056
-------------------------
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/ee891c1e25028ca4fb73e89a59b6538b516deae8" style="color: #1068bf;">ee891c1e</a></strong>
<div>
<span>by Matthew Pickering</span>
<i>at 2022-04-30T16:55:32-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>Add test for T21229
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/ab677cc856f7d479b69b8d73e54247fa053cf8d8" style="color: #1068bf;">ab677cc8</a></strong>
<div>
<span>by Matthew Pickering</span>
<i>at 2022-04-30T16:56:08-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>Hadrian: Update README about the flavour/testsuite contract

There have been a number of tickets about non-tested flavours not
passing the testsuite.. this is expected and now noted in the
documentation. You use other flavours to run the testsuite at your own
risk.

Fixes #21418
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/b57b5b929bbb287b8392bfd015bf6adccdfac875" style="color: #1068bf;">b57b5b92</a></strong>
<div>
<span>by Ben Gamari</span>
<i>at 2022-04-30T16:56:44-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>rts/m32: Fix assertion failure

This fixes an assertion failure in the m32 allocator due to the
imprecisely specified preconditions of `m32_allocator_push_filled_list`.
Specifically, the caller must ensure that the page type is set to filled
prior to calling `m32_allocator_push_filled_list`.

While this issue did result in an assertion failure in the debug RTS,
the issue is in fact benign.
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/a7053a6c04496fa26a62bb3824ccc9664909a6ec" style="color: #1068bf;">a7053a6c</a></strong>
<div>
<span>by sheaf</span>
<i>at 2022-04-30T16:57:23-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>Testsuite driver: don't crash on empty metrics

The testsuite driver crashed when trying to display minimum/maximum
performance changes when there are no metrics (i.e. there is
no baseline available). This patch fixes that.
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/636f7c62b1c30d130d88d6ad0763d894a8513e8a" style="color: #1068bf;">636f7c62</a></strong>
<div>
<span>by Andreas Klebinger</span>
<i>at 2022-05-01T22:21:17-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>StgLint: Check that functions are applied to compatible runtime reps

We use compatibleRep to compare reps, and avoid checking functions with
levity polymorphic types because of #21399.
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/60071076d880c9ee189c93e0105a9b3d1ff87a3f" style="color: #1068bf;">60071076</a></strong>
<div>
<span>by Hécate Moonlight</span>
<i>at 2022-05-01T22:21:55-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>Add documentation to the ByteArray# primetype.

close #21417
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/2b2e30203a125dc5bfe70f3df7b39787aaf62b1e" style="color: #1068bf;">2b2e3020</a></strong>
<div>
<span>by Andreas Klebinger</span>
<i>at 2022-05-01T22:22:31-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>exprIsDeadEnd: Use isDeadEndAppSig to check if a function appliction is bottoming.

We used to check the divergence and that the number of arguments > arity.
But arity zero represents unknown arity so this was subtly broken for a long time!

We would check if the saturated function diverges, and if we applied >=arity arguments.
But for unknown arity functions any number of arguments is >=idArity.

This fixes #21440.
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/4eaf0f33c10b7e8fe544f848520df075fc69ef25" style="color: #1068bf;">4eaf0f33</a></strong>
<div>
<span>by Eric Lindblad</span>
<i>at 2022-05-01T22:23:11-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>typos</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/fc58df907aac1177b1fd2ec43694fd492ce170da" style="color: #1068bf;">fc58df90</a></strong>
<div>
<span>by Niklas Hambüchen</span>
<i>at 2022-05-02T08:59:27+00:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>libraries/base: docs: Explain relationshipt between `finalizeForeignPtr` and `*Conc*` creation

Fixes https://gitlab.haskell.org/ghc/ghc/-/issues/21420
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/3e400f204e2b88c501c734f2c4244910ffc0d5dc" style="color: #1068bf;">3e400f20</a></strong>
<div>
<span>by Krzysztof Gogolewski</span>
<i>at 2022-05-02T18:29:23-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>Remove obsolete code in CoreToStg

Note [Nullary unboxed tuple] was removed in e9e61f18a548b70693f4.
This codepath is tested by T15696_3.
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/4a7809284354025d07221f0aeca10a7992d23677" style="color: #1068bf;">4a780928</a></strong>
<div>
<span>by Krzysztof Gogolewski</span>
<i>at 2022-05-02T18:29:24-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>Fix several note references
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/15ffe2b02e927d9cc2cc0f97dddee38decea5f56" style="color: #1068bf;">15ffe2b0</a></strong>
<div>
<span>by Sebastian Graf</span>
<i>at 2022-05-03T20:11:51+02:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>Assume at least one evaluation for nested SubDemands (#21081, #21133)

See the new `Note [SubDemand denotes at least one evaluation]`.

A demand `n :* sd` on a let binder `x=e` now means

> "`x` was evaluated `n` times and in any program trace it is evaluated, `e` is
>  evaluated deeply in sub-demand `sd`."

The "any time it is evaluated" premise is what this patch adds. As a result,
we get better nested strictness. For example (T21081)
```hs
f :: (Bool, Bool) -> (Bool, Bool)
f pr = (case pr of (a,b) -> a /= b, True)
-- before: <MP(L,L)>
-- after:  <MP(SL,SL)>

g :: Int -> (Bool, Bool)
g x = let y = let z = odd x in (z,z) in f y
```
The change in demand signature "before" to "after" allows us to case-bind `z`
here.

Similarly good things happen for the `sd` in call sub-demands `Cn(sd)`, which
allows for more eta-reduction (which is only sound with `-fno-pedantic-bottoms`,
albeit).

We also fix #21085, a surprising inconsistency with `Poly` to `Call` sub-demand
expansion.

In an attempt to fix a regression caused by less inlining due to eta-reduction
in T15426, I eta-expanded the definition of `elemIndex` and `elemIndices`, thus
fixing #21345 on the go.

The main point of this patch is that it fixes #21081 and #21133.

Annoyingly, I discovered that more precise demand signatures for join points can
transform a program into a lazier program if that join point gets floated to the
top-level, see #21392. There is no simple fix at the moment, but !5349 might.
Thus, we accept a ~5% regression in `MultiLayerModulesTH_OneShot`, where #21392
bites us in `addListToUniqDSet`. T21392 reliably reproduces the issue.

Surprisingly, ghc/alloc perf on Windows improves much more than on other jobs, by
0.4% in the geometric mean and by 2% in T16875.

Metric Increase:
    MultiLayerModulesTH_OneShot
Metric Decrease:
    T16875
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/948c7e40b29d3a9c71f2a968f90944319b1b03c2" style="color: #1068bf;">948c7e40</a></strong>
<div>
<span>by Andreas Klebinger</span>
<i>at 2022-05-04T09:57:34-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>CoreLint - When checking for levity polymorphism look through more ticks.

For expressions like `(scc<cc_name> primOp#) arg1` we should also look
at arg1 to determine if we call primOp# at a fixed runtime rep.

This is what corePrep already does but CoreLint didn't yet. This patch
will bring them in sync in this regard.

It also uses tickishFloatable in CorePrep instead of CorePrep having
it's own slightly differing definition of when a tick is floatable.
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/85bc73bd8fab17ad80f925b45e8b4b059278ba6c" style="color: #1068bf;">85bc73bd</a></strong>
<div>
<span>by Alexis King</span>
<i>at 2022-05-04T09:58:14-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>genprimopcode: Support Unicode properly
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/063d485ebfb366165140465b8901d1666e642cd6" style="color: #1068bf;">063d485e</a></strong>
<div>
<span>by Alexis King</span>
<i>at 2022-05-04T09:58:14-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>genprimopcode: Replace LaTeX documentation syntax with Haddock

The LaTeX documentation generator does not seem to have been used for
quite some time, so the LaTeX-to-Haddock preprocessing step has become a
pointless complication that makes documenting the contents of GHC.Prim
needlessly difficult. This commit replaces the LaTeX syntax with the
Haddock it would have been converted into, anyway, though with an
additional distinction: it uses single quotes in places to instruct
Haddock to generate hyperlinks to bindings. This improves the quality of
the generated output.
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/d61f742876bdf2cd32e76f7bca389106ad99a316" style="color: #1068bf;">d61f7428</a></strong>
<div>
<span>by Ben Gamari</span>
<i>at 2022-05-04T09:58:50-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>rts/ghc.mk: Only build StgCRunAsm.S when it is needed

Previously the make build system unconditionally included StgCRunAsm.S
in the link, meaning that the RTS would require an execstack
unnecessarily.

Fixes #21478.
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/934a90dd6a34d2d1100506795d5f76cd20e2c599" style="color: #1068bf;">934a90dd</a></strong>
<div>
<span>by Simon Peyton Jones</span>
<i>at 2022-05-04T16:15:34-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>Improve error reporting in generated code

Our error reporting in generated code (via desugaring before
typechecking) only worked when the generated code was just a simple
call. This commit makes it work in nested cases.
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/445d3657aaa0860e725c525c844326557d2f39d5" style="color: #1068bf;">445d3657</a></strong>
<div>
<span>by sheaf</span>
<i>at 2022-05-04T16:16:12-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>Ensure Any is not levity-polymorphic in FFI

The previous patch forgot to account for a type such as

  Any @(TYPE (BoxedRep l))

for a quantified levity variable l.
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/ddd2591c5ca395e39ea36855e5b7e0a3464b7ad8" style="color: #1068bf;">ddd2591c</a></strong>
<div>
<span>by Ben Gamari</span>
<i>at 2022-05-04T16:16:48-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>Update supported LLVM versions

Pull forward minimum version to match 9.2.

(cherry picked from commit c26faa54c5fbe902ccb74e79d87e3fa705e270d1)
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/f9698d7990f2e7e6f20eeb19b4c169126543c823" style="color: #1068bf;">f9698d79</a></strong>
<div>
<span>by Ben Gamari</span>
<i>at 2022-05-04T16:16:48-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>testsuite/T7275: Use sed -r

Darwin requires the `-r` flag to be compatible with GNU sed.

(cherry picked from commit 512338c8feec96c38ef0cf799f3a01b77c967c56)
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/8635323b45b6379d329a2e0cc4c1f5d3d40bb7e7" style="color: #1068bf;">8635323b</a></strong>
<div>
<span>by Ben Gamari</span>
<i>at 2022-05-04T16:16:48-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>gitlab-ci: Use ld.lld on ARMv7/Linux

Due to #16177.

Also cleanup some code style issues.

(cherry picked from commit cc1c3861e2372f464bf9e3c9c4d4bd83f275a1a6)
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/4f6370c773b01b3164592aa224d25c69c3be9930" style="color: #1068bf;">4f6370c7</a></strong>
<div>
<span>by Ben Gamari</span>
<i>at 2022-05-04T16:16:48-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>gitlab-ci: Always preserve artifacts, even in failed jobs

(cherry picked from commit fd08b0c91ea3cab39184f1b1b1aafcd63ce6973f)
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/6f6627541cfa12651d7eca716ebf49848bccb425" style="color: #1068bf;">6f662754</a></strong>
<div>
<span>by Ben Gamari</span>
<i>at 2022-05-04T16:16:48-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>configure: Make sphinx version check more robust

It appears that the version of sphinx shipped on CentOS 7
reports a version string of `Sphinx v1...`. Accept the `v`.

(cherry picked from commit a9197a292fd4b13308dc6664c01351c7239357ed)
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/0032dc383d67ff164d0cfbb717e10f1275547e4c" style="color: #1068bf;">0032dc38</a></strong>
<div>
<span>by Ben Gamari</span>
<i>at 2022-05-04T16:16:48-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>gitlab-ci: Don't run make job in release pipelines

(cherry picked from commit 16d6a8ff011f2194485387dcca1c00f8ddcdbdeb)
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/27f9aab340ab9be8c2018e8f3c71c9c18337428b" style="color: #1068bf;">27f9aab3</a></strong>
<div>
<span>by Ben Gamari</span>
<i>at 2022-05-04T16:16:48-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>gitlab/ci: Fix name of bootstrap compiler directory

Windows binary distributions built with Hadrian have a target platform
suffix in the name of their root directory. Teach `ci.sh` about this
fact.

(cherry picked from commit df5752f39671f6d04d8cd743003469ae5eb67235)
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/b528f0f6803054aaa272f5f289c533d4a0593854" style="color: #1068bf;">b528f0f6</a></strong>
<div>
<span>by Krzysztof Gogolewski</span>
<i>at 2022-05-05T09:05:43-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>Fix several note references, part 2
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/691aacf688c3c8b83fb79256cffb5d9ce40fd359" style="color: #1068bf;">691aacf6</a></strong>
<div>
<span>by Adam Sandberg Ericsson</span>
<i>at 2022-05-05T09:06:19-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>adjustors: align comment about number of integer like arguments with implementation for Amd4+MinGW implementation
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/f050557eba193f92d818de7c9fc261af595173d0" style="color: #1068bf;">f050557e</a></strong>
<div>
<span>by Simon Jakobi</span>
<i>at 2022-05-05T12:47:32-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>Remove two uses of IntMap.size

IntMap.size is O(n). The new code should be slightly more efficient.

The transformation of GHC.CmmToAsm.CFG.calcFreqs.nodeCount can be
described formally as the transformation:

    (\sum_{0}^{n-1} \sum_{0}^{k-1} i_nk) + n
    ==>
    (\sum_{0}^{n-1} 1 + \sum_{0}^{k-1} i_nk)
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/7da90ae34bda878f201da040799498ca873b356b" style="color: #1068bf;">7da90ae3</a></strong>
<div>
<span>by Tom Ellis</span>
<i>at 2022-05-05T12:48:09-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>Explain that 'fail s' should run in the monad itself
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/610d028348ca0aa2721d515961f14cb72416c17c" style="color: #1068bf;">610d0283</a></strong>
<div>
<span>by Matthew Craven</span>
<i>at 2022-05-05T12:48:47-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>Add a test for the bracketing in rules for (^)
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/016f9ca683fc915d661b2c24321d3005a8929a47" style="color: #1068bf;">016f9ca6</a></strong>
<div>
<span>by Matthew Craven</span>
<i>at 2022-05-05T12:48:47-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>Fix broken rules for (^) with known small powers
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/9372aaab0c869036689b9ec112bfbfd7d9cf43bf" style="color: #1068bf;">9372aaab</a></strong>
<div>
<span>by Matthew Craven</span>
<i>at 2022-05-05T12:48:47-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>Give the two T19569 tests different names
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/61901b32b7e680234c0f1173d96d124ecd74bbc5" style="color: #1068bf;">61901b32</a></strong>
<div>
<span>by Andreas Klebinger</span>
<i>at 2022-05-05T12:49:23-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>SpecConstr: Properly create rules for call patterns representing partial applications

The main fix is that in addVoidWorkerArg we now add the argument to the front.

This fixes #21448.

-------------------------
Metric Decrease:
    T16875
-------------------------
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/71278dc7f5d74350cddc0da42c627dc1abfa37b2" style="color: #1068bf;">71278dc7</a></strong>
<div>
<span>by Teo Camarasu</span>
<i>at 2022-05-05T12:50:03-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>add since annotations for instances of ByteArray
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/962ff90bae1ca336bfa0bf63eea30e33bd344384" style="color: #1068bf;">962ff90b</a></strong>
<div>
<span>by sheaf</span>
<i>at 2022-05-05T12:50:42-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>Start 9.6.1-notes

Updates the documentation notes to start tracking changes for
the 9.6.1 release (instead of 9.4).
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/aacb15a3d68216cac0729e15d708be2f13b0eae8" style="color: #1068bf;">aacb15a3</a></strong>
<div>
<span>by Matthew Pickering</span>
<i>at 2022-05-05T20:24:01-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>ci: Add job to check that jobs.yaml is up-to-date

There have been quite a few situations where jobs.yaml has been out of
date. It's better to add a CI job which checks that it's right.

We don't want to use a staged pipeline because it obfuscates the
structure of the pipeline.
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/be7102e5a75a652b7c073360cc1c3766e8f984bf" style="color: #1068bf;">be7102e5</a></strong>
<div>
<span>by Ben Gamari</span>
<i>at 2022-05-05T20:24:37-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>rts: Ensure that XMM registers are preserved on Win64

Previously we only preserved the bottom 64-bits of the callee-saved
128-bit XMM registers, in violation of the Win64 calling convention.
Fix this.

Fixes #21465.
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/73b22ff196160036ac10b762bf3a363fa8a451ad" style="color: #1068bf;">73b22ff1</a></strong>
<div>
<span>by Ben Gamari</span>
<i>at 2022-05-05T20:24:37-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>testsuite: Add test for #21465
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/e2ae9518c0373db7a99058a09388043a66af80ad" style="color: #1068bf;">e2ae9518</a></strong>
<div>
<span>by Ziyang Liu</span>
<i>at 2022-05-06T19:22:22-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>Allow `let` just before pure/return in ApplicativeDo

The following is currently rejected:

```haskell
-- F is an Applicative but not a Monad
x :: F (Int, Int)
x = do
  a <- pure 0
  let b = 1
  pure (a, b)
```

This has bitten me multiple times. This MR contains a simple fix:
only allow a "let only" segment to be merged with the next (and not
the previous) segment. As a result, when the last one or more
statements before pure/return are `LetStmt`s, there will be one
more segment containing only those `LetStmt`s.

Note that if the `let` statement mentions a name bound previously, then
the program is still rejected, for example

```haskell
x = do
  a <- pure 0
  let b = a + 1
  pure (a, b)
```

or the example in #18559. To support this would require a more
complex approach, but this is IME much less common than the
previous case.
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/0415449a6ef67ed8d6413683a3edabb23ff6ebe3" style="color: #1068bf;">0415449a</a></strong>
<div>
<span>by Matthew Pickering</span>
<i>at 2022-05-06T19:22:58-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>template-haskell: Fix representation of OPAQUE pragmas

There is a mis-match between the TH representation of OPAQUE pragmas and
GHC's internal representation due to how OPAQUE pragmas disallow phase
annotations. It seemed most in keeping to just fix the wired in name
issue by adding a special case to the desugaring of INLINE pragmas
rather than making TH/GHC agree with how the representation should look.

Fixes #21463
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/4de887e28e18eb9876ec56e37a0f206521e62bf1" style="color: #1068bf;">4de887e2</a></strong>
<div>
<span>by Simon Peyton Jones</span>
<i>at 2022-05-06T19:23:34-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>Comments only: Note [AppCtxt]
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/6e69964d94392b5398a33fa65f3730805c6a7f93" style="color: #1068bf;">6e69964d</a></strong>
<div>
<span>by Matthew Pickering</span>
<i>at 2022-05-06T19:24:10-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>Fix name of windows release bindist in doc-tarball job
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/ced4689e2a049b6653f5ada3254dde684cb0c433" style="color: #1068bf;">ced4689e</a></strong>
<div>
<span>by Matthew Pickering</span>
<i>at 2022-05-06T19:24:46-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>ci: Generate source-tarball in release jobs

We need to distribute the source tarball so we should generate it in the
CI pipeline.
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/3c91de2109701d1d6d42da3838c4847f51135d4e" style="color: #1068bf;">3c91de21</a></strong>
<div>
<span>by Rob</span>
<i>at 2022-05-08T13:40:53+02:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>Change Specialise to use OrdList.

Fixes #21362

Metric Decrease:
    T16875
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/67072c31d8b6ce4f0de79fa52bc3e5cdd5a495c6" style="color: #1068bf;">67072c31</a></strong>
<div>
<span>by Simon Jakobi</span>
<i>at 2022-05-08T12:23:43-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>Tweak GHC.CmmToAsm.CFG.delEdge

mapAdjust is more efficient than mapAlter.
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/374554bb6b68fd8916cf2e95cb200b3a1390eb03" style="color: #1068bf;">374554bb</a></strong>
<div>
<span>by Teo Camarasu</span>
<i>at 2022-05-09T16:24:37-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>Respect -po when heap profiling (#21446)
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/1ea414b6555fea246fc3ed772e39f3c2a0ccbba1" style="color: #1068bf;">1ea414b6</a></strong>
<div>
<span>by Teo Camarasu</span>
<i>at 2022-05-09T16:24:37-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>add test case for #21446
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/c7902078617f711a2313e3c04ef4e52fdb0f2f09" style="color: #1068bf;">c7902078</a></strong>
<div>
<span>by Jens Petersen</span>
<i>at 2022-05-09T16:25:17-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>avoid hadrian/bindist/Makefile install_docs error when --docs=none

When docs are disabled the bindist does not have docs/ and hence docs-utils/ is not generated.
Here we just test that docs-utils exists before attempting to install prologue.txt and gen_contents_index
to avoid the error:

/usr/bin/install: cannot stat 'docs-utils/prologue.txt': No such file or directory
make: *** [Makefile:195: install_docs] Error 1
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/158bd65984245a1a563c747e7d5afd1b03d82a1d" style="color: #1068bf;">158bd659</a></strong>
<div>
<span>by Hécate Moonlight</span>
<i>at 2022-05-09T16:25:56-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>Correct base's changelog for 4.16.1.0

This commit reaffects the new Ix instances of the foreign integral
types from base 4.17 to 4.16.1.0

closes #21529
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/a4fbb589fd176e6c2f6648dea6c93e25668f1db8" style="color: #1068bf;">a4fbb589</a></strong>
<div>
<span>by Sylvain Henry</span>
<i>at 2022-05-09T16:26:36-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>STG: only print cost-center if asked to
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/50347dedc6525fcd6b32e29c0c532248b6fdd1c6" style="color: #1068bf;">50347ded</a></strong>
<div>
<span>by Gergo ERDI</span>
<i>at 2022-05-10T11:43:33+00:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>Improve "Glomming" note

Add a paragraph that clarifies that `occurAnalysePgm` finding out-of-order
references, and thus needing to glom, is not a cause for concern when its
root cause is rewrite rules.
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/df2e3373d534521d261e7b4fceee382c30974c0c" style="color: #1068bf;">df2e3373</a></strong>
<div>
<span>by Eric Lindblad</span>
<i>at 2022-05-10T20:45:41-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>update INSTALL</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/dcac383312cb4f2425eb412e72f632d6b484077b" style="color: #1068bf;">dcac3833</a></strong>
<div>
<span>by Matthew Pickering</span>
<i>at 2022-05-10T20:46:16-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>driver: Make -no-keep-o-files -no-keep-hi-files work in --make mode

It seems like it was just an oversight to use the incorrect DynFlags
(global rather than local) when implementing these two options. Using
the local flags allows users to request these intermediate files get
cleaned up, which works fine in --make mode because

1. Interface files are stored in memory
2. Object files are only cleaned at the end of session (after link)

Fixes #21349
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/35da81f8fb04d905ed7fc2f2a435530b142c983d" style="color: #1068bf;">35da81f8</a></strong>
<div>
<span>by Ben Gamari</span>
<i>at 2022-05-10T20:46:52-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>configure: Check for ffi.h

As noted in #21485, we checked for ffi.h yet then failed to throw an
error if it is missing.

Fixes #21485.
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/bdc99cc22c903d15eb7f4cd8da4b37d307179808" style="color: #1068bf;">bdc99cc2</a></strong>
<div>
<span>by Simon Peyton Jones</span>
<i>at 2022-05-10T20:47:28-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>Check for uninferrable variables in tcInferPatSynDecl

This fixes #21479

See Note [Unquantified tyvars in a pattern synonym]

While doing this, I found that some error messages pointed at the
pattern synonym /name/, rather than the /declaration/ so I widened the
SrcSpan to encompass the declaration.
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/142a73d92ea1ef8054d3764b5897b83ad349fed5" style="color: #1068bf;">142a73d9</a></strong>
<div>
<span>by Matthew Pickering</span>
<i>at 2022-05-10T20:48:04-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>hadrian: Fix split-sections transformer

The splitSections transformer has been broken since -dynamic-too support
was implemented in hadrian. This is because we actually build the
dynamic way when building the dynamic way, so the predicate would always
fail.

The fix is to just always pass `split-sections` even if it doesn't do
anything for a particular way.

Fixes #21138
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/699f593532a3cd5ca1c2fab6e6e4ce9d53be2c1f" style="color: #1068bf;">699f5935</a></strong>
<div>
<span>by Matthew Pickering</span>
<i>at 2022-05-10T20:48:04-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>packaging: Build perf builds with -split-sections

In 8f71d958 the make build system was made to use split-sections on
linux systems but it appears this logic never made it to hadrian.
There is the split_sections flavour transformer but this doesn't appear
to be used for perf builds on linux.

Closes #21135
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/21feece2f36e8c084ccd87579e48f2b03d5346d0" style="color: #1068bf;">21feece2</a></strong>
<div>
<span>by Simon Peyton Jones</span>
<i>at 2022-05-10T20:48:39-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>Use the wrapper for an unlifted binding

We assumed the wrapper for an unlifted binding is the identity,
but as #21516 showed, that is no always true.

Solution is simple: use it.
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/68d1ea5fe083e0b3ed114bbf02a642c7481ab5d7" style="color: #1068bf;">68d1ea5f</a></strong>
<div>
<span>by Matthew Pickering</span>
<i>at 2022-05-10T20:49:15-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>docs: Fix path to GHC API docs in index.html

In the make bindists we generate documentation in docs/ghc-<VER> but the
hadrian bindists generate docs/ghc/ so the path to the GHC API docs was
wrong in the index.html file.

Rather than make the hadrian and make bindists the same it was easier to
assume that if you're using the mkDocs script that you're using hadrian
bindists.

Fixes #21509
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/9d8f44a98f8345e5223614e0de50fbef2a05dd1d" style="color: #1068bf;">9d8f44a9</a></strong>
<div>
<span>by Matthew Pickering</span>
<i>at 2022-05-10T20:49:51-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>hadrian: Don't pass -j to haddock

This has high potential for oversubcribing as many haddock jobs can be
spawned in parralel which will each request the given number of
capabilities.

Once -jsem is implemented (#19416, !5176) we can expose that haddock via
haddock and use that to pass a semaphore.

Ticket #21136
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/fec3e7aa72bee69ef3a3f363709377990650a5d3" style="color: #1068bf;">fec3e7aa</a></strong>
<div>
<span>by Matthew Pickering</span>
<i>at 2022-05-10T20:50:27-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>hadrian: Only copy and install libffi headers when using in-tree libffi

When passed `--use-system-libffi` then we shouldn't copy and install the
headers from the system package. Instead the headers are expected to be
available as a runtime dependency on the users system.

Fixes #21485 #21487
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/5b791ed3baf9875931c3bf3b67e8d83d0b3c94e2" style="color: #1068bf;">5b791ed3</a></strong>
<div>
<span>by mikael</span>
<i>at 2022-05-11T08:22:13-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>FIND_LLVM_PROG: Recognize llvm suffix used by FreeBSD, ie llc10.
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/8500206ea7084f3914efd3fe7f4336f2893eb4ac" style="color: #1068bf;">8500206e</a></strong>
<div>
<span>by ARATA Mizuki</span>
<i>at 2022-05-11T08:22:57-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>Make floating-point abs IEEE 754 compliant

The old code used by via-C backend didn't handle the sign bit of NaN.

See #21043.
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/4a4c77ed8f16f157dd647593de58840b024bbd2d" style="color: #1068bf;">4a4c77ed</a></strong>
<div>
<span>by Alan Zimmerman</span>
<i>at 2022-05-11T08:23:33-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>EPA: do statement with leading semicolon has wrong anchor

The code

    do; a <- doAsync; b

Generated an incorrect Anchor for the statement list that starts after
the first semicolon.

This commit fixes it.

Closes #20256
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/e3ca8dacf121f3831248775238be4807f53f7ceb" style="color: #1068bf;">e3ca8dac</a></strong>
<div>
<span>by Simon Peyton Jones</span>
<i>at 2022-05-11T08:24:08-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>Specialiser: saturate DFuns correctly

Ticket #21489 showed that the saturation mechanism for
DFuns (see Note Specialising DFuns) should use both
UnspecType and UnspecArg.

We weren't doing that; but this MR fixes that problem.

No test case because it's hard to tickle, but it showed up in
Gergo's work with GHC-as-a-library.
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/fcc7dc4c2848d46439bcbfae3f9eaf0a1f400ab4" style="color: #1068bf;">fcc7dc4c</a></strong>
<div>
<span>by Ben Gamari</span>
<i>at 2022-05-11T20:05:41-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>gitlab-ci: Check for dynamic msys2 dependencies

Both #20878 and #21196 were caused by unwanted dynamic dependencies
being introduced by boot libraries. Ensure that we catch this in CI by
attempting to run GHC in an environment with a minimal PATH.
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/3c998f0d5f91742f0474e0eb76082e069ecb0cf4" style="color: #1068bf;">3c998f0d</a></strong>
<div>
<span>by Matthew Pickering</span>
<i>at 2022-05-11T20:06:16-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>Add back Debian9 CI jobs

We still build Deb9 bindists for now due to Ubuntu 18 and Linux Mint 19
not being at EOL until April 2023 and they still need tinfo5.

Fixes #21469
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/dea9a3d90d657705be073fd4e0db64e76d717a0f" style="color: #1068bf;">dea9a3d9</a></strong>
<div>
<span>by Ben Gamari</span>
<i>at 2022-05-11T20:06:51-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>rts: Drop setExecutable

Since f6e366c058b136f0789a42222b8189510a3693d1 setExecutable has been
dead code. Drop it.
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/32cdf62dc1537f572f2d044851e316ca37d8e012" style="color: #1068bf;">32cdf62d</a></strong>
<div>
<span>by Simon Peyton Jones</span>
<i>at 2022-05-11T20:07:27-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>Add a missing guard in GHC.HsToCore.Utils.is_flat_prod_pat

This missing guard gave rise to #21519.
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/2c00a8d0ba4bc37e212a723fc025f83c471986c5" style="color: #1068bf;">2c00a8d0</a></strong>
<div>
<span>by Matthew Pickering</span>
<i>at 2022-05-11T20:08:02-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>Add mention of -hi to RTS --help

Fixes #21546
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/a2dcad4e6f75c08aacc5902a20ca4c773819d7b7" style="color: #1068bf;">a2dcad4e</a></strong>
<div>
<span>by Andre Marianiello</span>
<i>at 2022-05-12T02:15:48+00:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>Decouple dynflags in Cmm parser (related to #17957)
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/3a022baa1967e2df2ed19341de38b004dc07c04f" style="color: #1068bf;">3a022baa</a></strong>
<div>
<span>by Andre Marianiello</span>
<i>at 2022-05-12T02:15:48+00:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>Remove Module argument from initCmmParserConfig
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/2fc8d76b5c6b4aadcdee39703f8ba6b8936fa9c8" style="color: #1068bf;">2fc8d76b</a></strong>
<div>
<span>by Andre Marianiello</span>
<i>at 2022-05-12T02:15:48+00:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>Move CmmParserConfig and PDConfig into GHC.Cmm.Parser.Config
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/b8c5ffab70fbd4e9b01a180359800188191cca47" style="color: #1068bf;">b8c5ffab</a></strong>
<div>
<span>by Andre Marianiello</span>
<i>at 2022-05-12T18:13:55-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>Decouple dynflags in GHC.Core.Opt.Arity (related to #17957)

Metric Decrease:
    T16875
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/3bf938b6c5e1190f3a55e149deaec2f6309d398f" style="color: #1068bf;">3bf938b6</a></strong>
<div>
<span>by sheaf</span>
<i>at 2022-05-12T18:14:34-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>Update extending_ghc for TcPlugin changes

The documentation still mentioned Derived constraints and
an outdated datatype TcPluginResult.
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/668a9ef496f9df7e628397c4de9a0a4fcdcd7e6a" style="color: #1068bf;">668a9ef4</a></strong>
<div>
<span>by jackohughes</span>
<i>at 2022-05-13T12:10:34-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>Fix printing of brackets in multiplicities (#20315)

Change mulArrow to allow for printing of correct application precedence
where necessary and update callers of mulArrow to reflect this.

As part of this, move mulArrow from GHC/Utils/Outputtable to GHC/Iface/Type.

Fixes #20315
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/30b8b7f182972ea5abb3be862302d3127a36a259" style="color: #1068bf;">30b8b7f1</a></strong>
<div>
<span>by Ben Gamari</span>
<i>at 2022-05-13T12:11:09-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>rts: Add debug output on ocResolve failure

This makes it easier to see how resolution failures nest.
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/53b3fa1c782b251076707a024f55276d4ccb0a6c" style="color: #1068bf;">53b3fa1c</a></strong>
<div>
<span>by Ben Gamari</span>
<i>at 2022-05-13T12:11:09-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>rts/PEi386: Fix handling of weak symbols

Previously we would flag the symbol as weak but failed
to set its address, which must be computed from an "auxiliary"
symbol entry the follows the weak symbol.

Fixes #21556.
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/5678f017a69dc758d0edabbdaad755bd5efef465" style="color: #1068bf;">5678f017</a></strong>
<div>
<span>by Ben Gamari</span>
<i>at 2022-05-13T12:11:09-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>testsuite: Add tests for #21556
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/49af0e52e7f5cb123140682c7246be5ed46ba6a6" style="color: #1068bf;">49af0e52</a></strong>
<div>
<span>by Ben Gamari</span>
<i>at 2022-05-13T22:23:26-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>Re-export augment and build from GHC.List

Resolves https://gitlab.haskell.org/ghc/ghc/-/issues/19127
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/aed356e1b68b2201fa6e3c5bf14079f3f3366b44" style="color: #1068bf;">aed356e1</a></strong>
<div>
<span>by Simon Peyton Jones</span>
<i>at 2022-05-13T22:24:02-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>Comments only around HsWrapper
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/27b904090182c8667640f3ef24e74584f3864a4c" style="color: #1068bf;">27b90409</a></strong>
<div>
<span>by Ben Gamari</span>
<i>at 2022-05-16T08:30:44-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>hadrian: Introduce linting flavour transformer (+lint)

The linting flavour enables -dlint uniformly across anything build by
the stage1 compiler.

-dcmm-lint is not currently enabled because it fails on i386 (see #21563)
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/3f316776bf25160bc5a3f10486456c6ab60ff282" style="color: #1068bf;">3f316776</a></strong>
<div>
<span>by Matthew Pickering</span>
<i>at 2022-05-16T08:30:44-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>hadrian: Uniformly enable -dlint with enableLinting transformer

This fixes some bugs where

* -dcore-lint was being passed when building stage1 libraries with the
  boot compiler
* -dcore-lint was not being passed when building executables.

Fixes #20135
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/3d74cfca991f4c870b1568954d5e09d390977a44" style="color: #1068bf;">3d74cfca</a></strong>
<div>
<span>by Andreas Klebinger</span>
<i>at 2022-05-16T08:31:20-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>Make closure macros EXTERN_INLINE to make debugging easier

Implements #21424.

The RTS macros get_itbl and friends are extremely helpful during debugging.
However only a select few of those were available in the compiled RTS as actual symbols
as the rest were INLINE macros.

This commit marks all of them as EXTERN_INLINE. This will still inline them at use sites
but allow us to use their compiled counterparts during debugging.

This allows us to use things like `p get_fun_itbl(ptr)` in the gdb shell
since `get_fun_itbl` will now be available as symbol!
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/93153aab656f173ac36e0c3c2b4835caaa55669b" style="color: #1068bf;">93153aab</a></strong>
<div>
<span>by Matthew Pickering</span>
<i>at 2022-05-16T08:31:55-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>packaging: Introduce CI job for generating hackage documentation

This adds a CI job (hackage-doc-tarball) which generates the necessary
tarballs for uploading libraries and documentation to hackage. The
release script knows to download this folder and the upload script will
also upload the release to hackage as part of the release.

The `ghc_upload_libs` script is moved from ghc-utils into .gitlab/ghc_upload_libs

There are two modes, preparation and upload.

* The `prepare` mode takes a link to a bindist and creates a folder containing the
  source and doc tarballs ready to upload to hackage.
* The `upload` mode takes the folder created by prepare and performs the upload to
  hackage.

Fixes #21493

Related to #21512
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/65d31d05565073a37f9df73c9ea6f6f87627f26e" style="color: #1068bf;">65d31d05</a></strong>
<div>
<span>by Simon Peyton Jones</span>
<i>at 2022-05-16T15:32:50-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>Add arity to the INLINE pragmas for pattern synonyms

The lack of INLNE arity was exposed by #21531.  The fix is
simple enough, if a bit clumsy.
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/43c018aaaf15ccce215958b7e09b1e29ee7b6d40" style="color: #1068bf;">43c018aa</a></strong>
<div>
<span>by Krzysztof Gogolewski</span>
<i>at 2022-05-16T15:33:25-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>Misc cleanup

- Remove groupWithName (unused)
- Use the RuntimeRepType synonym where possible
- Replace getUniqueM + mkSysLocalOrCoVar with mkSysLocalOrCoVarM

No functional changes.
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/8dfea0789957278b99bf302dfb24078fff84b6d2" style="color: #1068bf;">8dfea078</a></strong>
<div>
<span>by Pavol Vargovcik</span>
<i>at 2022-05-16T15:34:04-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>TcPlugin: access to irreducible givens + fix passed ev_binds_var
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/fb579e15c56994bc6c4cc266535024f20a81f830" style="color: #1068bf;">fb579e15</a></strong>
<div>
<span>by Ben Gamari</span>
<i>at 2022-05-17T00:25:02-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>driver: Introduce pgmcxx

Here we introduce proper support for compilation of C++ objects. This
includes:

 * logic in `configure` to detect the C++ toolchain and propagating this
   information into the `settings` file
 * logic in the driver to use the C++ toolchain when compiling C++
   sources
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/43628ed44b063e25e6d1394314ed89f07f026503" style="color: #1068bf;">43628ed4</a></strong>
<div>
<span>by Ben Gamari</span>
<i>at 2022-05-17T00:25:02-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>testsuite: Build T20918 with HC, not CXX
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/0ef249aa26f653677c5368bb51af34f7577ba5b9" style="color: #1068bf;">0ef249aa</a></strong>
<div>
<span>by Ben Gamari</span>
<i>at 2022-05-17T00:25:02-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>Introduce package to capture dependency on C++ stdlib

Here we introduce a new "virtual" package into the initial package
database, `system-cxx-std-lib`. This gives users a convenient, platform
agnostic way to link against C++ libraries, addressing #20010.

Fixes #20010.
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/03efe28317c5e037eab4d47790a6a1fb74d38c3d" style="color: #1068bf;">03efe283</a></strong>
<div>
<span>by Ben Gamari</span>
<i>at 2022-05-17T00:25:02-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>testsuite: Add tests for system-cxx-std-lib package

Test that we can successfully link against C++ code both in GHCi and
batch compilation.

See #20010
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/5f6527e05beb628c5015ab9f8a7f4012ee8d14a1" style="color: #1068bf;">5f6527e0</a></strong>
<div>
<span>by nineonine</span>
<i>at 2022-05-17T00:25:38-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>OverloadedRecordFields: mention parent name in 'ambiguous occurrence' error for better disambiguation (#17420)
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/eccdb2080ea80df6510098f2e58046bc20efe19a" style="color: #1068bf;">eccdb208</a></strong>
<div>
<span>by Simon Peyton Jones</span>
<i>at 2022-05-17T07:16:39-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>Adjust flags for pprTrace

We were using defaultSDocContext for pprTrace, which suppresses
lots of useful infomation. This small MR adds

   GHC.Utils.Outputable.traceSDocContext

and uses it for pprTrace and pprTraceUserWarning.

traceSDocContext is a global, and hence not influenced by flags,
but that seems unavoidable.  But I made the sdocPprDebug bit
controlled by unsafeHasPprDebug, since we have the latter for
exactly this purpose.

Fixes #21569
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/d2284c4c9dd484a4b459366956c4aedc72336b04" style="color: #1068bf;">d2284c4c</a></strong>
<div>
<span>by Simon Peyton Jones</span>
<i>at 2022-05-17T07:17:15-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>Fix bad interaction between withDict and the Specialiser

This MR fixes a bad bug, where the withDict was inlined too
vigorously, which in turn made the type-class Specialiser generate
a bogus specialisation, because it saw the same overloaded function
applied to two /different/ dictionaries.

Solution: inline `withDict` later.  See (WD8) of Note [withDict]
in GHC.HsToCore.Expr

See #21575, which is fixed by this change.
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/70f52443550d37985cf7e06ffafd5a162319d9e1" style="color: #1068bf;">70f52443</a></strong>
<div>
<span>by Matthew Pickering</span>
<i>at 2022-05-17T07:17:50-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>Bump time submodule to 1.12.2

This bumps the time submodule to the 1.12.2 release.

Fixes #21571
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/2343457df2509447ed869bc251897fc0286591bc" style="color: #1068bf;">2343457d</a></strong>
<div>
<span>by Vladislav Zavialov</span>
<i>at 2022-05-17T07:18:26-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>Remove unused test files (#21582)

Those files were moved to the perf/ subtree in 11c9a469, and then
accidentally reintroduced in 680ef2c8.
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/cb52b4ae1508639e2686717d220b977e201394d3" style="color: #1068bf;">cb52b4ae</a></strong>
<div>
<span>by Ben Gamari</span>
<i>at 2022-05-17T16:00:14-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>CafAnal: Improve code clarity

Here we implement a few measures to improve the clarity of the CAF
analysis implementation. Specifically:

* Use CafInfo instead of Bool since the former is more descriptive
* Rename CAFLabel to CAFfyLabel, since not all CAFfyLabels are in fact
  CAFs
* Add numerous comments
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/b048a9f4e28186d2245427d2d83f08418573fae5" style="color: #1068bf;">b048a9f4</a></strong>
<div>
<span>by Ben Gamari</span>
<i>at 2022-05-17T16:00:14-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>codeGen: Ensure that static datacon apps are included in SRTs

When generating an SRT for a recursive group, GHC.Cmm.Info.Build.oneSRT
filters out recursive references, as described in Note [recursive SRTs].
However, doing so for static functions would be unsound, for the reason
described in Note [Invalid optimisation: shortcutting].

However, the same argument applies to static data constructor
applications, as we discovered in #20959. Fix this by ensuring that
static data constructor applications are included in recursive SRTs.

The approach here is not entirely satisfactory, but it is a starting
point.

Fixes #20959.
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/0e2d16eb76037152c96226f0f65a5ebdee64f7b6" style="color: #1068bf;">0e2d16eb</a></strong>
<div>
<span>by Matthew Pickering</span>
<i>at 2022-05-17T16:00:50-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>Add test for #21558

This is now fixed on master and 9.2 branch.

Closes #21558
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/ef3c8d9e077a1d4ede0724075489fb1f12afa3f9" style="color: #1068bf;">ef3c8d9e</a></strong>
<div>
<span>by Sylvain Henry</span>
<i>at 2022-05-17T20:22:02-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>Don't store LlvmConfig into DynFlags

LlvmConfig contains information read from llvm-passes and llvm-targets
files in GHC's top directory. Reading these files is done only when
needed (i.e. when the LLVM backend is used) and cached for the whole
compiler session. This patch changes the way this is done:

- Split LlvmConfig into LlvmConfig and LlvmConfigCache

- Store LlvmConfigCache in HscEnv instead of DynFlags: there is no
  good reason to store it in DynFlags. As it is fixed per session, we
  store it in the session state instead (HscEnv).

- Initializing LlvmConfigCache required some changes to driver functions
  such as newHscEnv. I've used the opportunity to untangle initHscEnv
  from initGhcMonad (in top-level GHC module) and to move it to
  GHC.Driver.Main, close to newHscEnv.

- I've also made `cmmPipeline` independent of HscEnv in order to remove
  the call to newHscEnv in regalloc_unit_tests.
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/828fbd8ac79c6a163584bd4aed25bef6db4a2a4a" style="color: #1068bf;">828fbd8a</a></strong>
<div>
<span>by Andreas Klebinger</span>
<i>at 2022-05-17T20:22:38-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>Give all EXTERN_INLINE closure macros prototypes
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/cfc8e2e2e3c9d9044f8f4d100c102b005695905f" style="color: #1068bf;">cfc8e2e2</a></strong>
<div>
<span>by Ben Gamari</span>
<i>at 2022-05-19T04:57:51-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>base: Introduce [sg]etFinalizerExceptionHandler

This introduces a global hook which is called when an exception is
thrown during finalization.
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/372cf7305157df7bbe41d2d1f45211d9b999ff52" style="color: #1068bf;">372cf730</a></strong>
<div>
<span>by Ben Gamari</span>
<i>at 2022-05-19T04:57:51-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>base: Throw exceptions raised while closing finalized Handles

Fixes #21336.
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/3dd2f944428596227590f5f15d3a47c0de1cc5c3" style="color: #1068bf;">3dd2f944</a></strong>
<div>
<span>by Ben Gamari</span>
<i>at 2022-05-19T04:57:51-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>testsuite: Add tests for #21336
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/297156e0b8053a28a860e7a18e1816207a59547b" style="color: #1068bf;">297156e0</a></strong>
<div>
<span>by Matthew Pickering</span>
<i>at 2022-05-19T04:58:27-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>Add release flavour and use it for the release jobs

The release flavour is essentially the same as the perf flavour
currently but also enables `-haddock`. I have hopefully updated all the
relevant places where the `-perf` flavour was hardcoded.

Fixes #21486
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/a05b62936a7101e265b7b7776d8119754738ca70" style="color: #1068bf;">a05b6293</a></strong>
<div>
<span>by Matthew Pickering</span>
<i>at 2022-05-19T04:58:27-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>ci: Don't build sphinx documentation on centos

The centos docker image lacks the sphinx builder so we disable building
sphinx docs for these jobs.

Fixes #21580
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/209d7c699225f5e9b8acbf9e50711165a37a91ed" style="color: #1068bf;">209d7c69</a></strong>
<div>
<span>by Matthew Pickering</span>
<i>at 2022-05-19T04:58:27-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>ci: Use correct syntax when args list is empty

This seems to fail on the ancient version of bash present on CentOS
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/02d1633466733f154753753c8d9e94062d334b1a" style="color: #1068bf;">02d16334</a></strong>
<div>
<span>by Matthew Pickering</span>
<i>at 2022-05-19T04:59:03-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>hadrian: Don't attempt to build dynamic profiling libraries

We only support building static profiling libraries, the transformer was
requesting things like a dynamic, threaded, debug, profiling RTS, which
we have never produced nor distributed.

Fixes #21567
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/35bdab1cb97f0be0ebea7cc93b977759f51d976c" style="color: #1068bf;">35bdab1c</a></strong>
<div>
<span>by Ben Gamari</span>
<i>at 2022-05-19T04:59:39-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>configure: Check CC_STAGE0 for --target support

We previously only checked the stage 1/2 compiler
for --target support. We got away with this for quite a while but it
eventually caught up with us in #21579, where `bytestring`'s new NEON
implementation was unbuildable on Darwin due to Rosetta's seemingly
random logic for determining which executable image to execute. This
lead to a confusing failure to build `bytestring`'s cbits, when `clang`
tried to compile NEON builtins while targetting x86-64.

Fix this by checking CC_STAGE0 for --target support.

Fixes #21579.
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/0ccca94bc0110a2ee7f79382cb0e6831e79a3176" style="color: #1068bf;">0ccca94b</a></strong>
<div>
<span>by Norman Ramsey</span>
<i>at 2022-05-20T05:32:32-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>add dominator analysis of `CmmGraph`

This commit adds module `GHC.Cmm.Dominators`, which provides a wrapper
around two existing algorithms in GHC: the Lengauer-Tarjan dominator
analysis from the X86 back end and the reverse postorder ordering from
the Cmm Dataflow framework.  Issue #20726 proposes that we evaluate
some alternatives for dominator analysis, but for the time being, the
best path forward is simply to use the existing analysis on
`CmmGraph`s.

This commit addresses a bullet in #21200.
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/54f0b578ccfccce581f0bf46df12a811ceab6d3b" style="color: #1068bf;">54f0b578</a></strong>
<div>
<span>by Norman Ramsey</span>
<i>at 2022-05-20T05:32:32-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>add dominator-tree function
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/05ed917bdb0a95596a722f995a0ddd97b81dcaa1" style="color: #1068bf;">05ed917b</a></strong>
<div>
<span>by Norman Ramsey</span>
<i>at 2022-05-20T05:32:32-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>add HasDebugCallStack; remove unneeded extensions
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/0b8481361bf87461f1f6f14ae74209d66e45ee82" style="color: #1068bf;">0b848136</a></strong>
<div>
<span>by Andreas Klebinger</span>
<i>at 2022-05-20T05:32:32-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>document fields of `DominatorSet`</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/8a26e8d62cf315fb351419ac2cad6aa01ca9e175" style="color: #1068bf;">8a26e8d6</a></strong>
<div>
<span>by Ben Gamari</span>
<i>at 2022-05-20T05:33:08-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>nonmoving: Fix documentation of GC statistics fields

These were previously incorrect.

Fixes #21553.
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/c1e24e610ae572b77bc1507674431a84563af759" style="color: #1068bf;">c1e24e61</a></strong>
<div>
<span>by Matthew Pickering</span>
<i>at 2022-05-20T05:33:44-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>Remove pprTrace from pushCoercionIntoLambda (#21555)

This firstly caused spurious output to be emitted (as evidenced by
 #21555) but even worse caused a massive coercion to be attempted to be
 printed (> 200k terms) which would invariably eats up all the memory of
 your computer.

The good news is that removing this trace allows the program to compile
to completion, the bad news is that the program exhibits a core lint
error (on 9.0.2) but not any other releases it seems.

Fixes #21577 and #21555
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/a36d12ee19afa949da27ab73f082428830f3dba3" style="color: #1068bf;">a36d12ee</a></strong>
<div>
<span>by Zubin Duggal</span>
<i>at 2022-05-20T10:44:35-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>docs: Fix LlvmVersion in manpage (#21280)
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/36b8a57cb30c1374cce749b6f1554a2d438336b9" style="color: #1068bf;">36b8a57c</a></strong>
<div>
<span>by Matthew Pickering</span>
<i>at 2022-05-20T10:45:10-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>validate: Use $make rather than make

In the validate script we are careful to use the $make variable as this
stores whether we are using gmake, make, quiet mode etc. There was just
this one place where we failed to use it.

Fixes #21598
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/4aa3c5bde8c54f6ab8cbb2a574f7654590c077ca" style="color: #1068bf;">4aa3c5bd</a></strong>
<div>
<span>by Norman Ramsey</span>
<i>at 2022-05-21T03:11:04+00:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>Change `Backend` type and remove direct dependencies

With this change, `Backend` becomes an abstract type
(there are no more exposed value constructors).
Decisions that were formerly made by asking "is the
current back end equal to (or different from) this named value
constructor?" are now made by interrogating the back end about
its properties, which are functions exported by `GHC.Driver.Backend`.

There is a description of how to migrate code using `Backend` in the
user guide.

Clients using the GHC API can find a backdoor to access the Backend
datatype in GHC.Driver.Backend.Internal.

Bumps haddock submodule.

Fixes #20927
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/ecf5f3634c9971de4ae21870f0d6f3d5a35634a1" style="color: #1068bf;">ecf5f363</a></strong>
<div>
<span>by Julian Ospald</span>
<i>at 2022-05-21T12:51:16-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>Respect DESTDIR in hadrian bindist Makefile, fixes #19646
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/7edd991e5d00a1ba19f3607fe8a66bbdc3ab3181" style="color: #1068bf;">7edd991e</a></strong>
<div>
<span>by Julian Ospald</span>
<i>at 2022-05-21T12:51:16-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>Test DESTDIR in test_hadrian()
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/ea895b94afeecb111f8001fbd60f5d4c8828213c" style="color: #1068bf;">ea895b94</a></strong>
<div>
<span>by Matthew Pickering</span>
<i>at 2022-05-22T21:57:47-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>Consider the stage of typeable evidence when checking stage restriction

We were considering all Typeable evidence to be "BuiltinInstance"s which
meant the stage restriction was going unchecked. In-fact, typeable has
evidence and so we need to apply the stage restriction.

This is
complicated by the fact we don't generate typeable evidence and the
corresponding DFunIds until after typechecking is concluded so we
introcue a new `InstanceWhat` constructor, BuiltinTypeableInstance which
records whether the evidence is going to be local or not.

Fixes #21547
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/ffbe28e56aa382164525300fbc32d78eefd95e7d" style="color: #1068bf;">ffbe28e5</a></strong>
<div>
<span>by Dominik Peteler</span>
<i>at 2022-05-22T21:58:23-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>Modularize GHC.Core.Opt.LiberateCase

Progress towards #17957
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/bc723ac2cf2cfc329de4b8523bf891965075879b" style="color: #1068bf;">bc723ac2</a></strong>
<div>
<span>by Simon Peyton Jones</span>
<i>at 2022-05-23T17:09:34+01:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>Improve FloatOut and SpecConstr

This patch addresses a relatively obscure situation that arose
when chasing perf regressions in !7847, which itself is fixing

It does two things:

* SpecConstr can specialise on ($df d1 d2) dictionary arguments
* FloatOut no longer checks argument strictness

See Note [Specialising on dictionaries] in GHC.Core.Opt.SpecConstr.

A test case is difficult to construct, but it makes a big difference
in nofib/real/eff/VSM, at least when we have the patch for #21286
installed. (The latter stops worker/wrapper for dictionary arguments).

There is a spectacular, but slightly illusory, improvement in
runtime perf on T15426.  I have documented the specifics in
T15426 itself.

Metric Decrease:
    T15426
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/1a4195b04866ebdb5f42006fb92b8a73a4aa2bac" style="color: #1068bf;">1a4195b0</a></strong>
<div>
<span>by John Ericson</span>
<i>at 2022-05-23T17:33:59-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>Make debug a `Bool` not an `Int` in `StgToCmmConfig`

We don't need any more resolution than this.

Rename the field to `stgToCmmEmitDebugInfo` to indicate it is no longer
conveying any "level" information.
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/e9fff12b34bb9770491d24eff5c280f44dc8cfc1" style="color: #1068bf;">e9fff12b</a></strong>
<div>
<span>by Alan Zimmerman</span>
<i>at 2022-05-23T21:04:49-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>EPA : Remove duplicate comments in DataFamInstD

The code

  data instance Method PGMigration = MigrationQuery Query
                                   -- ^ Run a query against the database
                                   | MigrationCode (Connection -> IO (Either String ()))
                                   -- ^ Run any arbitrary IO code

Resulted in two instances of the "-- ^ Run a query against the database"
comment appearing in the Exact Print Annotations when it was parsed.

Ensure only one is kept.

Closes #20239
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/e2520df3fffa0cf22fb19c5fb872832d11c07d35" style="color: #1068bf;">e2520df3</a></strong>
<div>
<span>by Alan Zimmerman</span>
<i>at 2022-05-23T21:05:27-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>EPA: Comment Order Reversed

Make sure comments captured in the exact print annotations are in
order of increasing location

Closes #20718
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/4b45fd72beda36addc11b5200f2d7c13ac6df43e" style="color: #1068bf;">4b45fd72</a></strong>
<div>
<span>by Teo Camarasu</span>
<i>at 2022-05-24T10:49:13-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>Add test for T21455
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/e2cd1d43b711ada11eb330545e2d0bff3e21b4fc" style="color: #1068bf;">e2cd1d43</a></strong>
<div>
<span>by Teo Camarasu</span>
<i>at 2022-05-24T10:49:13-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>Allow passing -po outside profiling way

Resolves #21455
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/3b8c413ad58ef9914b8979b09ecd4c6cf7bf3538" style="color: #1068bf;">3b8c413a</a></strong>
<div>
<span>by Greg Steuck</span>
<i>at 2022-05-24T10:49:52-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>Fix haddock_*_perf tests on non-GNU-grep systems

Using regexp pattern requires `egrep` and straight up `+`.  The
haddock_parser_perf and haddock_renamer_perf tests now pass on
OpenBSD. They previously incorrectly parsed the files and awk
complained about invalid syntax.
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/1db877a3d513e934625d5dc3ad6e9e8ca9ba9519" style="color: #1068bf;">1db877a3</a></strong>
<div>
<span>by Ben Gamari</span>
<i>at 2022-05-24T10:50:28-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>hadrian/bindist: Drop redundant include of install.mk

`install.mk` is already included by `config.mk`. Moreover, `install.mk`
depends upon `config.mk` to set `RelocatableBuild`, making this first
include incorrect.
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/f485d26738c83ef564794b41188e0e082ee59b26" style="color: #1068bf;">f485d267</a></strong>
<div>
<span>by Greg Steuck</span>
<i>at 2022-05-24T10:51:08-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>Remove -z wxneeded for OpenBSD

With all the recent W^X fixes in the loader this workaround is not
necessary any longer. I verified that the only tests failing for me on
OpenBSD 7.1-current are the same (libc++ related) before and after
this commit (with --fast).
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/7c51177d3e135cbba4bc170126c74825fd7bdd61" style="color: #1068bf;">7c51177d</a></strong>
<div>
<span>by Andreas Klebinger</span>
<i>at 2022-05-24T22:13:19-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>Use UnionListsOrd instead of UnionLists in most places.

This should get rid of most, if not all "Overlong lists" errors and fix #20016
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/81b3741fd5bacfa8fa63c8f963f1147036a6b0d9" style="color: #1068bf;">81b3741f</a></strong>
<div>
<span>by Andreas Klebinger</span>
<i>at 2022-05-24T22:13:55-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>Fix #21563 by using Word64 for 64bit shift code.

We use the 64bit shifts only on 64bit platforms. But we
compile the code always so compiling it on 32bit caused a
lint error. So use Word64 instead.
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/2c25fff6622cdb07b681cebde7890172f7c9e44f" style="color: #1068bf;">2c25fff6</a></strong>
<div>
<span>by Zubin Duggal</span>
<i>at 2022-05-24T22:14:30-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>Fix compilation with -haddock on GHC <= 8.10

-haddock on GHC < 9.0 is quite fragile and can result in obtuse parse errors
when it encounters invalid haddock syntax.

This has started to affect users since 297156e0b8053a28a860e7a18e1816207a59547b
enabled -haddock by default on many flavours.

Furthermore, since we don't test bootstrapping with 8.10 on CI, this problem
managed to slip throught the cracks.
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/cfb9faff791064fab1b308b08b6ec1be288a4675" style="color: #1068bf;">cfb9faff</a></strong>
<div>
<span>by sheaf</span>
<i>at 2022-05-24T22:15:12-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>Hadrian: don't add "lib" for relocatable builds

The conditional in hadrian/bindist/Makefile depended on the target OS,
but it makes more sense to use whether we are using a relocatable build.
(Currently this only gets set to true on Windows, but this ensures
that the logic stays correctly coupled.)
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/9973c0167c266dad1c9c6f2b96dbba3c29c22062" style="color: #1068bf;">9973c016</a></strong>
<div>
<span>by Andre Marianiello</span>
<i>at 2022-05-25T01:36:09-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>Remove HscEnv from GHC.HsToCore.Usage (related to #17957)

Metric Decrease:
    T16875
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/2ff18e390b119c611b3dd429b76cfcbf36ef9545" style="color: #1068bf;">2ff18e39</a></strong>
<div>
<span>by sheaf</span>
<i>at 2022-05-25T01:36:48-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>SimpleOpt: beta-reduce through casts

The simple optimiser would sometimes fail to
beta-reduce a lambda when there were casts
in between the lambda and its arguments.
This can cause problems because we rely on
representation-polymorphic lambdas getting
beta-reduced away (for example, those
that arise from newtype constructors with
representation-polymorphic arguments, with
UnliftedNewtypes).
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/e74fc066cb33e5b7ae0d37cedb30230c597ef1ce" style="color: #1068bf;">e74fc066</a></strong>
<div>
<span>by CarrieMY</span>
<i>at 2022-05-25T16:43:03+02:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>Desugar RecordUpd in `tcExpr`

This patch typechecks record updates by desugaring them inside
the typechecker using the HsExpansion mechanism, and then typechecking
this desugared result.

Example:

    data T p q = T1 { x :: Int, y :: Bool, z :: Char }
               | T2 { v :: Char }
               | T3 { x :: Int }
               | T4 { p :: Float, y :: Bool, x :: Int }
               | T5

The record update `e { x=e1, y=e2 }` desugars as follows

  e { x=e1, y=e2 }
    ===>
  let { x' = e1; y' = e2 } in
  case e of
     T1 _ _ z -> T1 x' y' z
     T4 p _ _ -> T4 p y' x'

The desugared expression is put into an HsExpansion, and we typecheck
that.

The full details are given in Note [Record Updates] in GHC.Tc.Gen.Expr.

Fixes #2595 #3632 #10808 #10856 #16501 #18311 #18802 #21158 #21289

Updates haddock submodule
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/2b8bdab82c77f33f3b9862d860cc8c2c81d4fb96" style="color: #1068bf;">2b8bdab8</a></strong>
<div>
<span>by Eric Lindblad</span>
<i>at 2022-05-26T03:21:58-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>update README</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/3d7e7e84f3ffab4ebf68fe0cd8f105d63ec60d39" style="color: #1068bf;">3d7e7e84</a></strong>
<div>
<span>by BinderDavid</span>
<i>at 2022-05-26T03:22:38-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>Replace dead link in Haddock documentation of Control.Monad.Fail (fixes #21602)
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/ee61c7f9bdb742590aeb74190d3df2ef76059d4b" style="color: #1068bf;">ee61c7f9</a></strong>
<div>
<span>by John Ericson</span>
<i>at 2022-05-26T03:23:13-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>Add Haddocks for `WwOpts`
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/da5ccf0ee79fc690a7e69c0b644f0226dde07e49" style="color: #1068bf;">da5ccf0e</a></strong>
<div>
<span>by Dominik Peteler</span>
<i>at 2022-05-26T03:23:13-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>Avoid global compiler state for `GHC.Core.Opt.WorkWrap`

Progress towards #17957
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/3bd975b48d56815405da934a2331d9f9aa884ad7" style="color: #1068bf;">3bd975b4</a></strong>
<div>
<span>by sheaf</span>
<i>at 2022-05-26T03:23:52-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>Optimiser: avoid introducing bad rep-poly

The functions `pushCoValArg` and `pushCoercionIntoLambda` could
introduce bad representation-polymorphism. Example:

  type RR :: RuntimeRep
  type family RR where { RR = IntRep }
  type F :: TYPE RR
  type family F where  { F  = Int# }

  co = GRefl F (TYPE RR[0])
    :: (F :: TYPE RR)
    ~# (F |> TYPE RR[0] :: TYPE IntRep)

  f :: F -> ()

`pushCoValArg` would transform the unproblematic application

  (f |> (co -> <()>)) (arg :: F |> TYPE RR[0])

into an application in which the argument does not have a fixed
`RuntimeRep`:

  f ((arg |> sym co) :: (F :: TYPE RR))
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/b22979fb8d84efa21cc0b9dd56a8d9ef8e3693b6" style="color: #1068bf;">b22979fb</a></strong>
<div>
<span>by Fraser Tweedale</span>
<i>at 2022-05-26T06:14:51-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>executablePath test: fix file extension treatment

The executablePath test strips the file extension (if any) when
comparing the query result with the expected value.  This is to
handle platforms where GHC adds a file extension to the output
program file (e.g. .exe on Windows).

After the initial check, the file gets deleted (if supported).
However, it tries to delete the *stripped* filename, which is
incorrect.  The test currently passes only because Windows does not
allow deleting the program while any process created from it is
alive.

Make the test program correct in general by deleting the
*non-stripped* executable filename.
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/afde42761f509a93a70e8997bd8bbf38e7b70209" style="color: #1068bf;">afde4276</a></strong>
<div>
<span>by Fraser Tweedale</span>
<i>at 2022-05-26T06:14:51-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>fix executablePath test for NetBSD

executablePath support for NetBSD was added in
a172be07e3dce758a2325104a3a37fc8b1d20c9c, but the test was not
updated.

Update the test so that it works for NetBSD.  This requires handling
some quirks:

- The result of getExecutablePath could include "./" segments.
  Therefore use System.FilePath.equalFilePath to compare paths.

- The sysctl(2) call returns the original executable name even after
  it was deleted.  Add `canQueryAfterDelete :: [FilePath]` and
  adjust expectations for the post-delete query accordingly.

Also add a note to the `executablePath` haddock to advise that
NetBSD behaves differently from other OSes when the file has been
deleted.

Also accept a decrease in memory usage for T16875.  On Windows, the
metric is -2.2% of baseline, just outside the allowed ±2%.  I don't
see how this commit could have influenced this metric, so I suppose
it's something in the CI environment.

Metric Decrease:
    T16875
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/d0e4355af8c936a3ba831ecf6afa62b06475069f" style="color: #1068bf;">d0e4355a</a></strong>
<div>
<span>by John Ericson</span>
<i>at 2022-05-26T06:15:30-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>Factor out `initArityOps` to `GHC.Driver.Config.*` module

We want `DynFlags` only mentioned in `GHC.Driver`.
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/44bb71115bcf1edaee82fc75cbe07a3e242e9476" style="color: #1068bf;">44bb7111</a></strong>
<div>
<span>by romes</span>
<i>at 2022-05-26T16:27:57+00:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>TTG: Move MatchGroup Origin field and MatchGroupTc to GHC.Hs
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/88e586004abac9404307f6e19c86d7fd5c4ad5f1" style="color: #1068bf;">88e58600</a></strong>
<div>
<span>by sheaf</span>
<i>at 2022-05-26T17:38:43-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>Add tests for eta-expansion of data constructors

This patch adds several tests relating to the eta-expansion of
data constructors, including UnliftedNewtypes and DataTypeContexts.
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/d87530bbf497d21edb4a1dd5cb834fb42a49d1d8" style="color: #1068bf;">d87530bb</a></strong>
<div>
<span>by Richard Eisenberg</span>
<i>at 2022-05-26T23:20:14-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>Generalize breakTyVarCycle to work with TyFamLHS

The function breakTyVarCycle_maybe has been installed
in a dark corner of GHC to catch some gremlins (a.k.a.
occurs-check failures) who lurk
there. But it previously only caught gremlins of the
form (a ~ ... F a ...), where some of our intrepid users
have spawned gremlins of the form (G a ~ ... F (G a) ...).
This commit improves breakTyVarCycle_maybe (and renames
it to breakTyEqCycle_maybe) to catch the new gremlins.

Happily, the change is remarkably small.

The gory details are in Note [Type equality cycles].

Test cases: typecheck/should_compile/{T21515,T21473}.
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/ed37027f713bb6563fd98d144a39211339fd91a5" style="color: #1068bf;">ed37027f</a></strong>
<div>
<span>by Hécate Moonlight</span>
<i>at 2022-05-26T23:20:52-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>[base] Fix the links in the Data.Data module

fix #21658
fix #21657
fix #21657
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/3bd7d5d668b316f517a66c72fcf9bc7a36cc6ba4" style="color: #1068bf;">3bd7d5d6</a></strong>
<div>
<span>by Krzysztof Gogolewski</span>
<i>at 2022-05-27T16:44:48+02:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>Use a class to check validity of withDict

This moves handling of the magic 'withDict' function from the desugarer
to the typechecker. Details in Note [withDict].

I've extracted a part of T16646Fail to a separate file T16646Fail2,
because the new error in 'reify' hides the errors from 'f' and 'g'.

WithDict now works with casts, this fixes #21328.

Part of #19915
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/b54f6c4fefaca8ca043cccbf474fb0da3d1c66b5" style="color: #1068bf;">b54f6c4f</a></strong>
<div>
<span>by sheaf</span>
<i>at 2022-05-28T21:00:09-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>Fix FreeVars computation for mdo

Commit acb188e0 introduced a regression in the computation of free
variables in mdo statements, as the logic in
GHC.Rename.Expr.segmentRecStmts was slightly different depending on
whether the recursive do block corresponded to an mdo statement or
a rec statment.

This patch restores the previous computation for mdo blocks.

Fixes #21654
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/0704295ceafaf0f531b90689569c0492d11f4725" style="color: #1068bf;">0704295c</a></strong>
<div>
<span>by Matthew Pickering</span>
<i>at 2022-05-28T21:00:45-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>T16875: Stabilise (temporarily) by increasing acceptance threshold

The theory is that on windows there is some difference in the
environment between pipelines on master and merge requests which affects
all tests equally but because T16875 barely allocates anything it is the
test which is affected the most.

See #21557
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/6341c8ed5d3689c9cc52f4fcd2dce78a5f75b5a5" style="color: #1068bf;">6341c8ed</a></strong>
<div>
<span>by Matthew Pickering</span>
<i>at 2022-05-28T21:01:20-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>make: Fix make maintainer-clean deleting a file tracked by source control

Fixes #21659
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/fbf2f254ec85bd696859f939698edfaef8ff708c" style="color: #1068bf;">fbf2f254</a></strong>
<div>
<span>by Bodigrim</span>
<i>at 2022-05-28T21:01:58-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>Expand documentation of hIsTerminalDevice
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/0092c67cffb707611b2684df24a1a77e40c01cb7" style="color: #1068bf;">0092c67c</a></strong>
<div>
<span>by Teo Camarasu</span>
<i>at 2022-05-29T12:25:39+00:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>export IsList from GHC.IsList

it is still re-exported from GHC.Exts
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/913963271f985d8ac43a9b4d0b230fb9758049cd" style="color: #1068bf;">91396327</a></strong>
<div>
<span>by Sylvain Henry</span>
<i>at 2022-05-30T09:40:55-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>MachO linker: fix handling of ARM64_RELOC_SUBTRACTOR

ARM64_RELOC_SUBTRACTOR relocations are paired with an
AMR64_RELOC_UNSIGNED relocation to implement: addend + sym1 - sym2
The linker was doing it in two steps, basically:
  *addend <- *addend - sym2
  *addend <- *addend + sym1
The first operation was likely to overflow. For example when the
relocation target was 32-bit and both sym1/sym2 were 64-bit addresses.
With the small memory model, (sym1-sym2) would fit in 32 bits but
(*addend-sym2) may not.

Now the linker does it in one step:
  *addend <- *addend + sym1 - sym2
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/acc268064daaa39823b0d566169eadb2afdff743" style="color: #1068bf;">acc26806</a></strong>
<div>
<span>by Sylvain Henry</span>
<i>at 2022-05-30T09:40:55-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>Some fixes to SRT documentation

- reordered the 3 SRT implementation cases from the most general to the
  most specific one:
    USE_SRT_POINTER -> USE_SRT_OFFSET -> USE_INLINE_SRT_FIELD
- added requirements for each
- found and documented a confusion about "SRT inlining" not supported
  with MachO. (It is fixed in the following commit)
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/5878f439d4214ba0dd895e56460f15fc6c67283c" style="color: #1068bf;">5878f439</a></strong>
<div>
<span>by Sylvain Henry</span>
<i>at 2022-05-30T09:40:55-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>Enable USE_INLINE_SRT_FIELD on ARM64

It was previously disabled because of:
- a confusion about "SRT inlining" (see removed comment in this commit)
- a linker bug (overflow) in the handling of ARM64_RELOC_SUBTRACTOR
  relocation: fixed by a previous commit.
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/59bd61599561b54c204f0b99c2f4f4abd1af5c57" style="color: #1068bf;">59bd6159</a></strong>
<div>
<span>by Matthew Pickering</span>
<i>at 2022-05-30T09:41:39-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>ci: Make sure to exit promptly if `make install` fails.

Due to the vageries of bash, you have to explicitly handle the failure
and exit when in a function.

This failed to exit promptly when !8247 was failing.

See #21358 for the general issue
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/5a5a28dafbbaca4b147df657e69483b36482f82e" style="color: #1068bf;">5a5a28da</a></strong>
<div>
<span>by Sylvain Henry</span>
<i>at 2022-05-30T09:42:23-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>Split GHC.HsToCore.Foreign.Decl

This is preliminary work for JavaScript support. It's better to put the
code handling the desugaring of Prim, C and JavaScript declarations into
separate modules.
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/6f5ff4fa0ee6b25ea5c2ed4fe0470f6975030f4d" style="color: #1068bf;">6f5ff4fa</a></strong>
<div>
<span>by Sylvain Henry</span>
<i>at 2022-05-30T09:43:05-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>Bump hadrian to LTS-19.8 (GHC 9.0.2)
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/f2e707077bfef6ca5f9cb1a1b2bfaa14c0637c40" style="color: #1068bf;">f2e70707</a></strong>
<div>
<span>by Sylvain Henry</span>
<i>at 2022-05-30T09:43:05-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>Hadrian: remove unused code
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/2f215b9fcd7c14023464b52c0ca572a5ad09518d" style="color: #1068bf;">2f215b9f</a></strong>
<div>
<span>by Simon Peyton Jones</span>
<i>at 2022-05-30T13:44:14-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>Eta reduction with casted function

We want to be able to eta-reduce
   \x y. ((f x) |> co) y
by pushing 'co' inwards.  A very small change accommodates this
See Note [Eta reduction with casted function]
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/f4f6a87af7d150765b54c56518b2f87818ae436c" style="color: #1068bf;">f4f6a87a</a></strong>
<div>
<span>by Simon Peyton Jones</span>
<i>at 2022-05-30T13:44:14-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>Do arity trimming at bindings, rather than in exprArity

Sometimes there are very large casts, and coercionRKind
can be slow.
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/610a2b83944493678d9c0540b53d17948e425d90" style="color: #1068bf;">610a2b83</a></strong>
<div>
<span>by Simon Peyton Jones</span>
<i>at 2022-05-30T13:44:14-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>Make findRhsArity take RecFlag

This avoids a fixpoint iteration for the common case of
non-recursive bindings.
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/80ba50c7f589c3a1ee95619d24f350368c9b9759" style="color: #1068bf;">80ba50c7</a></strong>
<div>
<span>by Simon Peyton Jones</span>
<i>at 2022-05-30T13:44:14-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>Comments and white space
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/0079171bae7271dc44f81c3bf26505941ee92d7e" style="color: #1068bf;">0079171b</a></strong>
<div>
<span>by Simon Peyton Jones</span>
<i>at 2022-05-30T13:44:14-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>Make PrimOpId record levity

This patch concerns #20155, part (1)

The general idea is that since primops have curried bindings
(currently in PrimOpWrappers.hs) we don't need to eta-expand
them.  But we /do/ need to eta-expand the levity-polymorphic ones,
because they /don't/ have bindings.

This patch makes a start in that direction, by identifying the
levity-polymophic primops in the PrimOpId IdDetails constructor.

For the moment, I'm still eta-expanding all primops (by saying
that hasNoBinding returns True for all primops), because of the
bug reported in #20155.  But I hope that before long we can
tidy that up too, and remove the TEMPORARILY stuff in hasNoBinding.
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/6656f0165a30fc2a22208532ba384fc8e2f11b46" style="color: #1068bf;">6656f016</a></strong>
<div>
<span>by Simon Peyton Jones</span>
<i>at 2022-05-30T13:44:14-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>A bunch of changes related to eta reduction

This is a large collection of changes all relating to eta
reduction, originally triggered by #18993, but there followed
a long saga.

Specifics:

* Move state-hack stuff from GHC.Types.Id (where it never belonged)
  to GHC.Core.Opt.Arity (which seems much more appropriate).

* Add a crucial mkCast in the Cast case of
  GHC.Core.Opt.Arity.eta_expand; helps with T18223

* Add clarifying notes about eta-reducing to PAPs.
  See Note [Do not eta reduce PAPs]

* I moved tryEtaReduce from GHC.Core.Utils to GHC.Core.Opt.Arity,
  where it properly belongs.  See Note [Eta reduce PAPs]

* In GHC.Core.Opt.Simplify.Utils.tryEtaExpandRhs, pull out the code for
  when eta-expansion is wanted, to make wantEtaExpansion, and all that
  same function in GHC.Core.Opt.Simplify.simplStableUnfolding.  It was
  previously inconsistent, but it's doing the same thing.

* I did a substantial refactor of ArityType; see Note [ArityType].
  This allowed me to do away with the somewhat mysterious takeOneShots;
  more generally it allows arityType to describe the function, leaving
  its clients to decide how to use that information.

  I made ArityType abstract, so that clients have to use functions
  to access it.

* Make GHC.Core.Opt.Simplify.Utils.rebuildLam (was stupidly called
  mkLam before) aware of the floats that the simplifier builds up, so
  that it can still do eta-reduction even if there are some floats.
  (Previously that would not happen.)  That means passing the floats
  to rebuildLam, and an extra check when eta-reducting (etaFloatOk).

* In GHC.Core.Opt.Simplify.Utils.tryEtaExpandRhs, make use of call-info
  in the idDemandInfo of the binder, as well as the CallArity info. The
  occurrence analyser did this but we were failing to take advantage here.

  In the end I moved the heavy lifting to GHC.Core.Opt.Arity.findRhsArity;
  see Note [Combining arityType with demand info], and functions
  idDemandOneShots and combineWithDemandOneShots.

  (These changes partly drove my refactoring of ArityType.)

* In GHC.Core.Opt.Arity.findRhsArity
  * I'm now taking account of the demand on the binder to give
    extra one-shot info.  E.g. if the fn is always called with two
    args, we can give better one-shot info on the binders
    than if we just look at the RHS.

  * Don't do any fixpointing in the non-recursive
    case -- simple short cut.

  * Trim arity inside the loop. See Note [Trim arity inside the loop]

* Make SimpleOpt respect the eta-reduction flag
  (Some associated refactoring here.)

* I made the CallCtxt which the Simplifier uses distinguish between
  recursive and non-recursive right-hand sides.
     data CallCtxt = ... | RhsCtxt RecFlag | ...
  It affects only one thing:
     - We call an RHS context interesting only if it is non-recursive
       see Note [RHS of lets] in GHC.Core.Unfold

* Remove eta-reduction in GHC.CoreToStg.Prep, a welcome simplification.
  See Note [No eta reduction needed in rhsToBody] in GHC.CoreToStg.Prep.

Other incidental changes

* Fix a fairly long-standing outright bug in the ApplyToVal case of
  GHC.Core.Opt.Simplify.mkDupableContWithDmds. I was failing to take the
  tail of 'dmds' in the recursive call, which meant the demands were All
  Wrong.  I have no idea why this has not caused problems before now.

* Delete dead function GHC.Core.Opt.Simplify.Utils.contIsRhsOrArg

Metrics: compile_time/bytes allocated
                               Test    Metric       Baseline      New value Change
---------------------------------------------------------------------------------------
MultiLayerModulesTH_OneShot(normal) ghc/alloc  2,743,297,692  2,619,762,992  -4.5% GOOD
                     T18223(normal) ghc/alloc  1,103,161,360    972,415,992 -11.9% GOOD
                      T3064(normal) ghc/alloc    201,222,500    184,085,360  -8.5% GOOD
                      T8095(normal) ghc/alloc  3,216,292,528  3,254,416,960  +1.2%
                      T9630(normal) ghc/alloc  1,514,131,032  1,557,719,312  +2.9%  BAD
                 parsing001(normal) ghc/alloc    530,409,812    525,077,696  -1.0%

geo. mean                                 -0.1%

Nofib:
       Program           Size    Allocs   Runtime   Elapsed  TotalMem
--------------------------------------------------------------------------------
         banner          +0.0%     +0.4%     -8.9%     -8.7%      0.0%
    exact-reals          +0.0%     -7.4%    -36.3%    -37.4%      0.0%
 fannkuch-redux          +0.0%     -0.1%     -1.0%     -1.0%      0.0%
           fft2          -0.1%     -0.2%    -17.8%    -19.2%      0.0%
          fluid          +0.0%     -1.3%     -2.1%     -2.1%      0.0%
             gg          -0.0%     +2.2%     -0.2%     -0.1%      0.0%
  spectral-norm          +0.1%     -0.2%      0.0%      0.0%      0.0%
            tak          +0.0%     -0.3%     -9.8%     -9.8%      0.0%
           x2n1          +0.0%     -0.2%     -3.2%     -3.2%      0.0%
--------------------------------------------------------------------------------
            Min          -3.5%     -7.4%    -58.7%    -59.9%      0.0%
            Max          +0.1%     +2.2%    +32.9%    +32.9%      0.0%
 Geometric Mean          -0.0%     -0.1%    -14.2%    -14.8%     -0.0%

Metric Decrease:
    MultiLayerModulesTH_OneShot
    T18223
    T3064
    T15185
    T14766
Metric Increase:
    T9630
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/cac8c7bb098002ddce0ef7c1e4429940d22d8cc2" style="color: #1068bf;">cac8c7bb</a></strong>
<div>
<span>by Matthew Pickering</span>
<i>at 2022-05-30T13:44:50-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>hadrian: Fix building from source-dist without alex/happy

This fixes two bugs which were adding dependencies on alex/happy when
building from a source dist.

* When we try to pass `--with-alex` and `--with-happy` to cabal when
  configuring but the builders are not set. This is fixed by making them
  optional.
* When we configure, cabal requires alex/happy because of the
  build-tool-depends fields. These are now made optional with a cabal
  flag (build-tool-depends) for compiler/hpc-bin/genprimopcode.

Fixes #21627
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/a96dccfe8201542086a65d168ce6d6b9d302e2c2" style="color: #1068bf;">a96dccfe</a></strong>
<div>
<span>by Matthew Pickering</span>
<i>at 2022-05-30T13:44:50-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>ci: Test the bootstrap without ALEX/HAPPY on path
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/0e5bb3a883cfc2faf8e36ff83d3d985e6f4ed93f" style="color: #1068bf;">0e5bb3a8</a></strong>
<div>
<span>by Matthew Pickering</span>
<i>at 2022-05-30T13:44:50-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>ci: Test bootstrapping in release jobs
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/d8901469223bac82ed29cb9f5e5e42bf5e927f68" style="color: #1068bf;">d8901469</a></strong>
<div>
<span>by Matthew Pickering</span>
<i>at 2022-05-30T13:44:50-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>ci: Allow testing bootstrapping on MRs using the "test-bootstrap" label
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/18326ad29b315ed9f086672c38b2c8f611bc7d19" style="color: #1068bf;">18326ad2</a></strong>
<div>
<span>by Matthew Pickering</span>
<i>at 2022-05-30T13:45:25-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>rts: Remove explicit timescale for deprecating -h flag

We originally planned to remove the flag in 9.4 but there's actually no
great rush to do so and it's probably less confusing (forever) to keep
the message around suggesting an explicit profiling option.

Fixes #21545
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/eaaa1389bd8547a7595c2c11344c8024d9d46380" style="color: #1068bf;">eaaa1389</a></strong>
<div>
<span>by Matthew Pickering</span>
<i>at 2022-05-30T13:46:01-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>Enable -dlint in hadrian lint transformer

Now #21563 is fixed we can properly enable `-dlint` in CI rather than a
subset of the flags.
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/0544f114a6aafa868d7a75f3fd77a9c5239be8d9" style="color: #1068bf;">0544f114</a></strong>
<div>
<span>by Ben Gamari</span>
<i>at 2022-05-30T19:16:55-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>upload-ghc-libs: Allow candidate-only upload
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/83467435c4ea81daa7b97ed5d914f543f9e885a3" style="color: #1068bf;">83467435</a></strong>
<div>
<span>by Sylvain Henry</span>
<i>at 2022-05-30T19:17:35-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>Avoid using DynFlags in GHC.Linker.Unit (#17957)
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/5c4421b1a2d45edfc31f2d37c8b4a47c619a424b" style="color: #1068bf;">5c4421b1</a></strong>
<div>
<span>by Matthew Pickering</span>
<i>at 2022-05-31T08:35:17-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>hadrian: Introduce new package database for executables needed to build stage0

These executables (such as hsc2hs) are built using the boot compiler and
crucially, most libraries from the global package database.

We also move other build-time executables to be built in this stage such
as linters which also cleans up which libraries end up in the global
package database. This allows us to remove hacks where linters-common is
removed from the package database when a bindist is created.

This fixes issues caused by infinite recursion due to bytestring adding
a dependency on template-haskell.

Fixes #21634
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/0dafd3e7c73d9484b76a3b3f6ffc1f2f3ad09f7b" style="color: #1068bf;">0dafd3e7</a></strong>
<div>
<span>by Matthew Pickering</span>
<i>at 2022-05-31T08:35:17-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>Build stage1 with -V as well

This helps tracing errors which happen when building stage1
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/15d42a7a1287b0466ea97bedf71f4a0b161b17b4" style="color: #1068bf;">15d42a7a</a></strong>
<div>
<span>by Matthew Pickering</span>
<i>at 2022-05-31T08:35:52-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>Revert "packaging: Build perf builds with -split-sections"

This reverts commit 699f593532a3cd5ca1c2fab6e6e4ce9d53be2c1f.

Split sections causes segfaults in profiling way with old toolchains
(deb9) and on windows (#21670)

Fixes #21670
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/d4c71f098f82b61b3dc1f056e0518c973fa51b68" style="color: #1068bf;">d4c71f09</a></strong>
<div>
<span>by John Ericson</span>
<i>at 2022-05-31T16:26:28+00:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>Purge `DynFlags` and `HscEnv` from some `GHC.Core` modules where it's not too hard

Progress towards #17957

Because of `CoreM`, I did not move the `DynFlags` and `HscEnv` to other
modules as thoroughly as I usually do. This does mean that risk of
`DynFlags` "creeping back in" is higher than it usually is.

After we do the same process to the other Core passes, and then figure
out what we want to do about `CoreM`, we can finish the job started
here.

That is a good deal more work, however, so it certainly makes sense to
land this now.
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/a720322f417547f85ae22b1930721e8cab8de281" style="color: #1068bf;">a720322f</a></strong>
<div>
<span>by romes</span>
<i>at 2022-06-01T07:44:44-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>Restore Note [Quasi-quote overview]
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/392ce3fca5d33688add52309a05914efa163e6f6" style="color: #1068bf;">392ce3fc</a></strong>
<div>
<span>by romes</span>
<i>at 2022-06-01T07:44:44-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>Move UntypedSpliceFlavour from L.H.S to GHC.Hs

UntypedSpliceFlavour was only used in the client-specific `GHC.Hs.Expr`
but was defined in the client-independent L.H.S.Expr.
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/7975202ba9010c581918413808ee06fbab9ac85f" style="color: #1068bf;">7975202b</a></strong>
<div>
<span>by romes</span>
<i>at 2022-06-01T07:44:44-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>TTG: Rework and improve splices

This commit redefines the structure of Splices in the AST.

We get rid of `HsSplice` which used to represent typed and untyped
splices, quasi quotes, and the result of splicing either an expression,
a type or a pattern.

Instead we have `HsUntypedSplice` which models an untyped splice or a
quasi quoter, which works in practice just like untyped splices.

The `HsExpr` constructor `HsSpliceE` which used to be constructed with
an `HsSplice` is split into `HsTypedSplice` and `HsUntypedSplice`. The
former is directly constructed with an `HsExpr` and the latter now takes
an `HsUntypedSplice`.

Both `HsType` and `Pat` constructors `HsSpliceTy` and `SplicePat` now
take an `HsUntypedSplice` instead of a `HsSplice` (remember only
/untyped splices/ can be spliced as types or patterns).

The result of splicing an expression, type, or pattern is now
comfortably stored in the extension fields `XSpliceTy`, `XSplicePat`,
`XUntypedSplice` as, respectively, `HsUntypedSpliceResult (HsType
GhcRn)`, `HsUntypedSpliceResult (Pat GhcRn)`, and `HsUntypedSpliceResult
(HsExpr GhcRn)`

Overall the TTG extension points are now better used to
make invalid states unrepresentable and model the progression between
stages better.

See Note [Lifecycle of an untyped splice, and PendingRnSplice]
and Note [Lifecycle of an typed splice, and PendingTcSplice] for more
details.

Updates haddock submodule

Fixes #21263

-------------------------
Metric Decrease:
    hard_hole_fits
-------------------------
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/320270c2a1cb51fb02f713f80083eb9eff488c31" style="color: #1068bf;">320270c2</a></strong>
<div>
<span>by Matthew Pickering</span>
<i>at 2022-06-01T07:44:44-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>Add test for #21619

Fixes #21619
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/ef7ddd7348070a9149d162217280c0a50f2b213d" style="color: #1068bf;">ef7ddd73</a></strong>
<div>
<span>by Pierre Le Marre</span>
<i>at 2022-06-01T07:44:47-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>Pure Haskell implementation of GHC.Unicode

Switch to a pure Haskell implementation of base:GHC.Unicode, based on the implementation of the package unicode-data (https://github.com/composewell/unicode-data/).

Approved by CLC as per https://github.com/haskell/core-libraries-committee/issues/59#issuecomment-1132106691.

- Remove current Unicode cbits.
- Add generator for Unicode property files from Unicode Character Database.
- Generate internal modules.
- Update GHC.Unicode.
- Add unicode003 test for general categories and case mappings.
- Add Python scripts to check 'base' Unicode tests outputs and characters properties.

Fixes #21375

-------------------------
Metric Decrease:
    T16875
Metric Increase:
    T4029
    T18304
    haddock.base
-------------------------
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/514a6a28db16793d6d2ca8fe7863e82943f56374" style="color: #1068bf;">514a6a28</a></strong>
<div>
<span>by Eric Lindblad</span>
<i>at 2022-06-01T07:44:51-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>typos
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/9004be3cb19d914fa723082d35689afabede796b" style="color: #1068bf;">9004be3c</a></strong>
<div>
<span>by Matthew Pickering</span>
<i>at 2022-06-01T07:44:52-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>source-dist: Copy in files created by ./boot

Since we started producing source dists with hadrian we stopped copying
in the files created by ./boot which adds a dependency on python3 and
autoreconf. This adds back in the files which were created by running
configure.

Fixes #21673 #21672 and #21626
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/a12a3cab7a58549cb1965872da8d9c10402b962d" style="color: #1068bf;">a12a3cab</a></strong>
<div>
<span>by Matthew Pickering</span>
<i>at 2022-06-01T07:44:52-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>ci: Don't try to run ./boot when testing bootstrap of source dist
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/e07f9059e90ed7f0dd48a21e653943e16aec30a6" style="color: #1068bf;">e07f9059</a></strong>
<div>
<span>by Shlomo Shuck</span>
<i>at 2022-06-01T07:44:55-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>Language.Haskell.Syntax: Fix docs for PromotedConsT etc.

Fixes ghc/ghc#21675.
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/87295e6dfcd40c8f29367df09c3106280d4b0f09" style="color: #1068bf;">87295e6d</a></strong>
<div>
<span>by Ben Gamari</span>
<i>at 2022-06-01T07:44:56-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>Bump bytestring, process, and text submodules

Metric Decrease:
    T5631
Metric Increase:
    T18223

(cherry picked from commit 55fcee30cb3281a66f792e8673967d64619643af)
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/24b5bb61c33b2675bdfb09504aeec88e70ac3abf" style="color: #1068bf;">24b5bb61</a></strong>
<div>
<span>by Ben Gamari</span>
<i>at 2022-06-01T07:44:56-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>Bump Cabal submodule

To current `master`.

(cherry picked from commit fbb59c212415188486aafd970eafef170516356a)
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/5433a35e28e2487827b88f2396865c29ecee0833" style="color: #1068bf;">5433a35e</a></strong>
<div>
<span>by Matthew Pickering</span>
<i>at 2022-06-01T22:26:30-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>hadrian/tool-args: Write output to intermediate file rather than via stdout

This allows us to see the output of hadrian while it is doing the setup.
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/468f919b1bd27d8a58a789a6bb1be4295097388c" style="color: #1068bf;">468f919b</a></strong>
<div>
<span>by Matthew Pickering</span>
<i>at 2022-06-01T22:27:10-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>Make -fcompact-unwind the default

This is a follow-up to !7247 (closed) making the inclusion of compact unwinding
sections the default.

Also a slight refactoring/simplification of the flag handling to add
-fno-compact-unwind.
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/819fdc615503ea1c7caec5057b174aee49566ecf" style="color: #1068bf;">819fdc61</a></strong>
<div>
<span>by Zubin Duggal</span>
<i>at 2022-06-01T22:27:47-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>hadrian bootstrap: add plans for 9.0.2 and 9.2.3
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/9fa790b4b33fe75c86ed7a3032eecd35774eb21e" style="color: #1068bf;">9fa790b4</a></strong>
<div>
<span>by Zubin Duggal</span>
<i>at 2022-06-01T22:27:47-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>ci: Add matrix for bootstrap sources
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/ce9f986b0a1b77a13ee6ee613c557ef007d20a1e" style="color: #1068bf;">ce9f986b</a></strong>
<div>
<span>by John Ericson</span>
<i>at 2022-06-02T15:42:59+00:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>HsToCore.Coverage: Improve haddocks
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/f065804eb7afa8a7902ccc779cf2c9fae520f956" style="color: #1068bf;">f065804e</a></strong>
<div>
<span>by John Ericson</span>
<i>at 2022-06-02T15:42:59+00:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>Hoist auto `mkModBreaks` and `writeMixEntries` conditions to caller

No need to inline traversing a maybe for `mkModBreaks`. And better to
make each function do one thing and let the caller deside when than
scatter the decision making and make the caller seem more imperative.
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/d550d9079d6518938a2e41622b1c3ebf1fb24f59" style="color: #1068bf;">d550d907</a></strong>
<div>
<span>by John Ericson</span>
<i>at 2022-06-02T15:42:59+00:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>Rename `HsToCore.{Coverage -> Ticks}`

The old name made it confusing why disabling HPC didn't disable the
entire pass. The name makes it clear --- there are other reasons to add
ticks in addition.
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/6520da955ec003b3f7ba931e81df4c4f9873f185" style="color: #1068bf;">6520da95</a></strong>
<div>
<span>by John Ericson</span>
<i>at 2022-06-02T15:42:59+00:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>Split out `GHC.HsToCore.{Breakpoints,Coverage}` and use `SizedSeq`

As proposed in
https://gitlab.haskell.org/ghc/ghc/-/merge_requests/7508#note_432877 and
https://gitlab.haskell.org/ghc/ghc/-/merge_requests/7508#note_434676,
`GHC.HsToCore.Ticks` is about ticks, breakpoints are separate and
backend-specific (only for the bytecode interpreter), and mix entry
writing is just for HPC.

With this split we separate out those interpreter- and HPC-specific
its, and keep the main `GHC.HsToCore.Ticks` agnostic.

Also, instead of passing the reversed list and count around, we use
`SizedSeq` which abstracts over the algorithm. This is much nicer to
avoid noise and prevents bugs.

(The bugs are not just hypothetical! I missed up the reverses on an
earlier draft of this commit.)
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/1838c3d8ed53bdd6750037f5cbbce771369820d5" style="color: #1068bf;">1838c3d8</a></strong>
<div>
<span>by Sylvain Henry</span>
<i>at 2022-06-02T15:43:14+00:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>GHC.HsToCore.Breakpoints: Slightly improve perf

We have the length already, so we might as well use that rather than
O(n) recomputing it.
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/5a3fdcfd615b502f123bb31f42d22577d44748ac" style="color: #1068bf;">5a3fdcfd</a></strong>
<div>
<span>by John Ericson</span>
<i>at 2022-06-02T15:43:59+00:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>HsToCore.Coverage: Purge DynFlags

Finishes what !7467 (closed) started.

Progress towards #17957
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/9ce9ea5071af5c7a5b6fcef11ac6e19c14480901" style="color: #1068bf;">9ce9ea50</a></strong>
<div>
<span>by HaskellMouse</span>
<i>at 2022-06-06T09:50:00-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>Deprecate TypeInType extension

This commit fixes #20312
It deprecates "TypeInType" extension
according to the following proposal:
https://github.com/ghc-proposals/ghc-proposals/blob/master/proposals/0083-no-type-in-type.rst

It has been already implemented.

The migration strategy:
 1. Disable TypeInType
 2. Enable both DataKinds and PolyKinds extensions

Metric Decrease:
    T16875
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/f2e037fd453a13e15cca487e37c21ce3c8756007" style="color: #1068bf;">f2e037fd</a></strong>
<div>
<span>by Aaron Allen</span>
<i>at 2022-06-06T09:50:39-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>Diagnostics conversions, part 6 (#20116)

Replaces uses of `TcRnUnknownMessage` with proper diagnostics
constructors in `GHC.Tc.Gen.Match`, `GHC.Tc.Gen.Pat`, and
`GHC.Tc.Gen.Sig`.
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/04209f2a6a49f6cdc116b5cb73ccd1749c90f88b" style="color: #1068bf;">04209f2a</a></strong>
<div>
<span>by Simon Peyton Jones</span>
<i>at 2022-06-06T09:51:15-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>Ensure floated dictionaries are in scope (again)

In the Specialiser, we missed one more call to
bringFloatedDictsIntoScope (see #21391).

This omission led to #21689. The problem is that the call
to `rewriteClassOps` needs to have in scope any dictionaries
floated out of the arguments we have just specialised.

Easy fix.
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/a7fece19cb56b6aa3ae7f81d1a34276ad55fdf2a" style="color: #1068bf;">a7fece19</a></strong>
<div>
<span>by John Ericson</span>
<i>at 2022-06-07T05:04:22+00:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>Don't print the number of deps in count-deps tests

It is redundant information and a source of needless version control
conflicts when multiple MRs are changing the deps list.

Just printing the list and not also its length is fine.
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/a1651a3afab9b195440436432385d839abb7d389" style="color: #1068bf;">a1651a3a</a></strong>
<div>
<span>by John Ericson</span>
<i>at 2022-06-07T05:06:38+00:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>Core.Lint: Reduce `DynFlags` and `HscEnv`

Co-Authored-By: Andre Marianiello <andremarianiello@users.noreply.github.com>
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/56ebf9a5bfc8791c1fa609b960f3c161882540e3" style="color: #1068bf;">56ebf9a5</a></strong>
<div>
<span>by Andreas Klebinger</span>
<i>at 2022-06-09T09:11:43-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>Fix a CSE shadowing bug.

We used to process the rhs of non-recursive bindings and their body
using the same env. If we had something like
    let x = ... x ...
this caused trouble because the two xs refer to different binders
but we would substitute both for a new binder x2 causing out of scope
errors.

We now simply use two different envs for the rhs and body in cse_bind.
It's all explained in the Note [Separate envs for let rhs and body]

Fixes #21685
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/28880828182a32bcb39ce8230965a8bc17aeb218" style="color: #1068bf;">28880828</a></strong>
<div>
<span>by sheaf</span>
<i>at 2022-06-09T09:12:19-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>Typecheck remaining ValArgs in rebuildHsApps

This patch refactors hasFixedRuntimeRep_remainingValArgs, renaming it
to tcRemainingValArgs. The logic is moved to rebuildHsApps, which
ensures consistent behaviour across tcApp and quickLookArg1/tcEValArg.

This patch also refactors the treatment of stupid theta for data
constructors, changing the place we drop stupid theta arguments
from dsConLike to mkDataConRep (now the datacon wrapper drops these
arguments).

We decided not to implement PHASE 2 of the FixedRuntimeRep plan for
these remaining ValArgs. Future directions are outlined on the wiki:
  https://gitlab.haskell.org/ghc/ghc/-/wikis/Remaining-ValArgs

Fixes #21544 and #21650
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/1fbba97b17d7bbfada0d9620d126f84b8d57be2d" style="color: #1068bf;">1fbba97b</a></strong>
<div>
<span>by Matthew Pickering</span>
<i>at 2022-06-09T09:12:54-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>Add test for T21682

Fixes #21682
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/8727be73296c16c11e01f42691ea27738436b28b" style="color: #1068bf;">8727be73</a></strong>
<div>
<span>by Andreas Klebinger</span>
<i>at 2022-06-09T09:13:29-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>Document dataToTag# primop
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/7eab75bb2d176ea09de535be17130dc9dae42a02" style="color: #1068bf;">7eab75bb</a></strong>
<div>
<span>by uhbif19</span>
<i>at 2022-06-09T20:22:47+03:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>Remove TcRnUnknownMessage usage from GHC.Rename.Env #20115
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/46d2fc65fd1eaf3284dc01a2fcebcef2cce4bee3" style="color: #1068bf;">46d2fc65</a></strong>
<div>
<span>by uhbif19</span>
<i>at 2022-06-09T20:24:40+03:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>Fix TcRnPragmaWarning meaning
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/69e72ecda720d10308516366044952ddd6290e7e" style="color: #1068bf;">69e72ecd</a></strong>
<div>
<span>by Matthew Pickering</span>
<i>at 2022-06-09T19:07:01-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>getProcessCPUTime: Fix the getrusage fallback to account for system CPU time

clock_gettime reports the combined total or user AND system time so in
order to replicate it with getrusage we need to add both system and user
time together.

See https://stackoverflow.com/questions/7622371/getrusage-vs-clock-gettime

Some sample measurements when building Cabal with this patch

t1: rusage
t2: clock_gettime

t1: 62347518000; t2: 62347520873
t1: 62395687000; t2: 62395690171
t1: 62432435000; t2: 62432437313
t1: 62478489000; t2: 62478492465
t1: 62514990000; t2: 62514992534
t1: 62515479000; t2: 62515480327
t1: 62515485000; t2: 62515486344

Fixes #21656
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/722814ba43af29ea863ed699ec706c89286046b1" style="color: #1068bf;">722814ba</a></strong>
<div>
<span>by Yiyun Liu</span>
<i>at 2022-06-10T21:23:03-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>Use <br> instead of newline character
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/dc202080d6cb26bab38233266d539b626258cd2c" style="color: #1068bf;">dc202080</a></strong>
<div>
<span>by Matthew Craven</span>
<i>at 2022-06-13T14:07:12-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>Use (fixed_lev = True) in mkDataTyConRhs
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/ad70c621c4ca2c99232c3711050a6ab88184a10a" style="color: #1068bf;">ad70c621</a></strong>
<div>
<span>by Matthew Pickering</span>
<i>at 2022-06-14T08:40:53-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>hadrian: Fix testing stage1 compiler

There were various issues with testing the stage1 compiler..

1. The wrapper was not being built
2. The wrapper was picking up the stage0 package database and trying to
   load prelude from that.
3. The wrappers never worked on windows so just don't support that for
   now.

Fixes #21072
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/ac83899dcb5931913699d191f2c46780483ed07e" style="color: #1068bf;">ac83899d</a></strong>
<div>
<span>by Ben Gamari</span>
<i>at 2022-06-14T08:41:30-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>validate: Ensure that $make variable is set

Currently the `$make` variable is used without being set in `validate`'s
Hadrian path, which uses make to install the binary distribution. Fix
this.

Fixes #21687.
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/59bc600871eb23d3cf83025a3c05dbb3a14b033a" style="color: #1068bf;">59bc6008</a></strong>
<div>
<span>by John Ericson</span>
<i>at 2022-06-15T18:05:35+00:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>CoreToStg.Prep: Get rid of `DynFlags` and `HscEnv`

The call sites in `Driver.Main` are duplicative, but this is good,
because the next step is to remove `InteractiveContext` from `Core.Lint`
into `Core.Lint.Interactive`.

Also further clean up `Core.Lint` to use a better configuration record
than the one we initially added.
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/aa9d9381e5c5d7b96966d817372085897585ecdd" style="color: #1068bf;">aa9d9381</a></strong>
<div>
<span>by Ben Gamari</span>
<i>at 2022-06-15T20:33:04-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>hadrian: Run xattr -rc . on bindist tarball

Fixes #21506.
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/cdc75a1fedfa3c0f6b3fb365247e7fbc53b9147b" style="color: #1068bf;">cdc75a1f</a></strong>
<div>
<span>by Ben Gamari</span>
<i>at 2022-06-15T20:33:04-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>configure: Hide spurious warning from ld

Previously the check_for_gold_t22266 configure check could result in
spurious warnings coming from the linker being blurted to stderr.
Suppress these by piping stderr to /dev/null.
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/e128b7b8a139a1b952aa409811f181572f5b607b" style="color: #1068bf;">e128b7b8</a></strong>
<div>
<span>by Ben Gamari</span>
<i>at 2022-06-15T20:33:40-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>cmm: Add surface syntax for MO_MulMayOflo
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/bde65ea90ed61696eefc93c83efddf7af68d413e" style="color: #1068bf;">bde65ea9</a></strong>
<div>
<span>by Ben Gamari</span>
<i>at 2022-06-15T20:34:16-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>configure: Don't attempt to override linker on Darwin

Configure's --enable-ld-override functionality is intended to ensure
that we don't rely on ld.bfd, which tends to be slow and buggy, on
Linux and Windows. However, on Darwin the lack of sensible package
management makes it extremely easy for users to have awkward mixtures of
toolchain components from, e.g., XCode, the Apple Command-Line Tools
package, and homebrew. This leads to extremely confusing problems
like #21712.

Here we avoid this by simply giving up on linker selection on Darwin
altogether. This isn't so bad since the Apple ld64 linker has decent
performance and AFAICT fairly reliable.

Closes #21712.
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/25b510c3ffdb6f43695c31c0740a5cbe1b7f3898" style="color: #1068bf;">25b510c3</a></strong>
<div>
<span>by Torsten Schmits</span>
<i>at 2022-06-16T12:37:45-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>replace quadratic nub to fight byte code gen perf explosion

Despite this code having been present in the core-to-bytecode
implementation, I have observed it in the wild starting with 9.2,
causing enormous slowdown in certain situations.

My test case produces the following profiles:

Before:

```
        total time  =      559.77 secs   (559766 ticks @ 1000 us, 1 processor)
        total alloc = 513,985,665,640 bytes  (excludes profiling overheads)

COST CENTRE MODULE         SRC                                         %time %alloc  ticks     bytes

elem_by     Data.OldList   libraries/base/Data/OldList.hs:429:1-7       67.6   92.9  378282 477447404296
eqInt       GHC.Classes    libraries/ghc-prim/GHC/Classes.hs:275:8-14   12.4    0.0  69333        32
$c>>=       GHC.Data.IOEnv <no location info>                            6.9    0.6  38475 3020371232
```

After:

```
        total time  =       89.83 secs   (89833 ticks @ 1000 us, 1 processor)
        total alloc = 39,365,306,360 bytes  (excludes profiling overheads)

COST CENTRE           MODULE                SRC                                                                  %time %alloc  ticks     bytes

$c>>=                 GHC.Data.IOEnv        <no location info>                                                    43.6    7.7  39156 3020403424
doCase                GHC.StgToByteCode     compiler/GHC/StgToByteCode.hs:(805,1)-(1054,53)                        2.5    7.4   2246 2920777088

```
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/aa7e1f209ddf3dba66b3b212bf2089986c10023e" style="color: #1068bf;">aa7e1f20</a></strong>
<div>
<span>by Matthew Pickering</span>
<i>at 2022-06-16T12:38:21-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>hadrian: Don't install `include/` directory in bindist.

The install_includes for the RTS package used to be put in the top-level
./include folder but this would lead to confusing things happening if
you installed multiple GHC versions side-by-side.

We don't need this folder anymore because install-includes
is honoured properly by cabal and the relevant header files already
copied in by the cabal installation process.

If you want to depend on the header files for the RTS in a Haskell
project then you just have to depend on the `rts` package and the
correct include directories will be provided for you.

If you want to depend on the header files in a standard C project then
you should query ghc-pkg to get the right paths.

```
ghc-pkg field rts include-dirs  --simple-output
```

Fixes #21609
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/031721163eb6e713dd67e1ac512ae137c57ba1c2" style="color: #1068bf;">03172116</a></strong>
<div>
<span>by Bryan Richter</span>
<i>at 2022-06-16T12:38:57-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>Enable eventlogs on nightly perf job
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/ecbf86853acd64ea1ee1756216233662a0bdb80e" style="color: #1068bf;">ecbf8685</a></strong>
<div>
<span>by Hécate Moonlight</span>
<i>at 2022-06-16T16:30:00-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>Repair dead link in TH haddocks

Closes #21724
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/99ff3818ad016dc30a044043fff682660dc56dfa" style="color: #1068bf;">99ff3818</a></strong>
<div>
<span>by sheaf</span>
<i>at 2022-06-16T16:30:39-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>Hadrian: allow configuring Hsc2Hs

This patch adds the ability to pass options to Hsc2Hs as Hadrian
key/value settings, in the same way as cabal configure options,
using the syntax:

  *.*.hsc2hs.run.opts += ...
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/9c575f24d41fed616e6f96fcbb4fa9a9687497a6" style="color: #1068bf;">9c575f24</a></strong>
<div>
<span>by sheaf</span>
<i>at 2022-06-16T16:30:39-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>Hadrian bootstrap: look up hsc2hs

Hadrian bootstrapping looks up where to find ghc_pkg, but the same
logic was not in place for hsc2hs which meant we could fail to
find the appropriate hsc2hs executabe when bootstrapping Hadrian.
This patch adds that missing logic.
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/229d741f9907f0a07c475291fe3b1dbfcfea7aab" style="color: #1068bf;">229d741f</a></strong>
<div>
<span>by Ben Gamari</span>
<i>at 2022-06-18T10:42:54-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>ghc-heap: Add (broken) test for #21622
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/cadd775397a88889bb6be6aca34469eea8ba17ec" style="color: #1068bf;">cadd7753</a></strong>
<div>
<span>by Ben Gamari</span>
<i>at 2022-06-18T10:42:54-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>ghc-heap: Don't Box NULL pointers

Previously we could construct a `Box` of a NULL pointer from the `link`
field of `StgWeak`. Now we take care to avoid ever introducing such
pointers in `collect_pointers` and ensure that the `link` field is
represented as a `Maybe` in the `Closure` type.

Fixes #21622
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/31c214cc9d3873b7d1bf4751700cc6c7da09e11d" style="color: #1068bf;">31c214cc</a></strong>
<div>
<span>by Tamar Christina</span>
<i>at 2022-06-18T10:43:34-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>winio: Add support to console handles to handleToHANDLE
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/711cb417606e351ea525d7a322b591b3b0e23bdd" style="color: #1068bf;">711cb417</a></strong>
<div>
<span>by Ben Gamari</span>
<i>at 2022-06-18T10:44:11-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>CmmToAsm/AArch64: Add SMUL[LH] instructions

These will be needed to fix #21624.
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/d05d90d26d0820d4d24c461888bcd1993ebef36c" style="color: #1068bf;">d05d90d2</a></strong>
<div>
<span>by Ben Gamari</span>
<i>at 2022-06-18T10:44:11-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>CmmToAsm/AArch64: Fix syntax of OpRegShift operands

Previously this produced invalid assembly containing a redundant comma.
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/a1e1d8eecceaa2fa64668376d5ea44990d94a3ea" style="color: #1068bf;">a1e1d8ee</a></strong>
<div>
<span>by Ben Gamari</span>
<i>at 2022-06-18T10:44:11-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>ncg/aarch64: Fix implementation of IntMulMayOflo

The code generated for IntMulMayOflo was previously wrong as it
depended upon the overflow flag, which the AArch64 MUL instruction does
not set. Fix this.

Fixes #21624.
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/26745006bdecc2d269fd8252b189650d6bd7ac10" style="color: #1068bf;">26745006</a></strong>
<div>
<span>by Ben Gamari</span>
<i>at 2022-06-18T10:44:11-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>testsuite: Add test for #21624

Ensuring that mulIntMayOflo# behaves as expected.
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/94f2e92a2510a3338c5201a4dcc69666fa9575f8" style="color: #1068bf;">94f2e92a</a></strong>
<div>
<span>by Sebastian Graf</span>
<i>at 2022-06-20T09:40:58+02:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>CprAnal: Set signatures of DFuns to top

The recursive DFun in the reproducer for #20836 also triggered a bug in CprAnal
that is observable in a debug build. The CPR signature of a recursive DFunId
was never updated and hence the optimistic arity 0 bottom signature triggered a
mismatch with the arity 1 of the binding in WorkWrap. We never miscompiled any
code because WW doesn't exploit bottom CPR signatures.
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/b570da84b7aad5ca3f90f2d1c1a690c927e99fe9" style="color: #1068bf;">b570da84</a></strong>
<div>
<span>by Sebastian Graf</span>
<i>at 2022-06-20T09:43:29+02:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>CorePrep: Don't speculatively evaluate recursive calls (#20836)

In #20836 we have optimised a terminating program into an endless loop,
because we speculated the self-recursive call of a recursive DFun.
Now we track the set of enclosing recursive binders in CorePrep to prevent
speculation of such self-recursive calls.

See the updates to Note [Speculative evaluation] for details.

Fixes #20836.
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/49fb2f9b16ca987648d2ac57eecf1892d49852ec" style="color: #1068bf;">49fb2f9b</a></strong>
<div>
<span>by Sebastian Graf</span>
<i>at 2022-06-20T09:43:32+02:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>Simplify: Take care with eta reduction in recursive RHSs (#21652)

Similar to the fix to #20836 in CorePrep, we now track the set of enclosing
recursive binders in the SimplEnv and SimpleOptEnv.
See Note [Eta reduction in recursive RHSs] for details.

I also updated Note [Arity robustness] with the insights Simon and I had in a
call discussing the issue.

Fixes #21652.

Unfortunately, we get a 5% ghc/alloc regression in T16577. That is due to
additional eta reduction in GHC.Read.choose1 and the resulting ANF-isation
of a large list literal at the top-level that didn't happen before (presumably
because it was too interesting to float to the top-level). There's not much we
can do about that.

Metric Increase:
    T16577
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/2563b95cda983cd6be23a5be01fe1f1873f1fa4f" style="color: #1068bf;">2563b95c</a></strong>
<div>
<span>by Sebastian Graf</span>
<i>at 2022-06-20T09:45:09+02:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>Ignore .hie-bios
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/e4e44d8d54518fa88318e9f5ebe109839f6c180a" style="color: #1068bf;">e4e44d8d</a></strong>
<div>
<span>by Simon Peyton Jones</span>
<i>at 2022-06-20T12:31:45-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>Instantiate top level foralls in partial type signatures

The main fix for #21667 is the new call to tcInstTypeBnders
in tcHsPartialSigType. It was really a simple omission before.

I also moved the decision about whether we need to apply the
Monomorphism Restriction, from `decideGeneralisationPlan` to
`tcPolyInfer`.  That removes a flag from the InferGen constructor,
which is good.

But more importantly, it allows the new function,
   checkMonomorphismRestriction
called from `tcPolyInfer`, to "see" the `Types` involved rather than
the `HsTypes`.  And that in turn matters because we invoke the MR for
partial signatures if none of the partial signatures in the group have
any overloading context; and we can't answer that question for HsTypes.
See Note [Partial type signatures and the monomorphism restriction]
in GHC.Tc.Gen.Bind.

This latter is really a pre-existing bug.
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/262a9f93e84ffacd6540e72e941e3cc69cf87807" style="color: #1068bf;">262a9f93</a></strong>
<div>
<span>by Winston Hartnett</span>
<i>at 2022-06-20T12:32:23-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>Make Outputable instance for InlineSig print the InlineSpec

Fix ghc/ghc#21739

Squash fix ghc/ghc#21739
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/b5590fff75496356b1817adc9de1f2d361a70dc5" style="color: #1068bf;">b5590fff</a></strong>
<div>
<span>by Matthew Pickering</span>
<i>at 2022-06-20T12:32:59-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>Add NO_BOOT to hackage_doc_tarball job

We were attempting to boot a src-tarball which doesn't work as ./boot is
not included in the source tarball. This slipped through as the job is
only run on nightly.
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/d24afd9d7139d7a62f3b465af1be50b25c15e5b5" style="color: #1068bf;">d24afd9d</a></strong>
<div>
<span>by Vladislav Zavialov</span>
<i>at 2022-06-20T17:34:44-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>HsToken for @-patterns and TypeApplications (#19623)

One more step towards the new design of EPA.
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/159b76282e50a138250557baa6aa4ed7cf031070" style="color: #1068bf;">159b7628</a></strong>
<div>
<span>by Tamar Christina</span>
<i>at 2022-06-20T17:35:23-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>linker: only keep rtl exception tables if they have been relocated
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/da5ff10503e683e2148c62e36f8fe2f819328862" style="color: #1068bf;">da5ff105</a></strong>
<div>
<span>by Andreas Klebinger</span>
<i>at 2022-06-21T17:04:12+02:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>Ticky:Make json info a separate field.
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/1a4ce4b27623b3bcde8a02f0bd43402fbd78ff8a" style="color: #1068bf;">1a4ce4b2</a></strong>
<div>
<span>by Matthew Pickering</span>
<i>at 2022-06-22T09:49:22+01:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>Revert "Ticky:Make json info a separate field."

This reverts commit da5ff10503e683e2148c62e36f8fe2f819328862.

This was pushed directly without review.
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/f89bf85fcedb595f457dee2c7ef50a15cc958c1a" style="color: #1068bf;">f89bf85f</a></strong>
<div>
<span>by Vanessa McHale</span>
<i>at 2022-06-22T08:21:32-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>Flags to disable local let-floating; -flocal-float-out, -flocal-float-out-top-level CLI flags

These flags affect the behaviour of local let floating.

If `-flocal-float-out` is disabled (the default) then we disable all
local floating.

```
…(let x = let y = e in (a,b) in body)...
===>
…(let y = e; x = (a,b) in body)...

```

Further to this, top-level local floating can be disabled on it's own by
passing -fno-local-float-out-top-level.

```
x = let y = e in (a,b)
===>
y = e; x = (a,b)
```

Note that this is only about local floating, ie, floating two adjacent
lets past each other and doesn't say anything about the global floating
pass which is controlled by `-fno-float`.

Fixes #13663
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/4ccefc6ea83073319c59690e340916175087dace" style="color: #1068bf;">4ccefc6e</a></strong>
<div>
<span>by Matthew Craven</span>
<i>at 2022-06-22T08:22:12-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>Check for Int overflows in Data.Array.Byte
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/2004e3c87b6b1e486d83fefb6d187039ad461093" style="color: #1068bf;">2004e3c8</a></strong>
<div>
<span>by Matthew Craven</span>
<i>at 2022-06-22T08:22:12-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>Add a basic test for ByteArray's Monoid instance
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/fb36770c8302c8ac163d53dca35af29b2f5676b4" style="color: #1068bf;">fb36770c</a></strong>
<div>
<span>by Matthew Craven</span>
<i>at 2022-06-22T08:22:12-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>Rename `copyByteArray` to `unsafeCopyByteArray`
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/ecc9aedc1f199a1a7ad8ab3babcc080f414d0978" style="color: #1068bf;">ecc9aedc</a></strong>
<div>
<span>by Ben Gamari</span>
<i>at 2022-06-22T08:22:48-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>testsuite: Add test for #21719

Happily, this has been fixed since 9.2.
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/19606c4208db191165285b79ebc1efe7fb7f4ae4" style="color: #1068bf;">19606c42</a></strong>
<div>
<span>by Brandon Chinn</span>
<i>at 2022-06-22T08:23:28-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>Use lookupNameCache instead of lookupOrigIO
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/4c9dfd69621c85abad70764359af2fd87138b335" style="color: #1068bf;">4c9dfd69</a></strong>
<div>
<span>by Brandon Chinn</span>
<i>at 2022-06-22T08:23:28-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>Break out thNameToGhcNameIO (ref. #21730)
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/eb4fb8493823d9b962c26507d01a921dca8b8857" style="color: #1068bf;">eb4fb849</a></strong>
<div>
<span>by Michael Peyton Jones</span>
<i>at 2022-06-22T08:24:07-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>Add laws for 'toInteger' and 'toRational'

CLC discussion here:
https://github.com/haskell/core-libraries-committee/issues/58
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/c1a950c1ea6f22a1d837389c02ba83122cb5c160" style="color: #1068bf;">c1a950c1</a></strong>
<div>
<span>by Alexander Esgen</span>
<i>at 2022-06-22T12:36:13+00:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>Correct documentation of defaults of the `-V` RTS option
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/b7b7d90d0522e17f0401908e6a5649402a37a072" style="color: #1068bf;">b7b7d90d</a></strong>
<div>
<span>by Matthew Pickering</span>
<i>at 2022-06-22T21:58:12-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>Transcribe discussion from #21483 into a Note

In #21483 I had a discussion with Simon Marlow about the memory
retention behaviour of -Fd. I have just transcribed that conversation
here as it elucidates the potentially subtle assumptions which led to
the design of the memory retention behaviours of -Fd.

Fixes #21483
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/980d19547fe3d4e3f03e7d0d35dd4c18b6aa6506" style="color: #1068bf;">980d1954</a></strong>
<div>
<span>by Ben Gamari</span>
<i>at 2022-06-22T21:58:48-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>eventlog: Don't leave dangling pointers hanging around

Previously we failed to reset pointers to various eventlog buffers to
NULL after freeing them. In principle we shouldn't look at them after
they are freed but nevertheless it is good practice to set them to a
well-defined value.
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/575ec84679e59a7ca4e7f65b672b403f8032fb21" style="color: #1068bf;">575ec846</a></strong>
<div>
<span>by Eric Lindblad</span>
<i>at 2022-06-22T21:59:28-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>runhaskell</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/e6a69337ff54d0800ddf78f40f551559479502e8" style="color: #1068bf;">e6a69337</a></strong>
<div>
<span>by Artem Pelenitsyn</span>
<i>at 2022-06-22T22:00:07-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>re-export GHC.Natural.minusNaturalMaybe from Numeric.Natural

CLC proposal: https://github.com/haskell/core-libraries-committee/issues/45
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/5d45aa97d0a7f4c5994bf942b0774505bd799714" style="color: #1068bf;">5d45aa97</a></strong>
<div>
<span>by Gergo ERDI</span>
<i>at 2022-06-22T22:00:46-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>When specialising, look through floatable ticks.

Fixes #21697.
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/531205ac090be2dc0c544c1a34c6d3b665aa558a" style="color: #1068bf;">531205ac</a></strong>
<div>
<span>by Andreas Klebinger</span>
<i>at 2022-06-22T22:01:22-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>TagCheck.hs: Properly check if arguments are boxed types.

For one by mistake I had been checking against the kind of runtime rep
instead of the boxity.

This uncovered another bug, namely that we tried to generate the
checking code before we had associated the function arguments with
a register, so this could never have worked to begin with.

This fixes #21729 and both of the above issues.
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/c7f9f6b547f502a20602ea33fdef893367efe476" style="color: #1068bf;">c7f9f6b5</a></strong>
<div>
<span>by Gleb Popov</span>
<i>at 2022-06-22T22:02:00-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>Use correct arch for the FreeBSD triple in gen-data-layout.sh

Downstream bug for reference: https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=261798
Relevant upstream issue: #15718
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/75f0091bc59437c96fc076a31f389735f7302c9a" style="color: #1068bf;">75f0091b</a></strong>
<div>
<span>by Andreas Klebinger</span>
<i>at 2022-06-22T22:02:35-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>Bump nofib submodule.

Allows the shake runner to build with 9.2.3 among other things.

Fixes #21772
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/0aa0ce69d835e2fef49cbd2d8f344182c07adc63" style="color: #1068bf;">0aa0ce69</a></strong>
<div>
<span>by Ben Gamari</span>
<i>at 2022-06-27T08:01:03-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>Bump ghc-prim and base versions

To 0.9.0 and 4.17.0 respectively.

Bumps array, deepseq, directory, filepath, haskeline, hpc, parsec, stm,
terminfo, text, unix, haddock, and hsc2hs submodules.

(cherry picked from commit ba47b95122b7b336ce1cc00896a47b584ad24095)
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/4713abc269953d37ca8c94eafb1d3b9968441ac8" style="color: #1068bf;">4713abc2</a></strong>
<div>
<span>by Ben Gamari</span>
<i>at 2022-06-27T08:01:03-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>testsuite: Use normalise_version more consistently

Previously several tests' output were unnecessarily dependent on version
numbers, particularly of `base`. Fix this.
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/d7b0642beb31799b0290ed87f3b731ab70a2617f" style="color: #1068bf;">d7b0642b</a></strong>
<div>
<span>by Matthew Pickering</span>
<i>at 2022-06-27T08:01:03-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>linters: Fix lint-submodule-refs when crashing trying to find plausible branches
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/38378be3506f0d4f597fcd5aa2d9db3124fbf535" style="color: #1068bf;">38378be3</a></strong>
<div>
<span>by Andreas Klebinger</span>
<i>at 2022-06-27T08:01:39-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>hadrian: Improve haddocks for ghcDebugAssertions
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/ac7a7fc88b51f9fb4e84499397e12eb0081ba79e" style="color: #1068bf;">ac7a7fc8</a></strong>
<div>
<span>by Andreas Klebinger</span>
<i>at 2022-06-27T08:01:39-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>Don't mark lambda binders as OtherCon

We used to put OtherCon unfoldings on lambda binders of workers
and sometimes also join points/specializations with with the
assumption that since the wrapper would force these arguments
once we execute the RHS they would indeed be in WHNF.

This was wrong for reasons detailed in #21472. So now we purge
evaluated unfoldings from *all* lambda binders.

This fixes #21472, but at the cost of sometimes not using as efficient a
calling convention. It can also change inlining behaviour as some
occurances will no longer look like value arguments when they did
before.

As consequence we also change how we compute CBV information for
arguments slightly. We now *always* determine the CBV convention
for arguments during tidy. Earlier in the pipeline we merely mark
functions as candidates for having their arguments treated as CBV.

As before the process is described in the relevant notes:
Note [CBV Function Ids]
Note [Attaching CBV Marks to ids]
Note [Never put `OtherCon` unfoldigns on lambda binders]

-------------------------
Metric Decrease:
    T12425
    T13035
    T18223
    T18223
    T18923
    MultiLayerModulesTH_OneShot
Metric Increase:
    WWRec
-------------------------
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/06cf6f4a3c9e520b054b7d83feb622ee15796a94" style="color: #1068bf;">06cf6f4a</a></strong>
<div>
<span>by Tony Zorman</span>
<i>at 2022-06-27T08:02:18-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>Add suggestions for unrecognised pragmas (#21589)

In case of a misspelled pragma, offer possible corrections as to what
the user could have meant.

Fixes: https://gitlab.haskell.org/ghc/ghc/-/issues/21589
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/3fbab7572672200bcccb11cd0f0f93b01ae2580d" style="color: #1068bf;">3fbab757</a></strong>
<div>
<span>by Greg Steuck</span>
<i>at 2022-06-27T08:02:56-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>Remove the traces of i386-*-openbsd, long live amd64

OpenBSD will not ship any ghc packages on i386 starting with 7.2
release.  This means there will not be a bootstrap compiler easily
available.  The last available binaries are ghc-8.10.6 which is
already not supported as bootstrap for HEAD.

See here for more information:

https://marc.info/?l=openbsd-ports&m=165060700222580&w=2
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/58530271e5e3044623b7e2343f2152ca0092b5a2" style="color: #1068bf;">58530271</a></strong>
<div>
<span>by Bodigrim</span>
<i>at 2022-06-27T08:03:34-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>Add Foldable1 and Bifoldable1 type classes

Approved by CLC in https://github.com/haskell/core-libraries-committee/issues/9

Instances roughly follow
https://hackage.haskell.org/package/semigroupoids-5.3.7/docs/Data-Semigroup-Foldable-Class.html#t:Foldable1
but the API of `Foldable1` was expanded in comparison to `semigroupoids`.

Compatibility shim is available from https://github.com/phadej/foldable1 (to be released).

Closes #13573.
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/a51f4ecceff8817b906fc07e3fdf907f1f637eb0" style="color: #1068bf;">a51f4ecc</a></strong>
<div>
<span>by Naomi Liu</span>
<i>at 2022-06-27T08:04:13-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>add levity polymorphism to addrToAny#
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/f4edcdc48c66fbfad41db3839424b2b2b7236581" style="color: #1068bf;">f4edcdc4</a></strong>
<div>
<span>by Naomi Liu</span>
<i>at 2022-06-27T08:04:13-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>add tests for addrToAny# levity
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/07016fc91c97e26fa330744d2eb0fa35550df969" style="color: #1068bf;">07016fc9</a></strong>
<div>
<span>by Matthew Pickering</span>
<i>at 2022-06-27T08:04:49-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>hadrian: Update main README page

This README had some quite out-of-date content about the build system so
I did a complete pass deleting old material. I also made the section
about flavours more prominent and mentioned flavour transformers.
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/79ae2d897371946c0d3b9851228079974e759c6b" style="color: #1068bf;">79ae2d89</a></strong>
<div>
<span>by Ben Gamari</span>
<i>at 2022-06-27T08:05:24-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>testsuite: Hide output from test compilations with verbosity==2

Previously the output from test compilations used to determine whether,
e.g., profiling libraries are available was shown with verbosity
levels >= 2. However, the default level is 2, meaning that most users
were often spammed with confusing errors. Fix this by bumping the
verbosity threshold for this output to >=3.

Fixes #21760.</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/995ea44d929d6141bb1a83912f45e9802faffb33" style="color: #1068bf;">995ea44d</a></strong>
<div>
<span>by Ben Gamari</span>
<i>at 2022-06-27T08:06:00-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>configure: Only probe for LD in FIND_LD

Since 6be2c5a7e9187fc14d51e1ec32ca235143bb0d8b we would probe for LD
rather early in `configure`. However, it turns out that this breaks
`configure`'s `ld`-override logic, which assumes that `LD` was set by
the user and aborts.

Fixes #21778.
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/b43d140b3f79e024489bbd9338d81d2ac23fc437" style="color: #1068bf;">b43d140b</a></strong>
<div>
<span>by Sergei Trofimovich</span>
<i>at 2022-06-27T08:06:39-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>`.hs-boot` make rules: add missing order-only dependency on target directory

Noticed missing target directory dependency as a build failure in
`make --shuffle` mode (added in https://savannah.gnu.org/bugs/index.php?62100):

    "cp" libraries/base/./GHC/Stack/CCS.hs-boot libraries/base/dist-install/build/GHC/Stack/CCS.hs-boot
    cp: cannot create regular file 'libraries/base/dist-install/build/GHC/Stack/CCS.hs-boot': No such file or directory
    libraries/haskeline/ghc.mk:4: libraries/haskeline/dist-install/build/.depend-v-p-dyn.haskell: No such file or directory
    make[1]: *** [libraries/base/ghc.mk:4: libraries/base/dist-install/build/GHC/Stack/CCS.hs-boot] Error 1 shuffle=1656129254
    make: *** [Makefile:128: all] Error 2 shuffle=1656129254

Note that `cp` complains about inability to create target file.

The change adds order-only dependency on a target directory (similar to
the rest of rules in that file).

The bug is lurking there since 2009 commit 34cc75e1a (`GHC new build
system megapatch`.) where upfront directory creation was never added to
`.hs-boot` files.
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/57a5f88cf70ec6dd65ff4a2df0c11805ec1db018" style="color: #1068bf;">57a5f88c</a></strong>
<div>
<span>by Ben Gamari</span>
<i>at 2022-06-28T03:24:24-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>Mark AArch64/Darwin as requiring sign-extension

Apple's AArch64 ABI requires that the caller sign-extend small integer
arguments. Set platformCConvNeedsExtension to reflect this fact.

Fixes #21773.
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/df762ae9e2d5263fb71f6df38323ac3ca400cc47" style="color: #1068bf;">df762ae9</a></strong>
<div>
<span>by Ben Gamari</span>
<i>at 2022-06-28T03:24:24-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>-ddump-llvm shouldn't imply -fllvm

Previously -ddump-llvm would change the backend used, which contrasts
with all other dump flags. This is quite surprising and cost me quite
a bit of time. Dump flags should not change compiler behavior.

Fixes #21776.
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/70f0c1f84213f7a09bc31e0eeefb5b089708f04b" style="color: #1068bf;">70f0c1f8</a></strong>
<div>
<span>by Ben Gamari</span>
<i>at 2022-06-28T03:24:24-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>CmmToAsm/AArch64: Re-format argument handling logic

Previously there were very long, hard to parse lines. Fix this.
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/696d64c347364ce75e23d37884ec0bd2543b0a6a" style="color: #1068bf;">696d64c3</a></strong>
<div>
<span>by Ben Gamari</span>
<i>at 2022-06-28T03:24:24-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>CmmToAsm/AArch64: Sign-extend narrow C arguments

The AArch64/Darwin ABI requires that function arguments narrower
than 32-bits must be sign-extended by the caller. We neglected to
do this, resulting in #20735.

Fixes #20735.
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/c006ac0d1454119f0b456a00ff2416831c955e99" style="color: #1068bf;">c006ac0d</a></strong>
<div>
<span>by Ben Gamari</span>
<i>at 2022-06-28T03:24:24-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>testsuite: Add test for #20735
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/16b9100c9ef6b34b88a52b3b9e663dd40abd028f" style="color: #1068bf;">16b9100c</a></strong>
<div>
<span>by Ben Gamari</span>
<i>at 2022-06-28T03:24:59-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>integer-gmp: Fix cabal file

Evidently fields may not come after sections in a cabal file.
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/03cc5d0258294fc83f65479e78dbe937622cfc88" style="color: #1068bf;">03cc5d02</a></strong>
<div>
<span>by Sergei Trofimovich</span>
<i>at 2022-06-28T15:20:45-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>ghc.mk: fix 'make install' (`mk/system-cxx-std-lib-1.0.conf.install` does not exist)

before the change `make install` was failing as:

```
"mv" "/<<NIX>>/ghc-9.3.20220406/lib/ghc-9.5.20220625/bin/ghc-stage2" "/<<NIX>>/ghc-9.3.20220406/lib/ghc-9.5.20220625/bin/ghc"
make[1]: *** No rule to make target 'mk/system-cxx-std-lib-1.0.conf.install', needed by 'install_packages'.  Stop.
```

I think it's a recent regression caused by 0ef249aa where `system-cxx-std-lib-1.0.conf`
is created (somewhat manually), but not the .install varianlt of it.

The fix is to consistently use `mk/system-cxx-std-lib-1.0.conf` everywhere.

Closes: https://gitlab.haskell.org/ghc/ghc/-/issues/21784
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/eecab8f9847ebf576fbe2f6a2b9564c25a0230e0" style="color: #1068bf;">eecab8f9</a></strong>
<div>
<span>by Simon Peyton Jones</span>
<i>at 2022-06-28T15:21:21-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>Comments only, about join points

This MR just adds some documentation about why casts
destroy join points, following #21716.
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/251471e7706ea3029b4a0c086035c16e7b67a081" style="color: #1068bf;">251471e7</a></strong>
<div>
<span>by Matthew Pickering</span>
<i>at 2022-06-28T19:02:41-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>Cleanup BuiltInSyntax vs UserSyntax

There was some confusion about whether FUN/TYPE/One/Many should be
BuiltInSyntax or UserSyntax. The answer is certainly UserSyntax as
BuiltInSyntax is for things which are directly constructed by the parser
rather than going through normal renaming channels.

I fixed all the obviously wrong places I could find and added a test for
the original bug which was caused by this (#21752)

Fixes #21752 #20695 #18302
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/0e22f16cda8468256b4c5d04214276be30e23faa" style="color: #1068bf;">0e22f16c</a></strong>
<div>
<span>by Ben Gamari</span>
<i>at 2022-06-28T19:03:16-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>template-haskell: Bump version to 2.19.0.0

Bumps text and exceptions submodules due to bounds.
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/bbe6f10eb46ea23607974abd1a96917699350b91" style="color: #1068bf;">bbe6f10e</a></strong>
<div>
<span>by Emily Bourke</span>
<i>at 2022-06-29T08:23:13+00:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>Tiny tweak to `IOPort#` documentation

The exclamation mark and bracket don’t seem to make sense here. I’ve
looked through the history, and I don’t think they’re deliberate – possibly
a copy-and-paste error.</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/70e47489f1fa87a0ee5656950c00b54f69823fc6" style="color: #1068bf;">70e47489</a></strong>
<div>
<span>by Dominik Peteler</span>
<i>at 2022-06-29T19:26:31-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>Remove `CoreOccurAnal` constructor of the `CoreToDo` type

It was dead code since the last occurence in an expression context got
removed in 71916e1c018dded2e68d6769a2dbb8777da12664.
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/d072217016ceae7c557f638e91a365fa5ab7779c" style="color: #1068bf;">d0722170</a></strong>
<div>
<span>by nineonine</span>
<i>at 2022-07-01T08:15:56-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>Fix panic with UnliftedFFITypes+CApiFFI (#14624)

When declaring foreign import using CAPI calling convention, using
unlifted unboxed types would result in compiler panic. There was
an attempt to fix the situation in #9274, however it only addressed
some of the ByteArray cases.

This patch fixes other missed cases for all prims that may be used
as basic foreign types.
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/eb0431489144effd6931c248801af3fe65227368" style="color: #1068bf;">eb043148</a></strong>
<div>
<span>by Douglas Wilson</span>
<i>at 2022-07-01T08:16:32-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>rts: gc stats: account properly for copied bytes in sequential collections

We were not updating the [copied,any_work,scav_find_work, max_n_todo_overflow]
counters during sequential collections. As well, we were double counting for
parallel collections.

To fix this we add an `else` clause to the `if (is_par_gc())`.

The par_* counters do not need to be updated in the sequential case
because they must be 0.
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/f95edea9492ef30a07c7a6d11870fb5c3d0dd886" style="color: #1068bf;">f95edea9</a></strong>
<div>
<span>by Matthew Pickering</span>
<i>at 2022-07-01T19:21:55-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>desugar: Look through ticks when warning about possible literal overflow

Enabling `-fhpc` or `-finfo-table-map` would case a tick to end up
between the appliation of `neg` to its argument. This defeated the
special logic which looks for `NegApp ... (HsOverLit` to warn about
possible overflow if a user writes a negative literal (without out
NegativeLiterals) in their code.

Fixes #21701
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/f25c8d03ad452902d2d79a157d3331253016e9c2" style="color: #1068bf;">f25c8d03</a></strong>
<div>
<span>by Matthew Pickering</span>
<i>at 2022-07-01T19:22:31-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>ci: Fix definition of slow-validate flavour (so that -dlint) is passed

In this embarassing sequence of events we were running slow-validate
without -dlint.
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/bf7991b0538b0c994a5442c7e2acac4dc038d52e" style="color: #1068bf;">bf7991b0</a></strong>
<div>
<span>by Mike Pilgrem</span>
<i>at 2022-07-02T10:12:04-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>Identify the extistence of the `runhaskell` command and that it is equivalent to the `runghc` command. Add an entry to the index for `runhaskell`. See https://gitlab.haskell.org/ghc/ghc/-/issues/21411</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/9e79f6d09c9fbd81150a45d307f753141453c945" style="color: #1068bf;">9e79f6d0</a></strong>
<div>
<span>by Simon Jakobi</span>
<i>at 2022-07-02T10:12:39-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>Data.Foldable1: Remove references to Foldable-specific note

...as discussed in
https://gitlab.haskell.org/ghc/ghc/-/merge_requests/8495#note_439455.
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/3a8970ac0c69335a1d229f9c9a71e6e333e99bfb" style="color: #1068bf;">3a8970ac</a></strong>
<div>
<span>by romes</span>
<i>at 2022-07-03T14:11:31-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>TTG: Move HsModule to L.H.S

Move the definition of HsModule defined in GHC.Hs to
Language.Haskell.Syntax with an added TTG parameter and corresponding
extension fields.

This is progress towards having the haskell-syntax package, as described
in #21592
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/f9f8099598fd169fa2f17305fc660e5c473f8836" style="color: #1068bf;">f9f80995</a></strong>
<div>
<span>by romes</span>
<i>at 2022-07-03T14:11:31-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>TTG: Move ImpExp client-independent bits to L.H.S.ImpExp

Move the GHC-independent definitions from GHC.Hs.ImpExp to
Language.Haskell.Syntax.ImpExp with the required TTG extension fields
such as to keep the AST independent from GHC.

This is progress towards having the haskell-syntax package, as described
in #21592

Bumps haddock submodule
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/c43dbac08b0d56406fe13de1e9b49c944f478b4a" style="color: #1068bf;">c43dbac0</a></strong>
<div>
<span>by romes</span>
<i>at 2022-07-03T14:11:31-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>Refactor ModuleName to L.H.S.Module.Name

ModuleName used to live in GHC.Unit.Module.Name. In this commit, the
definition of ModuleName and its associated functions are moved to
Language.Haskell.Syntax.Module.Name according to the current plan
towards making the AST GHC-independent.

The instances for ModuleName for Outputable, Uniquable and Binary were
moved to the module in which the class is defined because these instances
depend on GHC.

The instance of Eq for ModuleName is slightly changed to no longer
depend on unique explicitly and instead uses FastString's instance of
Eq.
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/2635c6f2bfb3d1126fa868768fc4b8349d0b9950" style="color: #1068bf;">2635c6f2</a></strong>
<div>
<span>by konsumlamm</span>
<i>at 2022-07-03T14:12:11-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>Expand `Ord` instance for `Down`

Approved by CLC in https://github.com/haskell/core-libraries-committee/issues/23#issuecomment-1172932610
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/36fba0dfa2ecbd27b575dea09e4c3cdd6cb99b37" style="color: #1068bf;">36fba0df</a></strong>
<div>
<span>by Anselm Schüler</span>
<i>at 2022-07-04T05:06:42+00:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>Add applyWhen to Data.Function per CLC prop

Approved by CLC in https://github.com/haskell/core-libraries-committee/issues/71#issuecomment-1165830233
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/3b13aab14589823744495306bfb4c7bb522d22a5" style="color: #1068bf;">3b13aab1</a></strong>
<div>
<span>by Matthew Pickering</span>
<i>at 2022-07-04T15:15:00-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>hadrian: Don't read package environments in ghc-stage1 wrapper

The stage1 compiler may be on the brink of existence and not have even a
working base library. You may have installed packages globally with a
similar stage2 compiler which will then lead to arguments such as
--show-iface not even working because you are passing too many package
flags. The solution is simple, don't read these implicit files.

Fixes #21803
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/aba482ea941bb0b06f041be950712ed71e047e81" style="color: #1068bf;">aba482ea</a></strong>
<div>
<span>by Andreas Klebinger</span>
<i>at 2022-07-04T17:55:55-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>Ticky:Make json info a separate field.

Fixes #21233
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/74f3867dbc77cad216444ed1e12d095feb1ced92" style="color: #1068bf;">74f3867d</a></strong>
<div>
<span>by Matthew Pickering</span>
<i>at 2022-07-04T17:56:30-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>Add docs:<pkg> command to hadrian to build docs for just one package
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/418afaf11b76339deb29b1717790e3749be89afc" style="color: #1068bf;">418afaf1</a></strong>
<div>
<span>by Matthew Pickering</span>
<i>at 2022-07-04T17:56:30-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>upload-docs: propagate publish correctly in upload_sdist
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/ed793d7a5725689bf1f3c81ce3d7958ccaf60e7e" style="color: #1068bf;">ed793d7a</a></strong>
<div>
<span>by Matthew Pickering</span>
<i>at 2022-07-04T17:56:30-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>docs-upload: Fix upload script when no packages are listed
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/d002c6e04f0c0f26c3ee24661eb4cf5620f994ab" style="color: #1068bf;">d002c6e0</a></strong>
<div>
<span>by Matthew Pickering</span>
<i>at 2022-07-04T17:56:30-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>hadrian: Add --haddock-base-url option for specifying base-url when generating docs

The motiviation for this flag is to be able to produce documentation
which is suitable for uploading for hackage, ie, the cross-package links
work correctly.

There are basically three values you want to set this to:

* off - default, base_url = ../%pkg% which works for local browsing
* on - no argument , base_url = https:://hackage.haskell.org/package/%pkg%/docs - for hackage docs upload
* on - argument, for example, base_url = http://localhost:8080/package/%pkg%/docs for testing the documentation.

The `%pkg%` string is a template variable which is replaced with the
package identifier for the relevant package.

This is one step towards fixing #21749
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/41eb749ada594961fc3276df6bb7319a396a167d" style="color: #1068bf;">41eb749a</a></strong>
<div>
<span>by Matthew Pickering</span>
<i>at 2022-07-04T17:56:31-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>Add nightly job for generating docs suitable for hackage upload
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/620ee7edc931dc5273dd04880059cc9ec8d41528" style="color: #1068bf;">620ee7ed</a></strong>
<div>
<span>by Matthew Pickering</span>
<i>at 2022-07-04T17:57:05-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>ghci: Support :set prompt in multi repl

This adds supports for various :set commands apart from `:set <FLAG>` in
multi repl, this includes `:set prompt` and so-on.

Fixes #21796
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/b151b65ec469405dcf25f9358e7e99bcc8c2b3ac" style="color: #1068bf;">b151b65e</a></strong>
<div>
<span>by Matthew Pickering</span>
<i>at 2022-07-05T16:32:31-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>Vendor filepath inside template-haskell

Adding filepath as a dependency of template-haskell means that it can't
be reinstalled if any build-plan depends on template-haskell.

This is a temporary solution for the 9.4 release.

A longer term solution is to split-up the template-haskell package into
the wired-in part and a non-wired-in part which can be reinstalled. This
was deemed quite risky on the 9.4 release timescale.

Fixes #21738
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/c9347ecf023f0ab7a989aead7cd21e953b49b11f" style="color: #1068bf;">c9347ecf</a></strong>
<div>
<span>by John Ericson</span>
<i>at 2022-07-05T16:33:07-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>Factor fields of `CoreDoSimplify` into separate data type

This avoids some partiality. The work @mmhat is doing cleaning up and
modularizing `Core.Opt` will build on this nicely.
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/d0e74992f0fd62e9bfa68b4fc3fa8c6e06ee5231" style="color: #1068bf;">d0e74992</a></strong>
<div>
<span>by Eric Lindblad</span>
<i>at 2022-07-06T01:35:48-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>https urls</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/803e965c684ff5d0915d653042d7a6ce16c5bc94" style="color: #1068bf;">803e965c</a></strong>
<div>
<span>by Eric Lindblad</span>
<i>at 2022-07-06T01:35:48-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>options and typos</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/5519baa51ed9f50e126cbd5d2e0d0621eef4a8b4" style="color: #1068bf;">5519baa5</a></strong>
<div>
<span>by Eric Lindblad</span>
<i>at 2022-07-06T01:35:48-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>grammar</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/4ddc1d3e47a01aa3ab95cf08b7fc76911af4131a" style="color: #1068bf;">4ddc1d3e</a></strong>
<div>
<span>by Eric Lindblad</span>
<i>at 2022-07-06T01:35:48-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>sources</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/c95c20267c54363751e03dfcbba2e4f5b1167572" style="color: #1068bf;">c95c2026</a></strong>
<div>
<span>by Matthew Pickering</span>
<i>at 2022-07-06T01:35:48-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>Fix lint warnings in bootstrap.py
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/86ced2ad8cf6fa1d829b2eea0d2dcbc049bc4a6d" style="color: #1068bf;">86ced2ad</a></strong>
<div>
<span>by romes</span>
<i>at 2022-07-06T01:36:23-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>Restore Eq instance of ImportDeclQualifiedStyle

Fixes #21819
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/3547e2640af45ab48187387fb60795a09b662038" style="color: #1068bf;">3547e264</a></strong>
<div>
<span>by romes</span>
<i>at 2022-07-06T13:50:27-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>Prune L.H.S modules of GHC dependencies

Move around datatypes, functions and instances that are GHC-specific out
of the `Language.Haskell.Syntax.*` modules to reduce the GHC
dependencies in them -- progressing towards #21592

Creates a module `Language.Haskell.Syntax.Basic` to hold basic
definitions required by the other L.H.S modules (and don't belong in any
of them)
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/e4eea07b808bea530cf4b4fd2468035dd2cad67b" style="color: #1068bf;">e4eea07b</a></strong>
<div>
<span>by romes</span>
<i>at 2022-07-06T13:50:27-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>TTG: Move CoreTickish out of LHS.Binds

Remove the `[CoreTickish]` fields from datatype `HsBindLR idL idR` and
move them to the extension point instance, according to the plan
outlined in #21592 to separate the base AST from the GHC specific bits.
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/acc1816b9153f134a3308d13b90d67bfcb123d87" style="color: #1068bf;">acc1816b</a></strong>
<div>
<span>by romes</span>
<i>at 2022-07-06T13:50:27-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>TTG for ForeignImport/Export

Add a TTG parameter to both `ForeignImport` and `ForeignExport` and,
according to #21592, move the GHC-specific bits in them and in the other
AST data types related to foreign imports and exports to the TTG
extension point.
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/371c5ecf6898294f4e5bf91784dc794e7e16b7cc" style="color: #1068bf;">371c5ecf</a></strong>
<div>
<span>by romes</span>
<i>at 2022-07-06T13:50:27-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>TTG for HsTyLit

Add TTG parameter to `HsTyLit` to move the GHC-specific `SourceText`
fields to the extension point and out of the base AST.

Progress towards #21592
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/fd379d1b8e709f4eaa20a969bf9fffd40b8a4433" style="color: #1068bf;">fd379d1b</a></strong>
<div>
<span>by romes</span>
<i>at 2022-07-06T13:50:27-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>Remove many GHC dependencies from L.H.S

Continue to prune the `Language.Haskell.Syntax.*` modules out of GHC
imports according to the plan in the linked issue.

Moves more GHC-specific declarations to `GHC.*` and brings more required
GHC-independent declarations to `Language.Haskell.Syntax.*` (extending
e.g. `Language.Haskell.Syntax.Basic`).

Progress towards #21592

Bump haddock submodule for !8308

-------------------------
Metric Decrease:
    hard_hole_fits
-------------------------
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/c5415bc5c428df72f3943fd9bf117355ae746fdb" style="color: #1068bf;">c5415bc5</a></strong>
<div>
<span>by Alan Zimmerman</span>
<i>at 2022-07-06T13:50:27-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>Fix exact printing of the HsRule name

Prior to this branch, the HsRule name was

    XRec pass (SourceText,RuleName)

and there is an ExactPrint instance for (SourceText, RuleName).

The SourceText has moved to a different location, so synthesise the
original to trigger the correct instance when printing.

We need both the SourceText and RuleName when exact printing, as it is
possible to have a NoSourceText variant, in which case we fall back to
the FastString.
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/665fa5a73e385bdfce13180048701a179ec3f36a" style="color: #1068bf;">665fa5a7</a></strong>
<div>
<span>by Matthew Pickering</span>
<i>at 2022-07-06T13:51:03-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>driver: Fix issue with module loops and multiple home units

We were attempting to rehydrate all dependencies of a particular module,
but we actually only needed to rehydrate those of the current package
(as those are the ones participating in the loop).

This fixes loading GHC into a multi-unit session.

Fixes #21814
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/bbcaba6a0951d45ae0ceb309da5458fc20332511" style="color: #1068bf;">bbcaba6a</a></strong>
<div>
<span>by Andreas Klebinger</span>
<i>at 2022-07-06T13:51:39-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>Remove a bogus #define from ClosureMacros.h
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/fa59223b05e24d6e477e3ab0ab296e32b2b65a8b" style="color: #1068bf;">fa59223b</a></strong>
<div>
<span>by Tamar Christina</span>
<i>at 2022-07-07T23:23:57-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>winio: make consoleReadNonBlocking not wait for any events at all.
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/42c917df5be8d75f79a283a8ed59fbaf099bc973" style="color: #1068bf;">42c917df</a></strong>
<div>
<span>by Adam Sandberg Ericsson</span>
<i>at 2022-07-07T23:24:34-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>rts: allow NULL to be used as an invalid StgStablePtr
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/3739e565f8fa09b3a31ba8f563c518480585f6f9" style="color: #1068bf;">3739e565</a></strong>
<div>
<span>by Andreas Schwab</span>
<i>at 2022-07-07T23:25:10-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>RTS: Add stack marker to StgCRunAsm.S

Every object file must be properly marked for non-executable stack, even if it
contains no code.
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/a889bc05dfff611521769843993ccea7a0061537" style="color: #1068bf;">a889bc05</a></strong>
<div>
<span>by Ben Gamari</span>
<i>at 2022-07-07T23:25:45-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>Bump unix submodule

Adds `config.sub` to unix's `.gitignore`, fixing #19574.
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/3609a4781f351fdef8f0987c62d72c4e8bb81959" style="color: #1068bf;">3609a478</a></strong>
<div>
<span>by Matthew Pickering</span>
<i>at 2022-07-09T11:11:58-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>ghci: Fix most calls to isLoaded to work in multi-mode

The most egrarious thing this fixes is the report about the total number
of loaded modules after starting a session.

Ticket #20889
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/fc183c9026284ebd70dfd0a0a6682b9b7a96a676" style="color: #1068bf;">fc183c90</a></strong>
<div>
<span>by Matthew Pickering</span>
<i>at 2022-07-09T11:11:58-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>Enable :edit command in ghci multi-mode.

This works after the last change to isLoaded.

Ticket #20888
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/460505345e500eb902da9737c75c077d5fc5ef66" style="color: #1068bf;">46050534</a></strong>
<div>
<span>by Simon Peyton Jones</span>
<i>at 2022-07-09T11:12:34-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>Fix a scoping bug in the Specialiser

In the call to `specLookupRule` in `already_covered`, in `specCalls`,
we need an in-scope set that includes the free vars of the arguments.
But we simply were not guaranteeing that: did not include the
`rule_bndrs`.

Easily fixed.  I'm not sure how how this bug has lain for quite
so long without biting us.

Fixes #21828.
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/6e8d90560b4a9269c56f7c1ee4d29d1077680f7b" style="color: #1068bf;">6e8d9056</a></strong>
<div>
<span>by Simon Peyton Jones</span>
<i>at 2022-07-12T13:26:52+00:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>Edit Note [idArity varies independently of dmdTypeDepth]

...and refer to it in GHC.Core.Lint.lintLetBind.

Fixes #21452
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/89ba46554025f413959be53b2868ba1a79f12ae2" style="color: #1068bf;">89ba4655</a></strong>
<div>
<span>by Simon Peyton Jones</span>
<i>at 2022-07-12T13:26:52+00:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>Tiny documentation wibbles (comments only)
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/61a46c6d2bd20b9ba5d89c86e8d64b7149a38280" style="color: #1068bf;">61a46c6d</a></strong>
<div>
<span>by Eric Lindblad</span>
<i>at 2022-07-13T08:28:29-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>fix readme</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/61babb5edff00c2929ffbb615d8a3110db1b4b5b" style="color: #1068bf;">61babb5e</a></strong>
<div>
<span>by Eric Lindblad</span>
<i>at 2022-07-13T08:28:29-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>fix bootstrap</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/8b417ad54a91a7e12671cf059e0b5a3be43bbce2" style="color: #1068bf;">8b417ad5</a></strong>
<div>
<span>by Eric Lindblad</span>
<i>at 2022-07-13T08:28:29-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>tarball</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/e9d9f0784e8670c6b85f1bf80e26b571b08519b5" style="color: #1068bf;">e9d9f078</a></strong>
<div>
<span>by Zubin Duggal</span>
<i>at 2022-07-13T14:00:18-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>hie-files: Fix scopes for deriving clauses and instance signatures (#18425)
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/c4989131563efca8692c341e7b08096ac9a3b53b" style="color: #1068bf;">c4989131</a></strong>
<div>
<span>by Zubin Duggal</span>
<i>at 2022-07-13T14:00:18-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>hie-files: Record location of filled in default method bindings

This is useful for hie files to reconstruct the evidence that default methods
depend on.
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/9c52e7fcacb8ba163e980c9765ebff5d91ae6f4a" style="color: #1068bf;">9c52e7fc</a></strong>
<div>
<span>by Zubin Duggal</span>
<i>at 2022-07-13T14:00:18-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>testsuite: Factor out common parts from hiefile tests
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/6a9e44932945bfcc2f2eb169bd175ab029d9bf72" style="color: #1068bf;">6a9e4493</a></strong>
<div>
<span>by sheaf</span>
<i>at 2022-07-13T14:00:56-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>Hadrian: update documentation of settings

The documentation for key-value settings was a bit out of date.
This patch updates it to account for `cabal.configure.opts` and
`hsc2hs.run.opts`.

The user-settings document was also re-arranged, to make the key-value
settings more prominent (as it doesn't involve changing the Hadrian
source code, and thus doesn't require any recompilation of Hadrian).
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/a2f142f84bbc865f586ecc6ce94126c5427a86c1" style="color: #1068bf;">a2f142f8</a></strong>
<div>
<span>by Zubin Duggal</span>
<i>at 2022-07-13T20:43:32-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>Fix potential space leak that arise from ModuleGraphs retaining references
to previous ModuleGraphs, in particular the lazy `mg_non_boot` field.
This manifests in `extendMG`.

Solution: Delete `mg_non_boot` as it is only used for `mgLookupModule`, which
is only called in two places in the compiler, and should only be called at most
once for every home unit:

GHC.Driver.Make:
      mainModuleSrcPath :: Maybe String
      mainModuleSrcPath = do
        ms <- mgLookupModule mod_graph (mainModIs hue)
        ml_hs_file (ms_location ms)

GHCI.UI:
listModuleLine modl line = do
   graph <- GHC.getModuleGraph
   let this = GHC.mgLookupModule graph modl

Instead `mgLookupModule` can be a linear function that looks through the entire
list of `ModuleGraphNodes`

Fixes #21816
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/dcf8b30a1a5f802b1d8a22ea74499e2896a6ff16" style="color: #1068bf;">dcf8b30a</a></strong>
<div>
<span>by Ben Gamari</span>
<i>at 2022-07-13T20:44:08-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>rts: Fix AdjustorPool bitmap manipulation

Previously the implementation of bitmap_first_unset assumed that
`__builtin_clz` would accept `uint8_t` however it apparently rather
extends its argument to `unsigned int`.

To fix this we simply revert to a naive implementation since handling
the various corner cases with `clz` is quite tricky. This should be
fine given that AdjustorPool isn't particularly hot. Ideally we would
have a single, optimised bitmap implementation in the RTS but I'll leave
this for future work.

Fixes #21838.
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/ad8f3e150a895bfd3f8e2936be616ebfc4f531c6" style="color: #1068bf;">ad8f3e15</a></strong>
<div>
<span>by Luite Stegeman</span>
<i>at 2022-07-16T07:20:36-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>Change GHCi bytecode return convention for unlifted datatypes.

This changes the bytecode return convention for unlifted
algebraic datatypes to be the same as for lifted
types, i.e. ENTER/PUSH_ALTS instead of
RETURN_UNLIFTED/PUSH_ALTS_UNLIFTED

Fixes #20849
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/5434d1a355e127d44c6f116b4b7f8a1d254815d4" style="color: #1068bf;">5434d1a3</a></strong>
<div>
<span>by Colten Webb</span>
<i>at 2022-07-16T07:21:15-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>Compute record-dot-syntax types
Ensures type information for record-dot-syntax
is included in HieASTs. See #21797
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/89d169ec0c4e9c1e6cf4a6373a1992dad7474d55" style="color: #1068bf;">89d169ec</a></strong>
<div>
<span>by Colten Webb</span>
<i>at 2022-07-16T07:21:15-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>Add record-dot-syntax test
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/4beb9f3c367e1f7ee80b5458318d9f91622e4568" style="color: #1068bf;">4beb9f3c</a></strong>
<div>
<span>by Ben Gamari</span>
<i>at 2022-07-16T07:21:51-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>Document RuntimeRep polymorphism limitations of catch#, et al

As noted in #21868, several primops accepting continuations producing
RuntimeRep-polymorphic results aren't nearly as polymorphic as their
types suggest. Document this limitation and adapt the `UnliftedWeakPtr`
test to avoid breaking this limitation in `keepAlive#`.
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/4ef1c65d76ef4aeb0fbd6a3667be628571c86f54" style="color: #1068bf;">4ef1c65d</a></strong>
<div>
<span>by Ben Gamari</span>
<i>at 2022-07-16T07:21:51-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>Make keepAlive# out-of-line

This is a naive approach to fixing the unsoundness noticed in #21708.
Specifically, we remove the lowering of `keepAlive#` via CorePrep and
instead turn it into an out-of-line primop.
This is simple, inefficient (since the continuation must now be heap
allocated), but good enough for 9.4.1. We will revisit this
(particiularly via #16098) in a future release.

Metric Increase:
    T4978
    T7257
    T9203
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/1bbff35d4ca991c040e5f675554175a06af1554b" style="color: #1068bf;">1bbff35d</a></strong>
<div>
<span>by Greg Steuck</span>
<i>at 2022-07-16T07:22:29-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>Suppress extra output from configure check for c++ libraries
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/3acbd7ad4a5ee3246c694674e6248a935430104c" style="color: #1068bf;">3acbd7ad</a></strong>
<div>
<span>by Ben Gamari</span>
<i>at 2022-07-16T07:23:04-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>rel-notes: Drop mention of #21745 fix

Since we have backported the fix to 9.4.1.
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/b27c2774fb8191e566bcae0ed7b06bb96afa466b" style="color: #1068bf;">b27c2774</a></strong>
<div>
<span>by Dominik Peteler</span>
<i>at 2022-07-16T07:23:43-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>Align the behaviour of `dopt` and `log_dopt`

Before the behaviour of `dopt` and `logHasDumpFlag` (and the underlying
function `log_dopt`) were different as the latter did not take the
verbosity level into account. This led to problems during the
refactoring as we cannot simply replace calls to `dopt` with calls to
`logHasDumpFlag`.

In addition to that a subtle bug in the GHC module was fixed:
`setSessionDynFlags` did not update the logger and as a consequence the
verbosity value of the logger was not set appropriately.

Fixes #21861
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/28347d7141761fc5c3c9bd66e5c4b2ea1c16f58a" style="color: #1068bf;">28347d71</a></strong>
<div>
<span>by Douglas Wilson</span>
<i>at 2022-07-16T13:25:06-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>rts: forkOn context switches the target capability

Fixes #21824
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/f1c449910256c61cb35e361a367d5209bc51cc7a" style="color: #1068bf;">f1c44991</a></strong>
<div>
<span>by Ben Gamari</span>
<i>at 2022-07-16T13:25:41-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>cmm: Eliminate orphan Outputable instances

Here we reorganize `GHC.Cmm` to eliminate the orphan `Outputable` and
`OutputableP` instances for the Cmm AST. This makes it significantly
easier to use the Cmm pretty-printers in tracing output without
incurring module import cycles.
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/f2e5e7631ffafe3225989f8b67646c833c00e3ec" style="color: #1068bf;">f2e5e763</a></strong>
<div>
<span>by Ben Gamari</span>
<i>at 2022-07-16T13:25:41-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>cmm: Move toBlockList to GHC.Cmm
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/fa0927454b02e4439d1683c2c3a3edd5b251dba1" style="color: #1068bf;">fa092745</a></strong>
<div>
<span>by Ben Gamari</span>
<i>at 2022-07-16T13:25:41-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>compiler: Add haddock sections to GHC.Utils.Panic
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/097759f9f85ded496b21cf28e83cbdad1bf9a65b" style="color: #1068bf;">097759f9</a></strong>
<div>
<span>by Ben Gamari</span>
<i>at 2022-07-16T13:26:17-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>configure: Don't override Windows CXXFLAGS

At some point we used the clang distribution from msys2's `MINGW64`
environment for our Windows toolchain. This defaulted to using libgcc
and libstdc++ for its runtime library. However, we found for a variety
of reasons that compiler-rt, libunwind, and libc++ were more reliable,
consequently we explicitly overrode the CXXFLAGS to use these.

However, since then we have switched to use the `CLANG64` packaging,
which default to these already. Consequently we can drop these
arguments, silencing some redundant argument warnings from clang.

Fixes #21669.
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/e38a268491347c3aceba359d47034e272afcdf6b" style="color: #1068bf;">e38a2684</a></strong>
<div>
<span>by Ben Gamari</span>
<i>at 2022-07-16T23:50:36-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>rts/linker/Elf: Check that there are no NULL ctors
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/616365b01ea6552c39e211a42df4cb33762f481e" style="color: #1068bf;">616365b0</a></strong>
<div>
<span>by Ben Gamari</span>
<i>at 2022-07-16T23:50:36-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>rts/linker/Elf: Introduce support for invoking finalizers on unload

Addresses #20494.
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/cdd3be20684c696d9008b6ca7c83731adb13e1b6" style="color: #1068bf;">cdd3be20</a></strong>
<div>
<span>by Ben Gamari</span>
<i>at 2022-07-16T23:50:36-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>testsuite: Add T20494
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/03c69d8d1ffeb85055d71f6c144c18309a13308f" style="color: #1068bf;">03c69d8d</a></strong>
<div>
<span>by Ben Gamari</span>
<i>at 2022-07-16T23:50:36-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>rts/linker/PEi386: Rename finit field to fini

fini is short for "finalizer", which does not contain a "t".
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/033580bc35451e49ed021ae5391da8e199d58c8d" style="color: #1068bf;">033580bc</a></strong>
<div>
<span>by Ben Gamari</span>
<i>at 2022-07-16T23:50:36-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>rts/linker/PEi386: Refactor handling of oc->info

Previously we would free oc->info after running initializers. However,
we can't do this is we want to also run finalizers.

Moreover, freeing oc->info so early was wrong for another reason:
we will need it in order to unregister the exception tables (see the
call to `RtlDeleteFunctionTable`).

In service of #20494.
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/f17912e4db9a104b30b956ae61d17329d0a5f601" style="color: #1068bf;">f17912e4</a></strong>
<div>
<span>by Ben Gamari</span>
<i>at 2022-07-16T23:50:36-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>rts/linker/PEi386: Add finalization support

This implements #20494 for the PEi386 linker.

Happily, this also appears to fix `T9405`, resolving #21361.
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/2cd75550cad93b84a4ef831c5dc8f40071c3a903" style="color: #1068bf;">2cd75550</a></strong>
<div>
<span>by Ben Gamari</span>
<i>at 2022-07-16T23:50:36-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>Loader: Implement gnu-style -l:$path syntax

Gnu ld allows `-l` to be passed an absolute file path,
signalled by a `:` prefix. Implement this in the GHC's
loader search logic.
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/5781a36022bd1f1e7344d3f6530c163dd2587e78" style="color: #1068bf;">5781a360</a></strong>
<div>
<span>by Ben Gamari</span>
<i>at 2022-07-16T23:50:36-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>Statically-link against libc++ on Windows

Unfortunately on Windows we have no RPATH-like facility, making dynamic
linking extremely fragile. Since we cannot assume that the user will
add their GHC installation to `$PATH` (and therefore their DLL
search path) we cannot assume that the loader will be able to locate our
`libc++.dll`. To avoid this, we instead statically link against `libc++.a` on
Windows.

Fixes #21435.
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/8e2e883b55396eda6fe3b50ce68779599a553d91" style="color: #1068bf;">8e2e883b</a></strong>
<div>
<span>by Ben Gamari</span>
<i>at 2022-07-16T23:50:36-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>rts/linker/PEi386: Ensure that all .ctors/.dtors sections are run

It turns out that PE objects may have multiple `.ctors`/`.dtors`
sections but the RTS linker had assumed that there was only one. Fix
this.

Fixes #21618.
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/fba04387550fbf531158c12739eab12527977808" style="color: #1068bf;">fba04387</a></strong>
<div>
<span>by Ben Gamari</span>
<i>at 2022-07-16T23:50:36-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>rts/linker/PEi386: Respect dtor/ctor priority

Previously we would run constructors and destructors in arbitrary order
despite explicit priorities.

Fixes #21847.
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/1001952f147e8837d1dea08be4cebec87592fdde" style="color: #1068bf;">1001952f</a></strong>
<div>
<span>by Ben Gamari</span>
<i>at 2022-07-16T23:50:36-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>testsuite: Add test for #21618 and #21847
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/6f3816af374f5c5b70f37e14a23ca8f209c365c2" style="color: #1068bf;">6f3816af</a></strong>
<div>
<span>by Ben Gamari</span>
<i>at 2022-07-16T23:50:36-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>rts/linker/PEi386: Fix exception unwind unregistration

RtlDeleteFunctionTable expects a pointer to the .pdata section
yet we passed it the .xdata section.

Happily, this fixes #21354.
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/d9bff44ca5a4a05434d32f76f665c332a0d26f43" style="color: #1068bf;">d9bff44c</a></strong>
<div>
<span>by Ben Gamari</span>
<i>at 2022-07-16T23:50:36-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>rts/linker/MachO: Drop dead code
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/d161e6bc606d7ec86f6d910a9f744ff513fd6df6" style="color: #1068bf;">d161e6bc</a></strong>
<div>
<span>by Ben Gamari</span>
<i>at 2022-07-16T23:50:36-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>rts/linker/MachO: Use section flags to identify initializers
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/fbb171100f1d5bd9e78cbb9072fb48d3422458a5" style="color: #1068bf;">fbb17110</a></strong>
<div>
<span>by Ben Gamari</span>
<i>at 2022-07-16T23:50:36-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>rts/linker/MachO: Introduce finalizer support
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/5b0ed8a8baaa32e03fee7af2c08656b462b62770" style="color: #1068bf;">5b0ed8a8</a></strong>
<div>
<span>by Ben Gamari</span>
<i>at 2022-07-16T23:50:37-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>testsuite: Use system-cxx-std-lib instead of config.stdcxx_impl
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/6c476e1a804d4fbfacff0fc69cdb7c4700fd0eaa" style="color: #1068bf;">6c476e1a</a></strong>
<div>
<span>by Ben Gamari</span>
<i>at 2022-07-16T23:50:37-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>rts/linker/Elf: Work around GCC 6 init/fini behavior

It appears that GCC 6t (at least on i386) fails to give
init_array/fini_array sections the correct SHT_INIT_ARRAY/SHT_FINI_ARRAY
section types, instead marking them as SHT_PROGBITS. This caused T20494
to fail on Debian.
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/5f8203b86c312f61a4dff9b83d456d17fabc087f" style="color: #1068bf;">5f8203b8</a></strong>
<div>
<span>by Ben Gamari</span>
<i>at 2022-07-16T23:50:37-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>testsuite: Mark T13366Cxx as unbroken on Darwin
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/1fd2f8516fa3902e42c97b56fbcf1b0269f0a60a" style="color: #1068bf;">1fd2f851</a></strong>
<div>
<span>by Ben Gamari</span>
<i>at 2022-07-16T23:50:37-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>rts/linker: Fix resolution of __dso_handle on Darwin

Darwin expects a leading underscore.
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/a2dc00f3b736a1128010c82ffadce96c51fbfbf4" style="color: #1068bf;">a2dc00f3</a></strong>
<div>
<span>by Ben Gamari</span>
<i>at 2022-07-16T23:50:37-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>rts/linker: Clean up section kinds
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/aeb1a7c394ac78ceb4d86d1cc5805a7c2b1aa747" style="color: #1068bf;">aeb1a7c3</a></strong>
<div>
<span>by Ben Gamari</span>
<i>at 2022-07-16T23:50:37-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>rts/linker: Ensure that __cxa_finalize is called on code unload
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/028f081e4e748794d7a0e6359987ec799c3dc404" style="color: #1068bf;">028f081e</a></strong>
<div>
<span>by Ben Gamari</span>
<i>at 2022-07-16T23:51:12-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>testsuite: Fix T11829 on Centos 7

It appears that Centos 7 has a more strict C++ compiler than most
distributions since std::runtime_error is defined in <stdexcept> rather
than <exception>. In T11829 we mistakenly imported the latter.
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/a10584e8df9b346cecf700b23187044742ce0b35" style="color: #1068bf;">a10584e8</a></strong>
<div>
<span>by Ben Gamari</span>
<i>at 2022-07-17T22:30:32-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>hadrian: Rename documentation directories for consistency with make

* Rename `docs` to `doc`
* Place pdf documentation in `doc/` instead of `doc/pdfs/`

Fixes #21164.
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/b27c5947ed9537f8cde153be4e53d4095ecbe247" style="color: #1068bf;">b27c5947</a></strong>
<div>
<span>by Anselm Schüler</span>
<i>at 2022-07-17T22:31:11-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>Fix incorrect proof of applyWhen’s properties
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/eb031a5b913ccd645c596abe3d8630602e7c47bc" style="color: #1068bf;">eb031a5b</a></strong>
<div>
<span>by Matthew Pickering</span>
<i>at 2022-07-18T08:04:47-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>hadrian: Add multi:<pkg> and multi targets for starting a multi-repl

This patch adds support to hadrian for starting a multi-repl containing
all the packages which stage0 can build. In particular, there is the new
user-facing command:

```
./hadrian/ghci-multi
```

which when executed will start a multi-repl containing the `ghc` package
and all it's dependencies.

This is implemented by two new hadrian targets:

```
./hadrian/build multi:<pkg>
```

Construct the arguments for a multi-repl session where the top-level
package is <pkg>. For example, `./hadrian/ghci-multi` is implemented
using `multi:ghc` target.

There is also the `multi` command which constructs a repl for everything
in stage0 which we can build.
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/19e7cac99d7cbbba4ff9aa42f6877daa81f197d0" style="color: #1068bf;">19e7cac9</a></strong>
<div>
<span>by Eric Lindblad</span>
<i>at 2022-07-18T08:05:27-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>changelog typo</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/af6731a40782b418947d376a09fd605111dfea2a" style="color: #1068bf;">af6731a4</a></strong>
<div>
<span>by Eric Lindblad</span>
<i>at 2022-07-18T08:05:27-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>typos
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/415468fef8a3e9181b7eca86de0e05c0cce31729" style="color: #1068bf;">415468fe</a></strong>
<div>
<span>by Simon Peyton Jones</span>
<i>at 2022-07-18T16:36:54-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>Refactor SpecConstr to use treat bindings uniformly

This patch, provoked by #21457, simplifies SpecConstr by treating
top-level and nested bindings uniformly (see the new scBind).

* Eliminates the mysterious scTopBindEnv

* Refactors scBind to handle top-level and nested definitions
  uniformly.

* But, for now at least, continues the status quo of not doing
  SpecConstr for top-level non-recursive bindings.  (In contrast
  we do specialise nested non-recursive bindings, although the
  original paper did not; see Note [Local let bindings].)

  I tried the effect of specialising top-level non-recursive
  bindings (which is now dead easy to switch on, unlike before)
  but found some regressions, so I backed off.  See !8135.

It's a pure refactoring.  I think it'll do a better job in a few
cases, but there is no regression test.
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/d4d3fe6e02c0eb2117dbbc9df72ae394edf50f06" style="color: #1068bf;">d4d3fe6e</a></strong>
<div>
<span>by Andreas Klebinger</span>
<i>at 2022-07-18T16:37:29-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>Rule matching: Don't compute the FVs if we don't look at them.
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/5f907371996735d13a4f9c87d235a18a68022e4e" style="color: #1068bf;">5f907371</a></strong>
<div>
<span>by Simon Peyton Jones</span>
<i>at 2022-07-18T16:38:04-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>White space only in FamInstEnv
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/ae3b3b62b422fc88a06ed06384caf27be91b1d37" style="color: #1068bf;">ae3b3b62</a></strong>
<div>
<span>by Simon Peyton Jones</span>
<i>at 2022-07-18T16:38:04-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>Make transferPolyIdInfo work for CPR

I don't know why this hasn't bitten us before, but it was plain wrong.
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/9bdfdd98e9be4eb0ff687e638fe5c33c6284a31c" style="color: #1068bf;">9bdfdd98</a></strong>
<div>
<span>by Simon Peyton Jones</span>
<i>at 2022-07-18T16:38:04-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>Inline mapAccumLM

This function is called in inner loops in the compiler, and it's
overloaded and higher order.  Best just to inline it.

This popped up when I was looking at something else.  I think
perhaps GHC is delicately balanced on the cusp of inlining this
automatically.
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/d0b806fff79ad80ae587f2e081a71b3d85ac7589" style="color: #1068bf;">d0b806ff</a></strong>
<div>
<span>by Simon Peyton Jones</span>
<i>at 2022-07-18T16:38:04-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>Make SetLevels honour floatConsts

This fix,  in the definition of profitableFloat,
is just for consistency. `floatConsts` should
do what it says!

I don't think it'll affect anything much, though.
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/d1c25a48154236861a413e058ea38d1b8320273f" style="color: #1068bf;">d1c25a48</a></strong>
<div>
<span>by Simon Peyton Jones</span>
<i>at 2022-07-18T16:38:04-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>Refactor wantToUnboxArg a bit

* Rename GHC.Core.Opt.WorkWrap.Utils.wantToUnboxArg to canUnboxArg
  and similarly wantToUnboxResult to canUnboxResult.

* Add GHC.Core.Opt.DmdAnal.wantToUnboxArg as a wrapper for
  the (new) GHC.Core.Opt.WorkWrap.Utils.canUnboxArg,
  avoiding some yukky duplication.

  I decided it was clearer to give it a new data type for its
  return type, because I nedeed the FD_RecBox case which was not
  otherwise readiliy expressible.

* Add dcpc_args to WorkWrap.Utils.DataConPatContext for the payload

* Get rid of the Unlift constructor of UnboxingDecision, eliminate
  two panics, and two arguments to canUnboxArg (new name).  Much
  nicer now.
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/6d8a715e20cf3583f99248383c1b2932d152bf52" style="color: #1068bf;">6d8a715e</a></strong>
<div>
<span>by Teo Camarasu</span>
<i>at 2022-07-18T16:38:44-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>Allow running memInventory when the concurrent nonmoving gc is enabled

If the nonmoving gc is enabled and we are using a threaded RTS,
we now try to grab the collector mutex to avoid memInventory and
the collection racing.

Before memInventory was disabled.
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/aa75bbde5603aa3e91f08a02977e8dd459109a62" style="color: #1068bf;">aa75bbde</a></strong>
<div>
<span>by Ben Gamari</span>
<i>at 2022-07-18T16:39:20-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>gitignore: don't ignore all aclocal.m4 files

While GHC's own aclocal.m4 is generated by the aclocal tool, other
packages' aclocal.m4 are committed in the repository. Previously
`.gitignore` included an entry which covered *any* file named
`aclocal.m4`, which lead to quite some confusion (e.g. see #21740).
Fix this by modifying GHC's `.gitignore` to only cover GHC's own
`aclocal.m4`.
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/4b98c5ce971b4ea6a2ca9e44f2d068088546751a" style="color: #1068bf;">4b98c5ce</a></strong>
<div>
<span>by Boris Lykah</span>
<i>at 2022-07-19T02:34:12-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>Add mapAccumM, forAccumM to Data.Traversable

Approved by Core Libraries Committee in
https://github.com/haskell/core-libraries-committee/issues/65#issuecomment-1186275433
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/bd92182cd56140ffb2f68ec01492e5aa6333a8fc" style="color: #1068bf;">bd92182c</a></strong>
<div>
<span>by Ben Gamari</span>
<i>at 2022-07-19T02:34:47-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>configure: Use AC_PATH_TOOL to detect tools

Previously we used AC_PATH_PROG which, as noted by #21601, does not
look for tools with a target prefix,
breaking cross-compilation.

Fixes #21601.
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/e8c07aa91f0f05816b455457e3781c247b7399ca" style="color: #1068bf;">e8c07aa9</a></strong>
<div>
<span>by Matthew Pickering</span>
<i>at 2022-07-19T10:07:53-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>driver: Fix implementation of -S

We were failing to stop before running the assembler so the object file
was also created.

Fixes #21869
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/e2f0094c315746ff15b8d9650cf318f81d8416d7" style="color: #1068bf;">e2f0094c</a></strong>
<div>
<span>by Ben Gamari</span>
<i>at 2022-07-19T10:08:28-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>rts/ProfHeap: Ensure new Censuses are zeroed

When growing the Census array ProfHeap previously neglected to
zero the new part of the array. Consequently `freeEra` would attempt to
free random words that often looked suspiciously like pointers.

Fixes #21880.
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/81d65f7f358fdbd1d13b89c43fc4cbe3ac82d24b" style="color: #1068bf;">81d65f7f</a></strong>
<div>
<span>by sheaf</span>
<i>at 2022-07-21T15:37:22+02:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>Make withDict opaque to the specialiser

As pointed out in #21575, it is not sufficient to set withDict to inline
after the typeclass specialiser, because we might inline withDict in one
module and then import it in another, and we run into the same problem.
This means we could still end up with incorrect runtime results because
the typeclass specialiser would assume that distinct typeclass evidence
terms at the same type are equal, when this is not necessarily the case
when using withDict.

Instead, this patch introduces a new magicId, 'nospec', which is only
inlined in CorePrep. We make use of it in the definition of withDict
to ensure that the typeclass specialiser does not common up distinct
typeclass evidence terms.

Fixes #21575
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/9a3e1f316598f7d5072ed4f94437f759352580a5" style="color: #1068bf;">9a3e1f31</a></strong>
<div>
<span>by Dominik Peteler</span>
<i>at 2022-07-22T08:18:40-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>Refactored Simplify pass

 * Removed references to driver from GHC.Core.LateCC, GHC.Core.Simplify
   namespace and GHC.Core.Opt.Stats.
   Also removed services from configuration records.

 * Renamed GHC.Core.Opt.Simplify to GHC.Core.Opt.Simplify.Iteration.

 * Inlined `simplifyPgm` and renamed `simplifyPgmIO` to `simplifyPgm`
   and moved the Simplify driver to GHC.Core.Opt.Simplify.

 * Moved `SimplMode` and `FloatEnable` to GHC.Core.Opt.Simplify.Env.

 * Added a configuration record `TopEnvConfig` for the `SimplTopEnv` environment
   in GHC.Core.Opt.Simplify.Monad.

 * Added `SimplifyOpts` and `SimplifyExprOpts`. Provide initialization functions
   for those in a new module GHC.Driver.Config.Core.Opt.Simplify.
   Also added initialization functions for `SimplMode` to that module.

 * Moved `CoreToDo` and friends to a new module GHC.Core.Pipeline.Types
   and the counting types and functions (`SimplCount` and `Tick`) to new
   module GHC.Core.Opt.Stats.

 * Added getter functions for the fields of `SimplMode`. The pedantic bottoms
   option and the platform are retrieved from the ArityOpts and RuleOpts and the
   getter functions allow us to retrieve values from `SpecEnv` without the
   knowledge where the data is stored exactly.

 * Moved the coercion optimization options from the top environment to
   `SimplMode`. This way the values left in the top environment are those
   dealing with monadic functionality, namely logging, IO related stuff and
   counting. Added a note "The environments of the Simplify pass".

 * Removed `CoreToDo` from GHC.Core.Lint and GHC.CoreToStg.Prep and got rid of
   `CoreDoSimplify`. Pass `SimplifyOpts` in the `CoreToDo` type instead.

 * Prep work before removing `InteractiveContext` from `HscEnv`.
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/2c5991ccaf45cb7e68e54d59a27ee144a4499edb" style="color: #1068bf;">2c5991cc</a></strong>
<div>
<span>by Simon Peyton Jones</span>
<i>at 2022-07-22T08:18:41-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>Make the specialiser deal better with specialised methods

This patch fixes #21848, by being more careful to update unfoldings
in the type-class specialiser.

See the new Note [Update unfolding after specialisation]

Now that we are being so much more careful about unfoldings,
it turned out that I could dispense with se_interesting, and
all its tricky corners. Hooray.  This fixes #21368.
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/ae1666353696b5d85938d8a2f5fb11fb66f21678" style="color: #1068bf;">ae166635</a></strong>
<div>
<span>by Ben Gamari</span>
<i>at 2022-07-22T08:18:41-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>ghc-boot: Clean up UTF-8 codecs

In preparation for moving the UTF-8 codecs into `base`:

* Move them to GHC.Utils.Encoding.UTF8
* Make names more consistent
* Add some Haddocks
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/e8ac91dbaeeb1296c4ae22506b01faf3b6579e9a" style="color: #1068bf;">e8ac91db</a></strong>
<div>
<span>by Ben Gamari</span>
<i>at 2022-07-22T08:18:41-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>base: Introduce GHC.Encoding.UTF8

Here we copy a subset of the UTF-8 implementation living in `ghc-boot`
into `base`, with the intent of dropping the former in the future. For
this reason, the `ghc-boot` copy is now CPP-guarded on
`MIN_VERSION_base(4,18,0)`.

Naturally, we can't copy *all* of the functions defined by `ghc-boot` as
some depend upon `bytestring`; we rather just copy those which only
depend upon `base` and `ghc-prim`.

Further consolidation?
----------------------

Currently GHC ships with at least five UTF-8 implementations:

* the implementation used by GHC in `ghc-boot:GHC.Utils.Encoding`; this
  can be used at a number of types including `Addr#`, `ByteArray#`,
  `ForeignPtr`, `Ptr`, `ShortByteString`, and `ByteString`. Most of this
  can be removed in GHC 9.6+2, when the copies in `base` will become
  available to `ghc-boot`.
* the copy of the `ghc-boot` definition now exported by
  `base:GHC.Encoding.UTF8`. This can be used at `Addr#`, `Ptr`,
  `ByteArray#`, and `ForeignPtr`
* the decoder used by `unpackCStringUtf8#` in `ghc-prim:GHC.CString`;
  this is specialised at `Addr#`.
* the codec used by the IO subsystem in `base:GHC.IO.Encoding.UTF8`;
  this is specialised at `Addr#` but, unlike the above, supports
  recovery in the presence of partial codepoints (since in IO contexts
  codepoints may be broken across buffers)
* the implementation provided by the `text` library

This does seem a tad silly. On the other hand, these implementations
*do* materially differ from one another (e.g. in the types they support,
the detail in errors they can report, and the ability to recover from
partial codepoints). Consequently, it's quite unclear that further
consolidate would be worthwhile.
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/f9ad80255dacc2047981031741caca4b2df45f4e" style="color: #1068bf;">f9ad8025</a></strong>
<div>
<span>by Ben Gamari</span>
<i>at 2022-07-22T08:18:41-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>Add a Note summarising GHC's UTF-8 implementations

GHC has a somewhat dizzying array of UTF-8 implementations. This note
describes why this is the case.
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/72dfad3dea54c003af88c8a5c0da57ce37216e9f" style="color: #1068bf;">72dfad3d</a></strong>
<div>
<span>by Ben Gamari</span>
<i>at 2022-07-22T08:18:42-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>upload_ghc_libs: Fix path to documentation

The documentation was moved in a10584e8df9b346cecf700b23187044742ce0b35
but this one occurrence was note updated.

Finally closes #21164.
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/a8b150e7809cbcd216963e0b3942b26722173f57" style="color: #1068bf;">a8b150e7</a></strong>
<div>
<span>by sheaf</span>
<i>at 2022-07-22T08:18:44-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>Add test for #21871

This adds a test for #21871, which was fixed by the No Skolem Info
rework (MR !7105).

Fixes #21871
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/6379f9429e8f9e8f58f4c3c8206c265620feb26e" style="color: #1068bf;">6379f942</a></strong>
<div>
<span>by sheaf</span>
<i>at 2022-07-22T08:18:46-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>Add test for #21360

The way record updates are typechecked/desugared changed in MR !7981.
Because we desugar in the typechecker to a simple case expression, the
pattern match checker becomes able to spot the long-distance information
and avoid emitting an incorrect pattern match warning.

Fixes #21360
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/ce0cd12c65b4130dc6eb9952e058828d65d8a2ad" style="color: #1068bf;">ce0cd12c</a></strong>
<div>
<span>by sheaf</span>
<i>at 2022-07-22T08:18:47-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>Hadrian: don't try to build "unix" on Windows</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/dc27e15a76486b1ebd27a77f8515044c2671e22d" style="color: #1068bf;">dc27e15a</a></strong>
<div>
<span>by Simon Peyton Jones</span>
<i>at 2022-07-25T09:42:01-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>Implement DeepSubsumption

This MR adds the language extension -XDeepSubsumption, implementing
GHC proposal #511.  This change mitigates the impact of GHC proposal

The changes are highly localised, by design.  See Note [Deep subsumption]
in GHC.Tc.Utils.Unify.

The main changes are:

* Add -XDeepSubsumption, which is on by default in Haskell98 and Haskell2010,
  but off in Haskell2021.

  -XDeepSubsumption largely restores the behaviour before the "simple subsumption" change.
  -XDeepSubsumpition has a similar flavour as -XNoMonoLocalBinds:
  it makes type inference more complicated and less predictable, but it
  may be convenient in practice.

* The main changes are in:
  * GHC.Tc.Utils.Unify.tcSubType, which does deep susumption and eta-expanansion
  * GHC.Tc.Utils.Unify.tcSkolemiseET, which does deep skolemisation
  * In GHC.Tc.Gen.App.tcApp we call tcSubTypeNC to match the result
    type. Without deep subsumption, unifyExpectedType would be sufficent.

  See Note [Deep subsumption] in GHC.Tc.Utils.Unify.

* There are no changes to Quick Look at all.

* The type of `withDict` becomes ambiguous; so add -XAllowAmbiguousTypes to
  GHC.Magic.Dict

* I fixed a small but egregious bug in GHC.Core.FVs.varTypeTyCoFVs, where
  we'd forgotten to take the free vars of the multiplicity of an Id.

* I also had to fix tcSplitNestedSigmaTys

  When I did the shallow-subsumption patch
    commit 2b792facab46f7cdd09d12e79499f4e0dcd4293f
    Date:   Sun Feb 2 18:23:11 2020 +0000
    Simple subsumption

  I changed tcSplitNestedSigmaTys to not look through function arrows
  any more.  But that was actually an un-forced change.  This function
  is used only in

  * Improving error messages in GHC.Tc.Gen.Head.addFunResCtxt
  * Validity checking for default methods: GHC.Tc.TyCl.checkValidClass
  * A couple of calls in the GHCi debugger: GHC.Runtime.Heap.Inspect

  All to do with validity checking and error messages. Acutally its
  fine to look under function arrows here, and quite useful a test
  DeepSubsumption05 (a test motivated by a build failure in the
  `lens` package) shows.

  The fix is easy.  I added Note [tcSplitNestedSigmaTys].
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/e31ead39331f1bb6d3976ae7573be8fe2b364172" style="color: #1068bf;">e31ead39</a></strong>
<div>
<span>by Matthew Pickering</span>
<i>at 2022-07-25T09:42:01-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>Add tests that -XHaskell98 and -XHaskell2010 enable DeepSubsumption
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/671899858585376dcbbbdc3740dad4b8ec7b6a70" style="color: #1068bf;">67189985</a></strong>
<div>
<span>by Matthew Pickering</span>
<i>at 2022-07-25T09:42:01-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>Add DeepSubsumption08
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/5e93a9521fc2220ee6f4f150c6681f84f33a2134" style="color: #1068bf;">5e93a952</a></strong>
<div>
<span>by Simon Peyton Jones</span>
<i>at 2022-07-25T09:42:01-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>Fix the interaction of operator sections and deep subsumption

Fixes DeepSubsumption08
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/918620d9e2f9e4a0122c57d7fdddbe34626f34b0" style="color: #1068bf;">918620d9</a></strong>
<div>
<span>by Zubin Duggal</span>
<i>at 2022-07-25T09:42:01-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>Add DeepSubsumption09
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/2a773259fae8ae178a80538223b3e7a9bda93717" style="color: #1068bf;">2a773259</a></strong>
<div>
<span>by Gabriella Gonzalez</span>
<i>at 2022-07-25T09:42:40-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>Default implementation for mempty/(<>)

Approved by: https://github.com/haskell/core-libraries-committee/issues/61

This adds a default implementation for `mempty` and `(<>)` along
with a matching `MINIMAL` pragma so that `Semigroup` and `Monoid`
instances can be defined in terms of `sconcat` / `mconcat`.

The description for each class has also been updated to include the
equivalent set of laws for the `sconcat`-only / `mconcat`-only
instances.
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/73836fc84b6b39fed34ccb3a501f7a88658c1400" style="color: #1068bf;">73836fc8</a></strong>
<div>
<span>by Bryan Richter</span>
<i>at 2022-07-25T09:43:16-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>ci: Disable (broken) perf-nofib

See #21859
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/c24ca5c3b1246465f5fee4388effba74ea5351ad" style="color: #1068bf;">c24ca5c3</a></strong>
<div>
<span>by sheaf</span>
<i>at 2022-07-25T09:43:58-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>Docs: clarify ConstraintKinds infelicity

GHC doesn't consistently require the ConstraintKinds extension to
be enabled, as it allows programs such as type families returning
a constraint without this extension.

MR !7784 fixes this infelicity, but breaking user programs was deemed
to not be worth it, so we document it instead.

Fixes #21061.
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/5f2fbd5e217802b3ae2bcab505bba05dc69115ec" style="color: #1068bf;">5f2fbd5e</a></strong>
<div>
<span>by Simon Peyton Jones</span>
<i>at 2022-07-25T09:44:34-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>More improvements to worker/wrapper

This patch fixes #21888, and simplifies finaliseArgBoxities
by eliminating the (recently introduced) data type FinalDecision.

A delicate interaction meant that this patch
   commit d1c25a48154236861a413e058ea38d1b8320273f
   Date:   Tue Jul 12 16:33:46 2022 +0100
   Refactor wantToUnboxArg a bit

make worker/wrapper go into an infinite loop.  This patch
fixes it by narrowing the handling of case (B) of
Note [Boxity for bottoming functions], to deal only the
arguemnts that are type variables.  Only then do we drop
the trimBoxity call, which is what caused the bug.

I also
* Added documentation of case (B), which was previously
  completely un-mentioned.  And a regression test,
  T21888a, to test it.

* Made unboxDeeplyDmd stop at lazy demands.  It's rare anyway
  for a bottoming function to have a lazy argument (mainly when
  the data type is recursive and then we don't want to unbox
  deeply).  Plus there is Note [No lazy, Unboxed demands in
  demand signature]

* Refactored the Case equation for dmdAnal a bit, to do less
  redundant pattern matching.
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/b77d95f8a4b0f8a5025dbd5036c17ecf85ca3ab2" style="color: #1068bf;">b77d95f8</a></strong>
<div>
<span>by Simon Peyton Jones</span>
<i>at 2022-07-25T09:45:09-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>Fix a small buglet in tryEtaReduce

Gergo points out (#21801) that GHC.Core.Opt.Arity.tryEtaReduce was
making an ill-formed cast.  It didn't matter, because the subsequent
guard discarded it; but still worth fixing.  Spurious warnings are
distracting.
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/3bbde95769aa2986adb8bef7d718aa0e8731f9fd" style="color: #1068bf;">3bbde957</a></strong>
<div>
<span>by Zubin Duggal</span>
<i>at 2022-07-25T09:45:45-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>Fix #21889, GHCi misbehaves with Ctrl-C on Windows

On Windows, we create multiple levels of wrappers for GHCi which ultimately
execute ghc --interactive. In order to handle console events properly, each of
these wrappers must call FreeConsole() in order to hand off event processing to
the child process. See #14150.

In addition to this, FreeConsole must only be called from interactive processes (#13411).

This commit makes two changes to fix this situation:

1. The hadrian wrappers generated using `hadrian/bindist/cwrappers/version-wrapper.c` call `FreeConsole`
   if the CPP flag INTERACTIVE_PROCESS is set, which is set when we are generating a wrapper for GHCi.
2. The GHCi wrapper in `driver/ghci/` calls the `ghc-$VER.exe` executable which is not wrapped rather
   than calling `ghc.exe` is is wrapped on windows (and usually non-interactive, so can't call `FreeConsole`:

   Before:
   ghci-$VER.exe calls ghci.exe which calls ghc.exe which calls ghc-$VER.exe

   After:
   ghci-$VER.exe calls ghci.exe which calls ghc-$VER.exe
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/79f1b0219f5c00f5c8eb7884bd33993bd98680a0" style="color: #1068bf;">79f1b021</a></strong>
<div>
<span>by Simon Jakobi</span>
<i>at 2022-07-25T09:46:21-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>docs: Fix documentation of \cases

Fixes #21902.
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/e4bf95920a9bbcb5b6ac3715282c69f612137156" style="color: #1068bf;">e4bf9592</a></strong>
<div>
<span>by sternenseemann</span>
<i>at 2022-07-25T09:47:01-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>ghc-cabal: allow Cabal 3.8 to unbreak make build

When bootstrapping GHC 9.4.*, the build will fail when configuring
ghc-cabal as part of the make based build system due to this upper
bound, as Cabal has been updated to a 3.8 release.

Reference #21914, see especially
https://gitlab.haskell.org/ghc/ghc/-/issues/21914#note_444699
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/726d938eb6604e2fe788f914e295aa1e29109b26" style="color: #1068bf;">726d938e</a></strong>
<div>
<span>by Simon Peyton Jones</span>
<i>at 2022-07-25T14:38:14-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>Fix isEvaldUnfolding and isValueUnfolding

This fixes (1) in #21831.  Easy, obviously correct.
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/5d26c321ae494db1b1cf725af3e002d344886951" style="color: #1068bf;">5d26c321</a></strong>
<div>
<span>by Simon Peyton Jones</span>
<i>at 2022-07-25T14:38:14-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>Switch off eta-expansion in rules and unfoldings

I think this change will make little difference except to reduce
clutter.  But that's it -- if it causes problems we can switch it
on again.
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/d4fe2f4e01e414e78f8f4d9c626e8babfdf5bf48" style="color: #1068bf;">d4fe2f4e</a></strong>
<div>
<span>by Simon Peyton Jones</span>
<i>at 2022-07-25T14:38:14-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>Teach SpecConstr about typeDeterminesValue

This patch addresses #21831, point 2.  See
Note [generaliseDictPats] in SpecConstr

I took the opportunity to refactor the construction of specialisation
rules a bit, so that the rule name says what type we are specialising
at.

Surprisingly, there's a 20% decrease in compile time for test
perf/compiler/T18223. I took a look at it, and the code size seems the
same throughout. I did a quick ticky profile which seemed to show a
bit less substitution going on.  Hmm.  Maybe it's the "don't do
eta-expansion in stable unfoldings" patch, which is part of the
same MR as this patch.

Anyway, since it's a move in the right direction, I didn't think it
was worth looking into further.

Metric Decrease:
    T18223
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/65f7838a281fb2e9fe28e38d2fe88e06deda27a0" style="color: #1068bf;">65f7838a</a></strong>
<div>
<span>by Simon Peyton Jones</span>
<i>at 2022-07-25T14:38:14-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>Add a 'notes' file in testsuite/tests/perf/compiler

This file is just a place to accumlate notes about particular
benchmarks, so that I don't keep re-inventing the wheel.
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/61faff40394c67956f53064b357e5b870c4de6c9" style="color: #1068bf;">61faff40</a></strong>
<div>
<span>by Simon Peyton Jones</span>
<i>at 2022-07-25T14:38:50-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>Get the in-scope set right in FamInstEnv.injectiveBranches

There was an assert error, as Gergo pointed out in #21896.

I fixed this by adding an InScopeSet argument to tcUnifyTyWithTFs.
And also to GHC.Core.Unify.niFixTCvSubst.

I also took the opportunity to get a couple more InScopeSets right,
and to change some substTyUnchecked into substTy.

This MR touches a lot of other files, but only because I also took the
opportunity to introduce mkInScopeSetList, and use it.
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/4a7256a75af2fc0318bef771a06949ffb3939d5a" style="color: #1068bf;">4a7256a7</a></strong>
<div>
<span>by Cheng Shao</span>
<i>at 2022-07-25T20:41:55+00:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>Add location to cc phase
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/96811ba491495b601ec7d6a32bef8563b0292109" style="color: #1068bf;">96811ba4</a></strong>
<div>
<span>by Cheng Shao</span>
<i>at 2022-07-25T20:41:55+00:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>Avoid as pipeline when compiling c
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/2869b66d49f1d225c8800909176ec3ca67ae8f9d" style="color: #1068bf;">2869b66d</a></strong>
<div>
<span>by Cheng Shao</span>
<i>at 2022-07-25T20:42:20+00:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>testsuite: Skip test cases involving -S when testing unregisterised GHC

We no longer generate .s files anyway.

Metric Decrease:
    MultiLayerModules
    T10421
    T13035
    T13701
    T14697
    T16875
    T18140
    T18304
    T18923
    T9198
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/82a0991a73130f2cb70bd8ccaaff30cffd1dd2b0" style="color: #1068bf;">82a0991a</a></strong>
<div>
<span>by Ben Gamari</span>
<i>at 2022-07-25T23:32:05-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>testsuite: introduce nonmoving_thread_sanity way

(cherry picked from commit 19f8fce3659de3d72046bea9c61d1a82904bc4ae)
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/4b08797380a0a0a789844c17c6ed1570b62dc119" style="color: #1068bf;">4b087973</a></strong>
<div>
<span>by Ben Gamari</span>
<i>at 2022-07-25T23:32:06-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>rts/nonmoving: Track segment state

It can often be useful during debugging to be able to determine the
state of a nonmoving segment. Introduce some state, enabled by DEBUG, to
track this.

(cherry picked from commit 40e797ef591ae3122ccc98ab0cc3cfcf9d17bd7f)
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/54a5c32d9d0792d8f3f80728edf6f39db5321fe5" style="color: #1068bf;">54a5c32d</a></strong>
<div>
<span>by Ben Gamari</span>
<i>at 2022-07-25T23:32:06-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>rts/nonmoving: Don't scavenge objects which weren't evacuated

This fixes a rather subtle bug in the logic responsible for scavenging
objects evacuated to the non-moving generation. In particular, objects
can be allocated into the non-moving generation by two ways:

 a. evacuation out of from-space by the garbage collector
 b. direct allocation by the mutator

Like all evacuation, objects moved by (a) must be scavenged, since they
may contain references to other objects located in from-space. To
accomplish this we have the following scheme:

 * each nonmoving segment's block descriptor has a scan pointer which
   points to the first object which has yet to be scavenged

 * the GC tracks a set of "todo" segments which have pending scavenging
   work

 * to scavenge a segment, we scavenge each of the unmarked blocks
   between the scan pointer and segment's `next_free` pointer.

   We skip marked blocks since we know the allocator wouldn't have
   allocated into marked blocks (since they contain presumably live
   data).

   We can stop at `next_free` since, by
   definition, the GC could not have evacuated any objects to blocks
   above `next_free` (otherwise `next_free wouldn't be the first free
   block).

However, this neglected to consider objects allocated by path (b).
In short, the problem is that objects directly allocated by the mutator
may become unreachable (but not swept, since the containing segment is
not yet full), at which point they may contain references to swept objects.
Specifically, we observed this in #21885 in the following way:

1. the mutator (specifically in #21885, a `lockCAF`) allocates an object
   (specifically a blackhole, which here we will call `blkh`; see Note
   [Static objects under the nonmoving collector] for the reason why) on
   the non-moving heap. The bitmap of the allocated block remains 0
   (since allocation doesn't affect the bitmap) and the containing
   segment's (which we will call `blkh_seg`) `next_free` is advanced.
2. We enter the blackhole, evaluating the blackhole to produce a result
   (specificaly a cons cell) in the nursery
3. The blackhole gets updated into an indirection pointing to the cons
   cell; it is pushed to the generational remembered set
4. we perform a GC, the cons cell is evacuated into the nonmoving heap
   (into segment `cons_seg`)
5. the cons cell is marked
6. the GC concludes
7. the CAF and blackhole become unreachable
8. `cons_seg` is filled
9. we start another GC; the cons cell is swept
10. we start a new GC
11. something is evacuated into `blkh_seg`, adding it to the "todo" list
12. we attempt to scavenge `blkh_seg` (namely, all unmarked blocks
    between `scan` and `next_free`, which includes `blkh`). We attempt to
    evacuate `blkh`'s indirectee, which is the previously-swept cons cell.
    This is unsafe, since the indirectee is no longer a valid heap
    object.

The problem here was that the scavenging logic *assumed* that (a) was
the only source of allocations into the non-moving heap and therefore
*all* unmarked blocks between `scan` and `next_free` were evacuated.
However, due to (b) this is not true.

The solution is to ensure that that the scanned region only encompasses
the region of objects allocated during evacuation. We do this by
updating `scan` as we push the segment to the todo-segment list to
point to the block which was evacuated into.

Doing this required changing the nonmoving scavenging implementation's
update of the `scan` pointer to bump it *once*, instead of after
scavenging each block as was done previously. This is because we may end
up evacuating into the segment being scavenged as we scavenge it. This
was quite tricky to discover but the result is quite simple,
demonstrating yet again that global mutable state should be used
exceedingly sparingly.

Fixes #21885

(cherry picked from commit 0b27ea23efcb08639309293faf13fdfef03f1060)
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/25c24535ad51aa22b9cae425c6ac4ad9a8f1e1e9" style="color: #1068bf;">25c24535</a></strong>
<div>
<span>by Ben Gamari</span>
<i>at 2022-07-25T23:32:06-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>testsuite: Skip a few tests as in the nonmoving collector

Residency monitoring under the non-moving collector is quite
conservative (e.g. the reported value is larger than reality) since
otherwise we would need to block on concurrent collection. Skip a few
tests that are sensitive to residency.

(cherry picked from commit 6880e4fbf728c04e8ce83e725bfc028fcb18cd70)
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/42147534320f9ac22f16ffc226148ae553337d2e" style="color: #1068bf;">42147534</a></strong>
<div>
<span>by sternenseemann</span>
<i>at 2022-07-26T16:26:53-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>hadrian: add flag disabling selftest rules which require QuickCheck

The hadrian executable depends on QuickCheck for building, meaning this
library (and its dependencies) will need to be built for bootstrapping
GHC in the future. Building QuickCheck, however, can require
TemplateHaskell. When building a statically linking GHC toolchain,
TemplateHaskell can be tricky to get to work, and cross-compiling
TemplateHaskell doesn't work at all without -fexternal-interpreter,
so QuickCheck introduces an element of fragility to GHC's bootstrap.

Since the selftest rules are the only part of hadrian that need
QuickCheck, we can easily eliminate this bootstrap dependency when
required by introducing a `selftest` flag guarding the rules' inclusion.

Closes #8699.
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/9ea29d47bbeac7abf54c9c05d105bb6f21d4c083" style="color: #1068bf;">9ea29d47</a></strong>
<div>
<span>by Simon Peyton Jones</span>
<i>at 2022-07-26T16:27:28-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>Regression test for #21848
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/ef30e21594e44af309c627052f63aea6fd575c9e" style="color: #1068bf;">ef30e215</a></strong>
<div>
<span>by Matthew Pickering</span>
<i>at 2022-07-28T13:56:59-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>driver: Don't create LinkNodes when -no-link is enabled

Fixes #21866
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/fc23b5ed0f7924308040bf4163fc0a6da176feed" style="color: #1068bf;">fc23b5ed</a></strong>
<div>
<span>by sheaf</span>
<i>at 2022-07-28T13:57:38-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>Docs: fix mistaken claim about kind signatures

This patch fixes #21806 by rectifying an incorrect claim about
the usage of kind variables in the header of a data declaration with
a standalone kind signature.

It also adds some clarifications about the number of parameters expected
in GADT declarations and in type family declarations.
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/2df92ee17b1b34a6c1e8f956c06494df4ede184e" style="color: #1068bf;">2df92ee1</a></strong>
<div>
<span>by Matthew Pickering</span>
<i>at 2022-08-02T05:20:01-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>testsuite: Correctly set withNativeCodeGen

Fixes #21918
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/f29121438a4d6ee885373e32f24eaf85ffd167e1" style="color: #1068bf;">f2912143</a></strong>
<div>
<span>by Matthew Pickering</span>
<i>at 2022-08-02T05:20:45-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>Fix since annotations in GHC.Stack.CloneStack

Fixes #21894
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/aeb8497d18c12e5e05efa0513a2a0da275082ab5" style="color: #1068bf;">aeb8497d</a></strong>
<div>
<span>by Andreas Klebinger</span>
<i>at 2022-08-02T19:26:51-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>Add -dsuppress-coercion-types to make coercions even smaller.

Instead of `` `cast` <Co:11> :: (Some -> Really -> Large Type)``
simply print `` `cast` <Co:11> :: ... ``
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/97655ad88c42003bc5eeb5c026754b005229800c" style="color: #1068bf;">97655ad8</a></strong>
<div>
<span>by sheaf</span>
<i>at 2022-08-02T19:27:29-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>User's guide: fix typo in hasfield.rst

Fixes #21950
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/35aef18de6d04473da95cb5a19d5cc111ee7ec45" style="color: #1068bf;">35aef18d</a></strong>
<div>
<span>by Yiyun Liu</span>
<i>at 2022-08-04T02:55:07-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>Remove TCvSubst and use Subst for both term and type-level subst

This patch removes the TCvSubst data type and instead uses Subst as
the environment for both term and type level substitution. This
change is partially motivated by the existential type proposal,
which will introduce types that contain expressions and therefore
forces us to carry around an "IdSubstEnv" even when substituting for
types. It also reduces the amount of code because "Subst" and
"TCvSubst" share a lot of common operations. There isn't any
noticeable impact on performance (geo. mean for ghc/alloc is around
0.0% but we have -94 loc and one less data type to worry abount).

Currently, the "TCvSubst" data type for substitution on types is
identical to the "Subst" data type except the former doesn't store
"IdSubstEnv". Using "Subst" for type-level substitution means there
will be a redundant field stored in the data type. However, in cases
where the substitution starts from the expression, using "Subst" for
type-level substitution saves us from having to project "Subst" into a
"TCvSubst". This probably explains why the allocation is mostly even
despite the redundant field.

The patch deletes "TCvSubst" and moves "Subst" and its relevant
functions from "GHC.Core.Subst" into "GHC.Core.TyCo.Subst".
Substitution on expressions is still defined in "GHC.Core.Subst" so we
don't have to expose the definition of "Expr" in the hs-boot file that
"GHC.Core.TyCo.Subst" must import to refer to "IdSubstEnv" (whose
codomain is "CoreExpr"). Most functions named fooTCvSubst are renamed
into fooSubst with a few exceptions (e.g. "isEmptyTCvSubst" is a
distinct function from "isEmptySubst"; the former ignores the
emptiness of "IdSubstEnv"). These exceptions mainly exist for
performance reasons and will go away when "Expr" and "Type" are
mutually recursively defined (we won't be able to take those
shortcuts if we can't make the assumption that expressions don't
appear in types).
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/b99819bdaa11881f0b0bec29ef6274a8c8e565a0" style="color: #1068bf;">b99819bd</a></strong>
<div>
<span>by Krzysztof Gogolewski</span>
<i>at 2022-08-04T02:55:43-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>Fix TH + defer-type-errors interaction (#21920)

Previously, we had to disable defer-type-errors in splices because of #7276.
But this fix is no longer necessary, the test T7276 no longer segfaults
and is now correctly deferred.
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/fb529caedbe45160b41a20f28e21ee0ec372b05a" style="color: #1068bf;">fb529cae</a></strong>
<div>
<span>by Andreas Klebinger</span>
<i>at 2022-08-04T13:57:25-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>Add a note about about W/W for unlifting strict arguments

This fixes #21236.
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/fffc75a92ec20976dbdb027a19ccb2315afd2618" style="color: #1068bf;">fffc75a9</a></strong>
<div>
<span>by Matthew Pickering</span>
<i>at 2022-08-04T13:58:01-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>Force safeInferred to avoid retaining extra copy of DynFlags

This will only have a (very) modest impact on memory but we don't want
to retain old copies of DynFlags hanging around so best to force this
value.
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/0f43837f50d16b1fa24458d6ca2a042b52c95270" style="color: #1068bf;">0f43837f</a></strong>
<div>
<span>by Matthew Pickering</span>
<i>at 2022-08-04T13:58:01-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>Force name selectors to ensure no reference to Ids enter the NameCache

I observed some unforced thunks in the NameCache which were retaining a
whole Id, which ends up retaining a Type.. which ends up retaining old
copies of HscEnv containing stale HomeModInfo.
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/0b1f5fd1ba67d04c534625740344a3c9ad525148" style="color: #1068bf;">0b1f5fd1</a></strong>
<div>
<span>by Matthew Pickering</span>
<i>at 2022-08-04T13:58:01-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>Fix leaks in --make mode when there are module loops

This patch fixes quite a tricky leak where we would end up retaining
stale ModDetails due to rehydrating modules against non-finalised
interfaces.

== Loops with multiple boot files

It is possible for a module graph to have a loop (SCC, when ignoring boot files)
which requires multiple boot files to break. In this case we must perform the
necessary hydration steps before and after compiling modules which have boot files
which are described above for corectness but also perform an additional hydration step
at the end of the SCC to remove space leaks.

Consider the following example:

┌───────┐   ┌───────┐
│       │   │       │
│   A   │   │   B   │
│       │   │       │
└─────┬─┘   └───┬───┘
      │         │
 ┌────▼─────────▼──┐
 │                 │
 │        C        │
 └────┬─────────┬──┘
      │         │
 ┌────▼──┐  ┌───▼───┐
 │       │  │       │
 │ A-boot│  │ B-boot│
 │       │  │       │
 └───────┘  └───────┘

 A, B and C live together in a SCC. Say we compile the modules in order
 A-boot, B-boot, C, A, B then when we compile A we will perform the hydration steps
 (because A has a boot file). Therefore C will be hydrated relative to A, and the
 ModDetails for A will reference C/A. Then when B is compiled C will be rehydrated again,
 and so B will reference C/A,B, its interface will be hydrated relative to both A and B.
 Now there is a space leak because say C is a very big module, there are now two different copies of
 ModDetails kept alive by modules A and B.

The way to avoid this space leak is to rehydrate an entire SCC together at the
end of compilation so that all the ModDetails point to interfaces for .hs files.
In this example, when we hydrate A, B and C together then both A and B will refer to
C/A,B.

See #21900 for some more discussion.

-------------------------------------------------------

In addition to this simple case, there is also the potential for a leak
during parallel upsweep which is also fixed by this patch. Transcibed is
Note [ModuleNameSet, efficiency and space leaks]

Note [ModuleNameSet, efficiency and space leaks]
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

During unsweep the results of compiling modules are placed into a MVar, to find
the environment the module needs to compile itself in the MVar is consulted and
the HomeUnitGraph is set accordingly. The reason we do this is that precisely tracking
module dependencies and recreating the HUG from scratch each time is very expensive.

In serial mode (-j1), this all works out fine because a module can only be compiled after
its dependencies have finished compiling and not interleaved with compiling module loops.
Therefore when we create the finalised or no loop interfaces, the HUG only contains
finalised interfaces.

In parallel mode, we have to be more careful because the HUG variable can contain
non-finalised interfaces which have been started by another thread. In order to avoid
a space leak where a finalised interface is compiled against a HPT which contains a
non-finalised interface we have to restrict the HUG to only the visible modules.

The visible modules is recording in the ModuleNameSet, this is propagated upwards
whilst compiling and explains which transitive modules are visible from a certain point.
This set is then used to restrict the HUG before the module is compiled to only
the visible modules and thus avoiding this tricky space leak.

Efficiency of the ModuleNameSet is of utmost importance because a union occurs for
each edge in the module graph. Therefore the set is represented directly as an IntSet
which provides suitable performance, even using a UniqSet (which is backed by an IntMap) is
too slow. The crucial test of performance here is the time taken to a do a no-op build in --make mode.

See test "jspace" for an example which used to trigger this problem.

Fixes #21900
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/1d94a59fbadd56efec78680c89946eb425eef418" style="color: #1068bf;">1d94a59f</a></strong>
<div>
<span>by Matthew Pickering</span>
<i>at 2022-08-04T13:58:01-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>Store interfaces in ModIfaceCache more directly

I realised hydration was completely irrelavant for this cache because
the ModDetails are pruned from the result. So now it simplifies things a
lot to just store the ModIface and Linkable, which we can put into the
cache straight away rather than wait for the final version of a
HomeModInfo to appear.
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/6c7cd50fb38f4038f6a5e2d11a5e2bf1ae93ceff" style="color: #1068bf;">6c7cd50f</a></strong>
<div>
<span>by Cheng Shao</span>
<i>at 2022-08-04T23:01:45-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>cmm: Remove unused ReadOnlyData16

We don't actually emit rodata16 sections anywhere.
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/16333ad780300432b974f604d9fc20ad5c6aa773" style="color: #1068bf;">16333ad7</a></strong>
<div>
<span>by Andreas Klebinger</span>
<i>at 2022-08-04T23:02:20-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>findExternalRules: Don't needlessly traverse the list of rules.
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/52c156748d8883200d73e0ab199f1fb103e1e940" style="color: #1068bf;">52c15674</a></strong>
<div>
<span>by Krzysztof Gogolewski</span>
<i>at 2022-08-05T12:47:05-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>Remove backported items from 9.6 release notes

They have been backported to 9.4 in commits 5423d84bd9a28f,
13c81cb6be95c5, 67ccbd6b2d4b9b.
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/78d232f5ca7f02b8f743e6982e710a4bfb309c4f" style="color: #1068bf;">78d232f5</a></strong>
<div>
<span>by Matthew Pickering</span>
<i>at 2022-08-05T12:47:40-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>ci: Fix pages job

The job has been failing because we don't bundle haddock docs anymore in
the docs dist created by hadrian.

Fixes #21789
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/037bc9c94a7977d0382b9d510b4ba6c08f87fbfb" style="color: #1068bf;">037bc9c9</a></strong>
<div>
<span>by Ben Gamari</span>
<i>at 2022-08-05T22:00:29-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>codeGen/X86: Don't clobber switch variable in switch generation

Previously ce8745952f99174ad9d3bdc7697fd086b47cdfb5 assumed that it was
safe to clobber the switch variable when generating code for a jump
table since we were at the end of a block. However, this assumption is
wrong; the register could be live in the jump target.

Fixes #21968.
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/50c8e1c5684eda39ba1c7f78fcd0eff57f1b5dbd" style="color: #1068bf;">50c8e1c5</a></strong>
<div>
<span>by Matthew Pickering</span>
<i>at 2022-08-05T22:01:04-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>Fix equality operator in jspace test
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/e9c77a22d749b7f3ab84a715db68e984c8350684" style="color: #1068bf;">e9c77a22</a></strong>
<div>
<span>by Andreas Klebinger</span>
<i>at 2022-08-06T06:13:17-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>Improve BUILD_PAP comments
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/4123414723eb57ed5d3f8e7df0001178033c2367" style="color: #1068bf;">41234147</a></strong>
<div>
<span>by Andreas Klebinger</span>
<i>at 2022-08-06T06:13:17-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>Make dropTail comment a haddock comment
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/ff11d579dd1ff8f138a24f698517f3cbcff219f7" style="color: #1068bf;">ff11d579</a></strong>
<div>
<span>by Andreas Klebinger</span>
<i>at 2022-08-06T06:13:17-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>Add one more sanity check in stg_restore_cccs
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/1f6c56ae9aa4ab4977ba376ac901d5256bf0aba0" style="color: #1068bf;">1f6c56ae</a></strong>
<div>
<span>by Andreas Klebinger</span>
<i>at 2022-08-06T06:13:17-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>StgToCmm: Fix isSimpleScrut when profiling is enabled.

When profiling is enabled we must enter functions that might represent
thunks in order for their sccs to show up in the profile.

We might allocate even if the function is already evaluated in this
case. So we can't consider any potential function thunk to be a simple
scrut when profiling.

Not doing so caused profiled binaries to segfault.
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/fab0ee93abda33bf5c7eb5ca0372e12bd140a252" style="color: #1068bf;">fab0ee93</a></strong>
<div>
<span>by Andreas Klebinger</span>
<i>at 2022-08-06T06:13:17-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>Change `-fprof-late` to insert cost centres after unfolding creation.

The former behaviour of adding cost centres after optimization but
before unfoldings are created is not available via the flag
`prof-late-inline` instead.

I also reduced the overhead of -fprof-late* by pushing the cost centres
into lambdas. This means the cost centres will only account for
execution of functions and not their partial application.

Further I made LATE_CC cost centres it's own CC flavour so they now
won't clash with user defined ones if a user uses the same string for
a custom scc.

LateCC: Don't put cost centres inside constructor workers.

With -fprof-late they are rarely useful as the worker is usually
inlined. Even if the worker is not inlined or we use -fprof-late-linline
they are generally not helpful but bloat compile and run time
significantly. So we just don't add sccs inside constructor workers.

-------------------------
Metric Decrease:
    T13701
-------------------------
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/f8bec4e37827bc8ff77a00773692fea4e7193af4" style="color: #1068bf;">f8bec4e3</a></strong>
<div>
<span>by Ben Gamari</span>
<i>at 2022-08-06T06:13:53-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>gitlab-ci: Fix hadrian bootstrapping of release pipelines

Previously we would attempt to test hadrian bootstrapping in the
`validate` build flavour. However, `ci.sh` refuses to run validation
builds during release pipelines, resulting in job failures. Fix this by
testing bootstrapping in the `release` flavour during release pipelines.

We also attempted to record perf notes for these builds, which is
redundant work and undesirable now since we no longer build in a
consistent flavour.
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/c0348865ff8b9100a8ec54be03e375c3dddc8900" style="color: #1068bf;">c0348865</a></strong>
<div>
<span>by Ben Gamari</span>
<i>at 2022-08-06T11:45:17-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>compiler: Eliminate two uses of foldr in favor of foldl'

These two uses constructed maps, which is a case where foldl' is
generally more efficient since we avoid constructing an intermediate
O(n)-depth stack.
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/d2e4e123d69a18e52b569cdb61946b2e7f30ec1e" style="color: #1068bf;">d2e4e123</a></strong>
<div>
<span>by Ben Gamari</span>
<i>at 2022-08-06T11:45:17-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>rts: Fix code style
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/57f530d38bf49b4dfc66b1495454d2d80a0c70c8" style="color: #1068bf;">57f530d3</a></strong>
<div>
<span>by Ben Gamari</span>
<i>at 2022-08-06T11:45:17-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>genprimopcode: Drop ArrayArray# references

As ArrayArray# no longer exists
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/7267cd52fb0b06479b9ceea2dc4700d949a1d75b" style="color: #1068bf;">7267cd52</a></strong>
<div>
<span>by Ben Gamari</span>
<i>at 2022-08-06T11:45:17-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>base: Organize Haddocks in GHC.Conc.Sync
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/aa818a9f83308d0742e8f8c91cb9878182dacce5" style="color: #1068bf;">aa818a9f</a></strong>
<div>
<span>by Ben Gamari</span>
<i>at 2022-08-06T11:48:50-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>Add primop to list threads

A user came to #ghc yesterday wondering how best to check whether they
were leaking threads. We ended up using the eventlog but it seems to me
like it would be generally useful if Haskell programs could query their
own threads.
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/6d1700b6dca6defb8768c493a1059c4215749b53" style="color: #1068bf;">6d1700b6</a></strong>
<div>
<span>by Ben Gamari</span>
<i>at 2022-08-06T11:51:35-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>rts: Move thread labels into TSO

This eliminates the thread label HashTable and instead tracks this
information in the TSO, allowing us to use proper StgArrBytes arrays for
backing the label and greatly simplifying management of object lifetimes
when we expose them to the user with the coming `threadLabel#` primop.
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/1472044ba587b575372102bbb0c8cc4d85df74db" style="color: #1068bf;">1472044b</a></strong>
<div>
<span>by Ben Gamari</span>
<i>at 2022-08-06T11:54:52-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>Add a primop to query the label of a thread
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/43f2b271c12943ed7d5d5d5e387d41ed404eb7a8" style="color: #1068bf;">43f2b271</a></strong>
<div>
<span>by Ben Gamari</span>
<i>at 2022-08-06T11:55:14-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>base: Share finalization thread label

For efficiency's sake we float the thread label assigned to the
finalization thread to the top-level, ensuring that we only need to
encode the label once.
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/1d63b4fb4d0757614ace880e25ed2c94e51b679c" style="color: #1068bf;">1d63b4fb</a></strong>
<div>
<span>by Ben Gamari</span>
<i>at 2022-08-06T11:57:11-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>users-guide: Add release notes entry for thread introspection support
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/09bca1de6a336240f4aecfc7c43937dd811d5b22" style="color: #1068bf;">09bca1de</a></strong>
<div>
<span>by Ben Gamari</span>
<i>at 2022-08-07T01:19:35-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>hadrian: Fix binary distribution install attributes

Previously we would use plain `cp` to install various parts of the
binary distribution. However, `cp`'s behavior w.r.t. file attributes is
quite unclear; for this reason it is much better to rather use
`install`.

Fixes #21965.
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/2b8ea16d92a3bd3a74d30b78991a7d00e7038f58" style="color: #1068bf;">2b8ea16d</a></strong>
<div>
<span>by Ben Gamari</span>
<i>at 2022-08-07T01:19:35-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>hadrian: Fix installation of system-cxx-std-lib package conf
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/7b514848b8c9dfdd8455375e4e98c35a0d856749" style="color: #1068bf;">7b514848</a></strong>
<div>
<span>by Ben Gamari</span>
<i>at 2022-08-07T01:20:10-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>gitlab-ci: Bump Docker images

To give the ARMv7 job access to lld, fixing #21875.
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/afa584a327ce9aaf560c6ff09781c6e810c23a60" style="color: #1068bf;">afa584a3</a></strong>
<div>
<span>by Ben Gamari</span>
<i>at 2022-08-07T05:08:52-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>hadrian: Don't use mk/config.mk.in

Ultimately we want to drop mk/config.mk so here I extract the bits
needed by the Hadrian bindist installation logic into a Hadrian-specific
file. While doing this I fixed binary distribution installation, #21901.
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/b9bb45d7368ceeb874ded7e55e603327c103ce9f" style="color: #1068bf;">b9bb45d7</a></strong>
<div>
<span>by Ben Gamari</span>
<i>at 2022-08-07T05:08:52-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>hadrian: Fix naming of cross-compiler wrappers
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/78d04cfadfd728bb088b08b1e88905b43cc0360c" style="color: #1068bf;">78d04cfa</a></strong>
<div>
<span>by Ben Gamari</span>
<i>at 2022-08-07T11:44:58-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>hadrian: Extend xattr Darwin hack to cover /lib

As noted in #21506, it is now necessary to remove extended attributes
from `/lib` as well as `/bin` to avoid SIP issues on Darwin.

Fixes #21506.
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/20457d775885d6c3df020d204da9a7acfb3c2e5a" style="color: #1068bf;">20457d77</a></strong>
<div>
<span>by Andreas Klebinger</span>
<i>at 2022-08-08T14:42:26+02:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>NCG(x86): Compile add+shift as lea if possible.
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/742292e461e4040faecf3482349a4574a9184239" style="color: #1068bf;">742292e4</a></strong>
<div>
<span>by Andreas Klebinger</span>
<i>at 2022-08-08T16:46:37-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>dataToTag#: Skip runtime tag check if argument is infered tagged

This addresses one part of #21710.
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/1504a93eecfc9efb3e6d2bda492d811dc32b6122" style="color: #1068bf;">1504a93e</a></strong>
<div>
<span>by Cheng Shao</span>
<i>at 2022-08-08T16:47:14-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>rts: remove redundant stg_traceCcszh

This out-of-line primop has no Haskell wrapper and hasn't been used
anywhere in the tree. Furthermore, the code gets in the way of !7632, so
it should be garbage collected.
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/a52de3cbe63af21085d6237b7e540e569a9c0f2e" style="color: #1068bf;">a52de3cb</a></strong>
<div>
<span>by Andreas Klebinger</span>
<i>at 2022-08-08T16:47:50-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>Document a divergence from the report in parsing function lhss.

GHC is happy to parse `(f) x y = x + y` when it should be a parse error
based on the Haskell report. Seems harmless enough so we won't fix it
but it's documented now.

Fixes #19788
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/5765e13370634979eb6a0d9f67aa9afa797bee46" style="color: #1068bf;">5765e133</a></strong>
<div>
<span>by Ben Gamari</span>
<i>at 2022-08-08T16:48:25-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>gitlab-ci: Add release job for aarch64/debian 11
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/5b26f32412d503c9004fc0a2e6e9a2ab680d43f3" style="color: #1068bf;">5b26f324</a></strong>
<div>
<span>by Ben Gamari</span>
<i>at 2022-08-08T19:39:20-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>gitlab-ci: Introduce validation job for aarch64 cross-compilation

Begins to address #11958.
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/e866625cc731521546745f615092ab0fa163ad42" style="color: #1068bf;">e866625c</a></strong>
<div>
<span>by Ben Gamari</span>
<i>at 2022-08-08T19:39:20-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>Bump process submodule
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/ae707762335dabe2bb7e40639fd2ab2c7d3234fd" style="color: #1068bf;">ae707762</a></strong>
<div>
<span>by Ben Gamari</span>
<i>at 2022-08-08T19:39:20-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>gitlab-ci: Add basic support for cross-compiler testiing

Here we add a simple qemu-based test for cross-compilers.
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/50912d689b6c405f979fd786cf2858d04552fc29" style="color: #1068bf;">50912d68</a></strong>
<div>
<span>by Ben Gamari</span>
<i>at 2022-08-08T19:39:57-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>rts: Ensure that Array# card arrays are initialized

In #19143 I noticed that newArray# failed to initialize the card table
of newly-allocated arrays. However, embarrassingly, I then only fixed
the issue in newArrayArray# and, in so doing, introduced the potential
for an integer underflow on zero-length arrays (#21962).

Here I fix the issue in newArray#, this time ensuring that we do not
underflow in pathological cases.

Fixes #19143.
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/e5ceff56a6f11e4adc17a7cc05645b3e3a66ab97" style="color: #1068bf;">e5ceff56</a></strong>
<div>
<span>by Ben Gamari</span>
<i>at 2022-08-08T19:39:57-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>testsuite: Add test for #21962
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/c1c08bd829fb33a185f0a71f08babe5d7e6556fc" style="color: #1068bf;">c1c08bd8</a></strong>
<div>
<span>by Ben Gamari</span>
<i>at 2022-08-09T02:31:14-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>gitlab-ci: Don't use coreutils on Darwin

In general we want to ensure that the tested environment is as similar
as possible to the environment the user will use. In the case of Darwin,
this means we want to use the system's BSD command-line utilities, not
coreutils.

This would have caught #21974.
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/1c582f44e41f534a8506a76618f6cffe5d71ed42" style="color: #1068bf;">1c582f44</a></strong>
<div>
<span>by Ben Gamari</span>
<i>at 2022-08-09T02:31:14-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>hadrian: Fix bindist installation on Darwin

It turns out that `cp -P` on Darwin does not always copy a symlink as
a symlink. In order to get these semantics one must pass `-RP`. It's not
entirely clear whether this is valid under POSIX, but it is nevertheless
what Apple does.
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/681aa076259c05c626266cf516de7e7c5524eadb" style="color: #1068bf;">681aa076</a></strong>
<div>
<span>by Ben Gamari</span>
<i>at 2022-08-09T02:31:49-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>hadrian: Fix access mode of installed package registration files

Previously hadrian's bindist Makefile would modify package
registrations placed by `install` via a shell pipeline and `mv`.
However, the use of `mv` means that if umask is set then the user may
otherwise end up with package registrations which are inaccessible.
Fix this by ensuring that the mode is 0644.
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/e9dfd26a38182e9c284b7db16cb10fc889eedf9e" style="color: #1068bf;">e9dfd26a</a></strong>
<div>
<span>by Krzysztof Gogolewski</span>
<i>at 2022-08-09T02:32:24-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>Cleanups around pretty-printing

* Remove hack when printing OccNames. No longer needed since e3dcc0d5
* Remove unused `pprCmms` and `instance Outputable Instr`
* Simplify `pprCLabel` (no need to pass platform)
* Remove evil `Show`/`Eq` instances for `SDoc`. They were needed by
  ImmLit, but that can take just a String instead.
* Remove instance `Outputable CLabel` - proper output of labels
  needs a platform, and is done by the `OutputableP` instance
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/66d2e927842653fbc1cf2e6f997f443c78c2203b" style="color: #1068bf;">66d2e927</a></strong>
<div>
<span>by Ben Gamari</span>
<i>at 2022-08-09T13:46:48-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>rts/linker: Resolve iconv_* on FreeBSD

FreeBSD's libiconv includes an implementation of the
iconv_* functions in libc. Unfortunately these can
only be resolved using dlvsym, which is how the RTS linker
usually resolves such functions. To fix this we include an ad-hoc
special case for iconv_*.

Fixes #20354.
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/5d66a0ce39f47b7b9f6c732a18ac6e102a21ee6b" style="color: #1068bf;">5d66a0ce</a></strong>
<div>
<span>by Ben Gamari</span>
<i>at 2022-08-09T13:46:48-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>system-cxx-std-lib: Add support for FreeBSD libcxxrt
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/ea90e61dc3c6ba0433e008284dc6c3970ead98a7" style="color: #1068bf;">ea90e61d</a></strong>
<div>
<span>by Ben Gamari</span>
<i>at 2022-08-09T13:46:48-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>gitlab-ci: Bump to use freebsd13 runners
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/d71a20514546e0befe6e238d0658cbaad5a13996" style="color: #1068bf;">d71a2051</a></strong>
<div>
<span>by sheaf</span>
<i>at 2022-08-09T13:47:28-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>Fix size_up_alloc to account for UnliftedDatatypes

The size_up_alloc function mistakenly considered any type that isn't
lifted to not allocate anything, which is wrong. What we want instead
is to check the type isn't boxed. This accounts for (BoxedRep Unlifted).

Fixes #21939
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/76b52cf0c52ee05c20f7d1b80f5600eecab3c42a" style="color: #1068bf;">76b52cf0</a></strong>
<div>
<span>by Douglas Wilson</span>
<i>at 2022-08-10T06:01:53-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>testsuite: 21651 add test for closeFdWith + setNumCapabilities

This bug does not affect windows, which does not use the
base module GHC.Event.Thread.
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/7589ee7241d46b393979d98d4ded17a15ee974fb" style="color: #1068bf;">7589ee72</a></strong>
<div>
<span>by Douglas Wilson</span>
<i>at 2022-08-10T06:01:53-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>base: Fix races in IOManager (setNumCapabilities,closeFdWith)

Fix for #21651

Fixes three bugs:

- writes to eventManager should be atomic. It is accessed concurrently by ioManagerCapabilitiesChanged and closeFdWith.
- The race in closeFdWith described in the ticket.
- A race in getSystemEventManager where it accesses the 'IOArray' in
  'eventManager' before 'ioManagerCapabilitiesChanged' has written to
  'eventManager', causing an Array Index exception. The fix here is to
  'yield' and retry.
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/dc76439de605bb833d6e226b176879cb0d5262ce" style="color: #1068bf;">dc76439d</a></strong>
<div>
<span>by Trevis Elser</span>
<i>at 2022-08-10T06:02:28-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>Updates language extension documentation

Adding a 'Status' field with a few values:
- Deprecated
- Experimental
- InternalUseOnly
- Noting if included in 'GHC2021', 'Haskell2010' or 'Haskell98'

Those values are pulled from the existing descriptions or elsewhere in
the documentation.

While at it, include the :implied by: where appropriate, to provide
more detail.

Fixes #21475
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/823fe5b56450a7eefbf41ce8ece34095bf2217ee" style="color: #1068bf;">823fe5b5</a></strong>
<div>
<span>by Jens Petersen</span>
<i>at 2022-08-10T06:03:07-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>hadrian RunRest: add type signature for stageNumber

avoids warning seen on 9.4.1:

src/Settings/Builders/RunTest.hs:264:53: warning: [-Wtype-defaults]
    • Defaulting the following constraints to type ‘Integer’
        (Show a0)
          arising from a use of ‘show’
          at src/Settings/Builders/RunTest.hs:264:53-84
        (Num a0)
          arising from a use of ‘stageNumber’
          at src/Settings/Builders/RunTest.hs:264:59-83
    • In the second argument of ‘(++)’, namely
        ‘show (stageNumber (C.stage ctx))’
      In the second argument of ‘($)’, namely
        ‘"config.stage=" ++ show (stageNumber (C.stage ctx))’
      In the expression:
        arg $ "config.stage=" ++ show (stageNumber (C.stage ctx))
    |
264 |             , arg "-e", arg $ "config.stage="    ++ show (stageNumber (C.stage ctx))
    |                                                     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

compilation tested locally
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/f95bbdcae3e6710a92dd8244321677eef91890de" style="color: #1068bf;">f95bbdca</a></strong>
<div>
<span>by Sylvain Henry</span>
<i>at 2022-08-10T09:44:46-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>Add support for external static plugins (#20964)

This patch adds a new command-line flag:

  -fplugin-library=<file-path>;<unit-id>;<module>;<args>

used like this:

  -fplugin-library=path/to/plugin.so;package-123;Plugin.Module;["Argument","List"]

It allows a plugin to be loaded directly from a shared library. With
this approach, GHC doesn't compile anything for the plugin and doesn't
load any .hi file for the plugin and its dependencies. As such GHC
doesn't need to support two environments (one for plugins, one for
target code), which was the more ambitious approach tracked in #14335.

Fix #20964

Co-authored-by: Josh Meredith <joshmeredith2008@gmail.com>
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/5bc489cac104717f09be73f2b578719bcc1e3fcb" style="color: #1068bf;">5bc489ca</a></strong>
<div>
<span>by Ben Gamari</span>
<i>at 2022-08-10T09:45:22-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>gitlab-ci: Fix ARMv7 build

It appears that the CI refactoring carried out in
5ff690b8474c74e9c968ef31e568c1ad0fe719a1 failed to carry over some
critical configuration: setting the build/host/target platforms and
forcing use of a non-broken linker.
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/596db9a5f966643bcc9994d45f2f6ffb4037ad74" style="color: #1068bf;">596db9a5</a></strong>
<div>
<span>by Ben Gamari</span>
<i>at 2022-08-10T09:45:22-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>gitlab-ci: Run ARMv7 jobs when ~ARM label is used
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/7cabea7c9b10d2d15a4798be9f3130994393dd9c" style="color: #1068bf;">7cabea7c</a></strong>
<div>
<span>by Ben Gamari</span>
<i>at 2022-08-10T15:37:58-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>hadrian: Don't attempt to install documentation if doc/ doesn't exist

Previously we would attempt to install documentation even if the `doc`
directory doesn't exist (e.g. due to `--docs=none`). This would result
in the surprising side-effect of the entire contents of the bindist
being installed in the destination documentation directory. Fix this.

Fixes #21976.
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/67575f2004340564d6e52af055ed6fb43d3f9711" style="color: #1068bf;">67575f20</a></strong>
<div>
<span>by normalcoder</span>
<i>at 2022-08-10T15:38:34-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>ncg/aarch64: Don't use x18 register on AArch64/Darwin

Apple's ABI documentation [1] says: "The platforms reserve register x18.
Don’t use this register." While this wasn't problematic in previous
Darwin releases, macOS 13 appears to start zeroing this register
periodically. See #21964.

[1] https://developer.apple.com/documentation/xcode/writing-arm64-code-for-apple-platforms
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/45eb4cbe372eadb8331c6dbc84f14c681b1a8a9b" style="color: #1068bf;">45eb4cbe</a></strong>
<div>
<span>by Andreas Klebinger</span>
<i>at 2022-08-10T22:41:12-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>Note [Trimming auto-rules]: State that this improves compiler perf.
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/5c24b1b3a9d6a4c2f471fd7d8ec65141a8b46357" style="color: #1068bf;">5c24b1b3</a></strong>
<div>
<span>by Bodigrim</span>
<i>at 2022-08-10T22:41:50-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>Document that threadDelay / timeout are susceptible to overflows on 32-bit machines
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/ff67c79ee742024ca0ef41a9a7e540e1662d46bd" style="color: #1068bf;">ff67c79e</a></strong>
<div>
<span>by Alan Zimmerman</span>
<i>at 2022-08-11T16:19:57-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>EPA: DotFieldOcc does not have exact print annotations

For the code

    {-# LANGUAGE OverloadedRecordUpdate #-}

    operatorUpdate f = f{(+) = 1}

There are no exact print annotations for the parens around the +
symbol, nor does normal ppr print them.

This MR fixes that.

Closes #21805

Updates haddock submodule
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/dca43a04fb36e0ae0ed61455f215660eed2856a9" style="color: #1068bf;">dca43a04</a></strong>
<div>
<span>by Matthew Pickering</span>
<i>at 2022-08-11T16:20:33-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>Revert "gitlab-ci: Add release job for aarch64/debian 11"

This reverts commit 5765e13370634979eb6a0d9f67aa9afa797bee46.

The job was not tested before being merged and fails CI
(https://gitlab.haskell.org/ghc/ghc/-/jobs/1139392)

Ticket #22005
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/ffc9116e6223c0a90a51c05ff4b471b7f5af1b55" style="color: #1068bf;">ffc9116e</a></strong>
<div>
<span>by Eric Lindblad</span>
<i>at 2022-08-16T09:01:26-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>typo</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/cd6f5bfd0cc2bcf74de1d9edb43fe4b338b4c4e3" style="color: #1068bf;">cd6f5bfd</a></strong>
<div>
<span>by Ben Gamari</span>
<i>at 2022-08-16T09:02:02-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>CmmToLlvm: Don't aliasify builtin LLVM variables

Our aliasification logic would previously turn builtin LLVM variables
into aliases, which apparently confuses LLVM. This manifested in
initializers failing to be emitted, resulting in many profiling failures
with the LLVM backend.

Fixes #22019.
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/dc7da356daa78fb680f000736cd690f09fa1d856" style="color: #1068bf;">dc7da356</a></strong>
<div>
<span>by Bryan Richter</span>
<i>at 2022-08-16T09:02:38-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>run_ci: remove monoidal-containers

Fixes #21492

MonoidalMap is inlined and used to implement Variables, as before.

The top-level value "jobs" is reimplemented as a regular Map, since it
doesn't use the monoidal union anyway.
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/641105441d3ed7087c5d59187c8c94bc7bc08061" style="color: #1068bf;">64110544</a></strong>
<div>
<span>by Cheng Shao</span>
<i>at 2022-08-16T09:03:15-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>CmmToAsm/AArch64: correct a typo
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/f6a5524abaf744055e9bec40504c7eae28700537" style="color: #1068bf;">f6a5524a</a></strong>
<div>
<span>by Andreas Klebinger</span>
<i>at 2022-08-16T14:34:11-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>Fix #21979 - compact-share failing with -O

I don't have good reason to believe the optimization level should affect
if sharing works or not here. So limit the test to the normal way.
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/68154a9d3b4f5e84fa50146adb2c2019ec481456" style="color: #1068bf;">68154a9d</a></strong>
<div>
<span>by Ben Gamari</span>
<i>at 2022-08-16T14:34:47-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>users-guide: Fix reference to dead llvm-version substitution

Fixes #22052.
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/28c60d266c176f6e2c5eac9f3231bfc5fd0f7b23" style="color: #1068bf;">28c60d26</a></strong>
<div>
<span>by Ben Gamari</span>
<i>at 2022-08-16T14:34:47-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>users-guide: Fix incorrect reference to `:extension: role
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/71102c8f72e0c5711f2410e449af8cf0b2baa063" style="color: #1068bf;">71102c8f</a></strong>
<div>
<span>by Ben Gamari</span>
<i>at 2022-08-16T14:34:47-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>users-guide: Add :ghc-flag: reference
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/385f420b2f1bd7d11126e28c4dc21ef0dbe741de" style="color: #1068bf;">385f420b</a></strong>
<div>
<span>by Ben Gamari</span>
<i>at 2022-08-16T14:34:47-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>hadrian: Place manpage in docroot

This relocates it from docs/ to doc/
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/84598f2ec63cbb145243c101af8aeb436f653ed3" style="color: #1068bf;">84598f2e</a></strong>
<div>
<span>by Ben Gamari</span>
<i>at 2022-08-16T14:34:47-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>Bump haddock submodule

Includes merge of `main` into `ghc-head` as well as some Haddock users
guide fixes.
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/59ce787ca83a311cc546790dea977cd88aa7883f" style="color: #1068bf;">59ce787c</a></strong>
<div>
<span>by Ben Gamari</span>
<i>at 2022-08-16T14:34:47-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>base: Add changelog entries from ghc-9.2

Closes #21922.
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/a14e6ae3f880ad2c9645a6b99a551734eda802c0" style="color: #1068bf;">a14e6ae3</a></strong>
<div>
<span>by Ben Gamari</span>
<i>at 2022-08-16T14:34:47-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>relnotes: Add "included libraries" section

As noted in #21988, some users rely on this.
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/a4212edccceaec475d4aca240cbfe9db98b77d33" style="color: #1068bf;">a4212edc</a></strong>
<div>
<span>by Ben Gamari</span>
<i>at 2022-08-16T14:34:47-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>users-guide: Rephrase the rewrite rule documentation

Previously the wording was a tad unclear. Fix this.

Closes #21114.
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/3e493dfd4db4b61ffc3f1faf7e38663118473d99" style="color: #1068bf;">3e493dfd</a></strong>
<div>
<span>by Peter Becich</span>
<i>at 2022-08-17T08:43:21+01:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>Implement Response File support for HPC

This is an improvement to HPC authored by Richard Wallace
(https://github.com/purefn) and myself. I have received permission from
him to attempt to upstream it. This improvement was originally
implemented as a patch to HPC via input-output-hk/haskell.nix:
https://github.com/input-output-hk/haskell.nix/pull/1464

Paraphrasing Richard, HPC currently requires all inputs as command line arguments.
With large projects this can result in an argument list too long error.
I have only seen this error in Nix, but I assume it can occur is a plain Unix environment.

This MR adds the standard response file syntax support to HPC. For
example you can now pass a file to the command line which contains the
arguments.

```
hpc @response_file_1 @response_file_2 ...

The contents of a Response File must have this format:
COMMAND ...

example:
report my_library.tix --include=ModuleA --include=ModuleB
```

Updates hpc submodule

Co-authored-by:  Richard Wallace <rwallace@thewallacepack.net>

Fixes #22050
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/436867d6b07c69170e8e51283ac57ed3eab52ae4" style="color: #1068bf;">436867d6</a></strong>
<div>
<span>by Matthew Pickering</span>
<i>at 2022-08-18T09:24:08-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>ghc-heap: Fix decoding of TSO closures

An extra field was added to the TSO structure in 6d1700b6 but the
decoding logic in ghc-heap was not updated for this new field.

Fixes #22046
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/a740a4c56416c7c1bc914a7a9207207e17833573" style="color: #1068bf;">a740a4c5</a></strong>
<div>
<span>by Matthew Pickering</span>
<i>at 2022-08-18T09:24:44-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>driver: Honour -x option

The -x option is used to manually specify which phase a file should be
started to be compiled from (even if it lacks the correct extension). I
just failed to implement this when refactoring the driver.

In particular Cabal calls GHC with `-E -cpp -x hs Foo.cpphs` to
preprocess source files using GHC.

I added a test to exercise this case.

Fixes #22044
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/e293029db0d60852908feaf2312794849194b08c" style="color: #1068bf;">e293029d</a></strong>
<div>
<span>by Simon Peyton Jones</span>
<i>at 2022-08-18T09:25:19-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>Be more careful in chooseInferredQuantifiers

This fixes #22065. We were failing to retain a quantifier that
was mentioned in the kind of another retained quantifier.

Easy to fix.
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/714c936fa31d83cb46b52d1dd920081474793a71" style="color: #1068bf;">714c936f</a></strong>
<div>
<span>by Bryan Richter</span>
<i>at 2022-08-18T18:37:21-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>testsuite: Add test for #21583
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/989b844d7598fd71ffd76e00d8d1f5207d58fd61" style="color: #1068bf;">989b844d</a></strong>
<div>
<span>by Ben Gamari</span>
<i>at 2022-08-18T18:37:57-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>compiler: Drop --build-id=none hack

Since 2011 the object-joining implementation has had a hack to pass
`--build-id=none` to `ld` when supported, seemingly to work around a
linker bug. This hack is now unnecessary and may break downstream users
who expect objects to have valid build-ids. Remove it.

Closes #22060.
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/519c712ea570210f7a3a1f1449bc26b985eb7db2" style="color: #1068bf;">519c712e</a></strong>
<div>
<span>by Matthew Pickering</span>
<i>at 2022-08-19T00:09:11-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>Make ru_fn field strict to avoid retaining Ids

It's better to perform this projection from Id to Name strictly so we
don't retain an old Id (hence IdInfo, hence Unfolding, hence everything
etc)
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/7dda04b00407c083949363b653538510a1355e12" style="color: #1068bf;">7dda04b0</a></strong>
<div>
<span>by Matthew Pickering</span>
<i>at 2022-08-19T00:09:11-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>Force `getOccFS bndr` to avoid retaining reference to Bndr.

This is another symptom of #19619
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/4303acba89b26cc3ae05527d701cba7d84edafcb" style="color: #1068bf;">4303acba</a></strong>
<div>
<span>by Matthew Pickering</span>
<i>at 2022-08-19T00:09:11-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>Force unfoldings when they are cleaned-up in Tidy and CorePrep

If these thunks are not forced then the entire unfolding for the binding
is live throughout the whole of CodeGen despite the fact it should have
been discarded.

Fixes #22071
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/2361b3bc08811b0d2fb8f8fc5635b7c2fec157c6" style="color: #1068bf;">2361b3bc</a></strong>
<div>
<span>by Matthew Pickering</span>
<i>at 2022-08-19T00:09:47-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>haddock docs: Fix links from identifiers to dependent packages

When implementing the base_url changes I made the pretty bad mistake of
zipping together two lists which were in different orders. The simpler
thing to do is just modify `haddockDependencies` to also return the
package identifier so that everything stays in sync.

Fixes #22001
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/9a7e2ea1684c3a3ac91e4cdbb07b9d217f58dd4c" style="color: #1068bf;">9a7e2ea1</a></strong>
<div>
<span>by Matthew Pickering</span>
<i>at 2022-08-19T00:10:23-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>Revert "Refactor SpecConstr to use treat bindings uniformly"

This reverts commit 415468fef8a3e9181b7eca86de0e05c0cce31729.

This refactoring introduced quite a severe residency regression (900MB
live from 650MB live when compiling mmark), see #21993 for a reproducer
and more discussion.

Ticket #21993
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/9789e8454ad9f315169063b344a56c4216c12711" style="color: #1068bf;">9789e845</a></strong>
<div>
<span>by Zachary Wood</span>
<i>at 2022-08-19T14:17:28-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>tc: warn about lazy annotations on unlifted arguments (fixes #21951)
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/e5567289c576a76f62bd78bd823a824c7ca83de6" style="color: #1068bf;">e5567289</a></strong>
<div>
<span>by Andreas Klebinger</span>
<i>at 2022-08-19T14:18:03-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>Fix #22048 where we failed to drop rules for -fomit-interface-pragmas.

Now we also filter the local rules (again) which fixes the issue.
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/51ffd00906d1c75dc72c71ba4216b480996c8ce2" style="color: #1068bf;">51ffd009</a></strong>
<div>
<span>by Swann Moreau</span>
<i>at 2022-08-19T18:29:21-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>Print constraints in quotes (#21167)

This patch improves the uniformity of error message formatting by
printing constraints in quotes, as we do for types.

Fix #21167
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/ab3e0f5a02f6a1b63407e08bb97a228a76c27abd" style="color: #1068bf;">ab3e0f5a</a></strong>
<div>
<span>by Sasha Bogicevic</span>
<i>at 2022-08-19T18:29:57-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>19217 Implicitly quantify type variables in :kind command
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/9939e95fb7b808b68aca00dfabbb99079927f482" style="color: #1068bf;">9939e95f</a></strong>
<div>
<span>by MorrowM</span>
<i>at 2022-08-21T16:51:38-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>Recognize file-header pragmas in GHCi (#21507)
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/fb7c2d99f7df880b00b0d31ee7436c6d8eb3ba15" style="color: #1068bf;">fb7c2d99</a></strong>
<div>
<span>by Matthew Pickering</span>
<i>at 2022-08-21T16:52:13-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>hadrian: Fix bootstrapping with ghc-9.4

The error was that we were trying to link together

    containers from boot package library (which depends template-haskell in boot package library)
    template-haskell from in-tree package database

So the fix is to build containers in stage0 (and link against template-haskell built in stage0).

Fixes #21981
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/b946232c328ed88fc34a7c83a335b2f5a4f777ed" style="color: #1068bf;">b946232c</a></strong>
<div>
<span>by Mario Blažević</span>
<i>at 2022-08-22T22:06:21-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>Added pprType with precedence argument, as a prerequisite to fix issues #21723 and #21942.

* refines the precedence levels, adding `qualPrec` and `funPrec` to better control parenthesization
* `pprParendType`, `pprFunArgType`, and `instance Ppr Type` all just call `pprType` with proper precedence
* `ParensT` constructor is now always printed parenthesized
* adds the precedence argument to `pprTyApp` as well, as it needs to keep track and pass it down
* using `>=` instead of former `>` to match the Core type printing logic
* some test outputs have changed, losing extraneous parentheses
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/fe4ff0f7cd50361cade3dd4bef15065dff075bfc" style="color: #1068bf;">fe4ff0f7</a></strong>
<div>
<span>by Mario Blažević</span>
<i>at 2022-08-22T22:06:21-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>Fix and test for issue #21723
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/33968354176dcf68d4dbd717d2a0d77474edc302" style="color: #1068bf;">33968354</a></strong>
<div>
<span>by Mario Blažević</span>
<i>at 2022-08-22T22:06:21-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>Test for issue #21942
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/c96552517acc55ba307add250d499d97dc203677" style="color: #1068bf;">c9655251</a></strong>
<div>
<span>by Mario Blažević</span>
<i>at 2022-08-22T22:06:21-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>Updated the changelog
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/80102356468d87b683d5360a291c44b057a52ade" style="color: #1068bf;">80102356</a></strong>
<div>
<span>by Ben Gamari</span>
<i>at 2022-08-22T22:06:57-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>hadrian: Don't duplicate binaries on installation

Previously we used `install` on symbolic links, which ended up
copying the target file rather than installing a symbolic link.

Fixes #22062.
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/b929063ec5473fc36fe3976ff0eb8064a2d2fc3d" style="color: #1068bf;">b929063e</a></strong>
<div>
<span>by M Farkas-Dyck</span>
<i>at 2022-08-24T02:37:01-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>Unbreak Haddock comments in `GHC.Core.Opt.WorkWrap.Utils`.

Closes #22092.
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/112e4f9c9c299b460e37a60d8f8d8693aa6ab06a" style="color: #1068bf;">112e4f9c</a></strong>
<div>
<span>by Cheng Shao</span>
<i>at 2022-08-24T02:37:38-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>driver: don't actually merge objects when ar -L works
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/a9f0e68ede36ad571d32e66a8e49e8c9f3b6a92b" style="color: #1068bf;">a9f0e68e</a></strong>
<div>
<span>by Ben Gamari</span>
<i>at 2022-08-24T02:38:13-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>rts: Consistently use MiB in stats output

Previously we would say `MB` even where we
meant `MiB`.</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/a90298cc7291677fddd9e374e222676306265c17" style="color: #1068bf;">a90298cc</a></strong>
<div>
<span>by Simon Peyton Jones</span>
<i>at 2022-08-25T08:38:16+01:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>Fix arityType: -fpedantic-bottoms, join points, etc

This MR fixes #21694, #21755.  It also makes sure that #21948 and
fix to #21694.

* For #21694 the underlying problem was that we were calling arityType
  on an expression that had free join points.  This is a Bad Bad Idea.
  See Note [No free join points in arityType].

* To make "no free join points in arityType" work out I had to avoid
  trying to use eta-expansion for runRW#. This entailed a few changes
  in the Simplifier's treatment of runRW#.  See
  GHC.Core.Opt.Simplify.Iteration Note [No eta-expansion in runRW#]

* I also made andArityType work correctly with -fpedantic-bottoms;
  see Note [Combining case branches: andWithTail].

* Rewrote Note [Combining case branches: optimistic one-shot-ness]

* arityType previously treated join points differently to other
  let-bindings. This patch makes them unform; arityType analyses
  the RHS of all bindings to get its ArityType, and extends am_sigs.

  I realised that, now we have am_sigs giving the ArityType for
  let-bound Ids, we don't need the (pre-dating) special code in
  arityType for join points. But instead we need to extend the env for
  Rec bindings, which weren't doing before.  More uniform now.  See
  Note [arityType for let-bindings].

  This meant we could get rid of ae_joins, and in fact get rid of
  EtaExpandArity altogether.  Simpler.

* And finally, it was the strange treatment of join-point Ids in
  arityType (involving a fake ABot type) that led to a serious bug:
  #21755.  Fixed by this refactoring, which treats them uniformly;
  but without breaking #18328.

  In fact, the arity for recursive join bindings is pretty tricky;
  see the long Note [Arity for recursive join bindings]
  in GHC.Core.Opt.Simplify.Utils.  That led to more refactoring,
  including deciding that an Id could have an Arity that is bigger
  than its JoinArity; see Note [Invariants on join points], item
  2(b) in GHC.Core

* Make sure that the "demand threshold" for join points in DmdAnal
  is no bigger than the join-arity.  In GHC.Core.Opt.DmdAnal see
  Note [Demand signatures are computed for a threshold arity based on idArity]

* I moved GHC.Core.Utils.exprIsDeadEnd into GHC.Core.Opt.Arity,
  where it more properly belongs.

* Remove an old, redundant hack in FloatOut.  The old Note was
  Note [Bottoming floats: eta expansion] in GHC.Core.Opt.SetLevels.

Compile time improves very slightly on average:

Metrics: compile_time/bytes allocated
---------------------------------------------------------------------------------------
  T18223(normal) ghc/alloc    725,808,720    747,839,216  +3.0%  BAD
  T6048(optasm)  ghc/alloc    105,006,104    101,599,472  -3.2% GOOD
  geo. mean                                          -0.2%
  minimum                                            -3.2%
  maximum                                            +3.0%

For some reason Windows was better

   T10421(normal) ghc/alloc    125,888,360    124,129,168  -1.4% GOOD
   T18140(normal) ghc/alloc     85,974,520     83,884,224  -2.4% GOOD
  T18698b(normal) ghc/alloc    236,764,568    234,077,288  -1.1% GOOD
   T18923(normal) ghc/alloc     75,660,528     73,994,512  -2.2% GOOD
    T6048(optasm) ghc/alloc    112,232,512    108,182,520  -3.6% GOOD
  geo. mean                                          -0.6%

I had a quick look at T18223 but it is knee deep in coercions and
the size of everything looks similar before and after.  I decided
to accept that 3% increase in exchange for goodness elsewhere.

Metric Decrease:
    T10421
    T18140
    T18698b
    T18923
    T6048

Metric Increase:
    T18223
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/909edcfccae6664702384f83b1b5840eb3dc0a10" style="color: #1068bf;">909edcfc</a></strong>
<div>
<span>by Ben Gamari</span>
<i>at 2022-08-25T10:03:34-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>upload_ghc_libs: Add means of passing Hackage credentials
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/28402eed1bd0ec27d1dd5b663304a741de0ce2c3" style="color: #1068bf;">28402eed</a></strong>
<div>
<span>by M Farkas-Dyck</span>
<i>at 2022-08-25T10:04:17-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>Scrub some partiality in `CommonBlockElim`.
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/54affbfa2d3bb550d0a991518d6e7f9a4e51e91f" style="color: #1068bf;">54affbfa</a></strong>
<div>
<span>by Ben Gamari</span>
<i>at 2022-08-25T20:05:31-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>hadrian: Fix whitespace

Previously this region of Settings.Packages was incorrectly indented.
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/c4bba0f0a158b8bc5ea7e715215b63a902ae4b1c" style="color: #1068bf;">c4bba0f0</a></strong>
<div>
<span>by Ben Gamari</span>
<i>at 2022-08-25T20:05:31-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>validate: Drop --legacy flag

In preparation for removal of the legacy `make`-based build system.
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/822b0302f3406bb5e916d72c36566322ba900e76" style="color: #1068bf;">822b0302</a></strong>
<div>
<span>by Ben Gamari</span>
<i>at 2022-08-25T20:05:31-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>gitlab-ci: Drop make build validation jobs

In preparation for removal of the `make`-based build system
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/6fd9b0a1c6b076ef1977db1a2ce8b9505b9a3254" style="color: #1068bf;">6fd9b0a1</a></strong>
<div>
<span>by Ben Gamari</span>
<i>at 2022-08-25T20:05:31-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>Drop make build system

Here we at long last remove the `make`-based build system, it having
been replaced with the Shake-based Hadrian build system. Users are
encouraged to refer to the documentation in `hadrian/doc` and this [1]
blog post for details on using Hadrian.

Closes #17527.

[1] https://www.haskell.org/ghc/blog/20220805-make-to-hadrian.html
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/dbb004b0661e5cd34918d8efa1f66ef6cd22ed0a" style="color: #1068bf;">dbb004b0</a></strong>
<div>
<span>by Ben Gamari</span>
<i>at 2022-08-25T20:05:31-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>Remove testsuite/tests/perf/haddock/.gitignore

As noted in #16802, this is no longer needed.

Closes #16802.
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/fe9d824d87d3caa28f16b06602d62ba59eb3b44e" style="color: #1068bf;">fe9d824d</a></strong>
<div>
<span>by Ben Gamari</span>
<i>at 2022-08-25T20:05:31-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>Drop hc-build script

This has not worked for many, many years and relied on the now-removed
`make`-based build system.
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/659502bc4f78ccba1b35d06eeaa934f2614f1706" style="color: #1068bf;">659502bc</a></strong>
<div>
<span>by Ben Gamari</span>
<i>at 2022-08-25T20:05:31-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>Drop mkdirhier

This is only used by nofib's dead `dist` target
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/4a426924578c1febe8a5d34c7a265223ba8031df" style="color: #1068bf;">4a426924</a></strong>
<div>
<span>by Ben Gamari</span>
<i>at 2022-08-25T20:05:31-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>Drop mk/{build,install,config}.mk.in
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/46924b75c78c2fcb92cba91796bc22986c796ed3" style="color: #1068bf;">46924b75</a></strong>
<div>
<span>by Ben Gamari</span>
<i>at 2022-08-25T20:05:31-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>compiler: Drop comment references to make
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/d387f687930e4d44c1ef569b4ec8091cb8b92765" style="color: #1068bf;">d387f687</a></strong>
<div>
<span>by Harry Garrood</span>
<i>at 2022-08-25T20:06:10-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>Add inits1 and tails1 to Data.List.NonEmpty

See https://github.com/haskell/core-libraries-committee/issues/67
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/8603c92113c49557f8632675a01f3b3874b819d1" style="color: #1068bf;">8603c921</a></strong>
<div>
<span>by Harry Garrood</span>
<i>at 2022-08-25T20:06:10-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>Add since annotations and changelog entries
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/6b47aa1cc87426db4fe7d805af69894de05780ff" style="color: #1068bf;">6b47aa1c</a></strong>
<div>
<span>by Krzysztof Gogolewski</span>
<i>at 2022-08-25T20:06:46-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>Fix redundant import

This fixes a build error on x86_64-linux-alpine3_12-validate.
See the function 'loadExternalPlugins' defined in this file.
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/4786acf758ef064d3b79593774d1672e294b0afb" style="color: #1068bf;">4786acf7</a></strong>
<div>
<span>by sheaf</span>
<i>at 2022-08-26T15:05:23-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>Pmc: consider any 2 dicts of the same type equal

This patch massages the keys used in the `TmOracle` `CoreMap` to ensure
that dictionaries of coherent classes give the same key.
That is, whenever we have an expression we want to insert or lookup in
the `TmOracle` `CoreMap`, we first replace any dictionary
`$dict_abcd :: ct` with a value of the form `error @ct`.

This allows us to common-up view pattern functions with required
constraints whose arguments differed only in the uniques of the
dictionaries they were provided, thus fixing #21662.

This is a rather ad-hoc change to the keys used in the
`TmOracle` `CoreMap`. In the long run, we would probably want to use
a different representation for the keys instead of simply using
`CoreExpr` as-is. This more ambitious plan is outlined in #19272.

Fixes #21662
Updates unix submodule
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/f5e0f086a43c4e830f3fec343917daf3cc24b73a" style="color: #1068bf;">f5e0f086</a></strong>
<div>
<span>by Krzysztof Gogolewski</span>
<i>at 2022-08-26T15:06:01-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>Remove label style from printing context

Previously, the SDocContext used for code generation contained
information whether the labels should use Asm or C style.
However, at every individual call site, this is known statically.
This removes the parameter to 'PprCode' and replaces every 'pdoc'
used to print a label in code style with 'pprCLabel' or 'pprAsmLabel'.
The OutputableP instance is now used only for dumps.

The output of T15155 changes, it now uses the Asm style
(which is faithful to what actually happens).
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/1007829bfb18708dda77b4eb6106fce9cb05f908" style="color: #1068bf;">1007829b</a></strong>
<div>
<span>by Cheng Shao</span>
<i>at 2022-08-26T15:06:40-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>boot: cleanup legacy args

Cleanup legacy boot script args, following removal of the legacy make
build system.
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/95fe09da09b386008fd730abc5374f3521dd339b" style="color: #1068bf;">95fe09da</a></strong>
<div>
<span>by Simon Peyton Jones</span>
<i>at 2022-08-27T00:29:02-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>Improve SpecConstr for evals

As #21763 showed, we were over-specialising in some cases, when
the function involved was doing a simple 'eval', but not taking
the value apart, or branching on it.

This MR fixes the problem.  See Note [Do not specialise evals].

Nofib barely budges, except that spectral/cichelli allocates about
3% less.

Compiler bytes-allocated improves a bit
   geo. mean                                          -0.1%
   minimum                                            -0.5%
   maximum                                            +0.0%

The -0.5% is on T11303b, for what it's worth.
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/565a8ec8fb29062827edc6999ac8dc72494ddd07" style="color: #1068bf;">565a8ec8</a></strong>
<div>
<span>by Matthew Pickering</span>
<i>at 2022-08-27T00:29:39-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>Revert "Revert "Refactor SpecConstr to use treat bindings uniformly""

This reverts commit 851d8dd89a7955864b66a3da8b25f1dd88a503f8.

This commit was originally reverted due to an increase in space usage.
This was diagnosed as because the SCE increased in size and that was
being retained by another leak. See #22102
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/82ce1654567b24fbbd611ab20b5188291fd3f830" style="color: #1068bf;">82ce1654</a></strong>
<div>
<span>by Matthew Pickering</span>
<i>at 2022-08-27T00:29:39-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>Avoid retaining bindings via ModGuts held on the stack

It's better to overwrite the bindings fields of the ModGuts before
starting an iteration as then all the old bindings can be collected as
soon as the simplifier has processed them. Otherwise we end up with the
old bindings being alive until right at the end of the simplifier pass
as the mg_binds field is only modified right at the end.
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/64779dcd734a69ab38fba1e7542896c168d7bbce" style="color: #1068bf;">64779dcd</a></strong>
<div>
<span>by Matthew Pickering</span>
<i>at 2022-08-27T00:29:39-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>Force imposs_deflt_cons in filterAlts

This fixes a pretty serious space leak as the forced thunk would retain
`Alt b` values which would then contain reference to a lot of old
bindings and other simplifier gunk.

The OtherCon unfolding was not forced on subsequent simplifier runs so
more and more old stuff would be retained until the end of
simplification.

Fixing this has a drastic effect on maximum residency for the mmark
package which goes from

```
  45,005,401,056 bytes allocated in the heap
  17,227,721,856 bytes copied during GC
     818,281,720 bytes maximum residency (33 sample(s))
       9,659,144 bytes maximum slop
            2245 MiB total memory in use (0 MB lost due to fragmentation)
```

to

```
  45,039,453,304 bytes allocated in the heap
  13,128,181,400 bytes copied during GC
     331,546,608 bytes maximum residency (40 sample(s))
       7,471,120 bytes maximum slop
             916 MiB total memory in use (0 MB lost due to fragmentation)
```

See #21993 for some more discussion.
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/a3b23a3318a556beba62a3637600692639575c44" style="color: #1068bf;">a3b23a33</a></strong>
<div>
<span>by Matthew Pickering</span>
<i>at 2022-08-27T00:29:39-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>Use Solo to avoid retaining the SCE but to avoid performing the substitution

The use of Solo here allows us to force the selection into the SCE to obtain
the Subst but without forcing the substitution to be applied. The resulting thunk
is placed into a lazy field which is rarely forced, so forcing it regresses
peformance.
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/161a6f1fd62e797e978e7808a5f567fefa123f16" style="color: #1068bf;">161a6f1f</a></strong>
<div>
<span>by Simon Peyton Jones</span>
<i>at 2022-08-27T00:30:14-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>Fix a nasty loop in Tidy

As the remarkably-simple #22112 showed, we were making a black hole
in the unfolding of a self-recursive binding.  Boo!

It's a bit tricky.  Documented in GHC.Iface.Tidy,
   Note [tidyTopUnfolding: avoiding black holes]
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/68e6786f3d1bde5d044a649462cdf2b6034a2df8" style="color: #1068bf;">68e6786f</a></strong>
<div>
<span>by Giles Anderson</span>
<i>at 2022-08-29T00:01:35+02:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>Use TcRnDiagnostic in GHC.Tc.TyCl.Class (#20117)

The following `TcRnDiagnostic` messages have been introduced:

TcRnIllegalHsigDefaultMethods
TcRnBadGenericMethod
TcRnWarningMinimalDefIncomplete
TcRnDefaultMethodForPragmaLacksBinding
TcRnIgnoreSpecialisePragmaOnDefMethod
TcRnBadMethodErr
TcRnNoExplicitAssocTypeOrDefaultDeclaration
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/cbe51ac5e0bbe2667b6c7204ae62a534a9bc7c95" style="color: #1068bf;">cbe51ac5</a></strong>
<div>
<span>by Simon Peyton Jones</span>
<i>at 2022-08-29T04:18:57-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>Fix a bug in anyInRnEnvR

This bug was a subtle error in anyInRnEnvR, introduced by

    commit d4d3fe6e02c0eb2117dbbc9df72ae394edf50f06
    Author: Andreas Klebinger <klebinger.andreas@gmx.at>
    Date:   Sat Jul 9 01:19:52 2022 +0200

    Rule matching: Don't compute the FVs if we don't look at them.

The net result was #22028, where a rewrite rule would wrongly
match on a lambda.

The fix to that function is easy.
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/0154bc80b3648af15ef431cf0cf99e3cbbd881f6" style="color: #1068bf;">0154bc80</a></strong>
<div>
<span>by sheaf</span>
<i>at 2022-08-30T06:05:41-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>Various Hadrian bootstrapping fixes

  - Don't always produce a distribution archive (#21629)
  - Use correct executable names for ghc-pkg and hsc2hs on windows
    (we were missing the .exe file extension)
  - Fix a bug where we weren't using the right archive format on Windows
    when unpacking the bootstrap sources.

Fixes #21629
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/451b1d90cf14e8fb3f12b1b65d8027717093556a" style="color: #1068bf;">451b1d90</a></strong>
<div>
<span>by Matthew Pickering</span>
<i>at 2022-08-30T06:06:16-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>ci: Attempt using normal submodule cloning strategy

We do not use any recursively cloned submodules, and this protects us
from flaky upstream remotes.

Fixes #22121
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/9d5ad7c4bb1bd2b450fa13afcf95e3370c53232d" style="color: #1068bf;">9d5ad7c4</a></strong>
<div>
<span>by Pi Delport</span>
<i>at 2022-08-30T22:40:46+00:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>Fix typo in Any docs: stray "--"
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/3a00263248e6176e06f03b7390fade48a9adb373" style="color: #1068bf;">3a002632</a></strong>
<div>
<span>by Pi Delport</span>
<i>at 2022-08-30T22:40:46+00:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>Fix typo in Any docs: syntatic -> syntactic
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/7f490b1333c17ed27b213d6af8c7275aa9b3de63" style="color: #1068bf;">7f490b13</a></strong>
<div>
<span>by Simon Peyton Jones</span>
<i>at 2022-08-31T03:53:54-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>Add a missing trimArityType

This buglet was exposed by #22114, a consequence of my earlier
refactoring of arity for join points.
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/e6fc820f0bfa75ffa1bdb417530158d1b090157c" style="color: #1068bf;">e6fc820f</a></strong>
<div>
<span>by Ben Gamari</span>
<i>at 2022-08-31T13:16:01+01:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>Bump binary submodule to 0.8.9.1
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/4c1e7b22a25f427b489552275aaa222c71e6ef43" style="color: #1068bf;">4c1e7b22</a></strong>
<div>
<span>by Ben Gamari</span>
<i>at 2022-08-31T13:16:01+01:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>Bump stm submodule to 2.5.1.0
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/837472b4895232c9ef06949b0c2af4dbac96744c" style="color: #1068bf;">837472b4</a></strong>
<div>
<span>by Ben Gamari</span>
<i>at 2022-08-31T13:16:01+01:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>users-guide: Document system-cxx-std-lib
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/f7a9947a93d021e6e1f0a04adf787db4d66b1ae5" style="color: #1068bf;">f7a9947a</a></strong>
<div>
<span>by Douglas Wilson</span>
<i>at 2022-08-31T13:16:01+01:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>Update submodule containers to 0.6.6
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/4ab1c2ca4b6d43a6f70430225b00a61ce9fe1c39" style="color: #1068bf;">4ab1c2ca</a></strong>
<div>
<span>by Douglas Wilson</span>
<i>at 2022-08-31T13:16:02+01:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>Update submodule process to 1.6.15.0
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/1309ea1e20712c49977ce69d6e1f6081572185cb" style="color: #1068bf;">1309ea1e</a></strong>
<div>
<span>by Ben Gamari</span>
<i>at 2022-08-31T13:16:02+01:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>Bump directory submodule to 1.3.7.1
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/7962a33a6b1fb941f76a4cb9a9ad1ec237e9cb33" style="color: #1068bf;">7962a33a</a></strong>
<div>
<span>by Douglas Wilson</span>
<i>at 2022-08-31T13:16:02+01:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>Bump text submodule to 2.0.1
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/fd8d80c351a4d4782b879f40ef6dda21894368b9" style="color: #1068bf;">fd8d80c3</a></strong>
<div>
<span>by Ben Gamari</span>
<i>at 2022-08-31T13:26:52+01:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>Bump deepseq submodule to 1.4.8.0
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/a9baafacc0c7a5440139d475b854f40325e478cb" style="color: #1068bf;">a9baafac</a></strong>
<div>
<span>by Ben Gamari</span>
<i>at 2022-08-31T13:26:52+01:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>Add dates to base, ghc-prim changelogs
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/2cee323cb05bff6216f54d7a6cccc408f34366cc" style="color: #1068bf;">2cee323c</a></strong>
<div>
<span>by Ben Gamari</span>
<i>at 2022-08-31T13:26:52+01:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>Update autoconf scripts

Scripts taken from autoconf 02ba26b218d3d3db6c56e014655faf463cefa983
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/e62705ff1976074ec2ce08eaa2af222a00889c65" style="color: #1068bf;">e62705ff</a></strong>
<div>
<span>by Ben Gamari</span>
<i>at 2022-08-31T13:26:53+01:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>Bump bytestring submodule to 0.11.3.1
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/f7b4dcbd7d76101e7e6eee728bde2b5a5c873c02" style="color: #1068bf;">f7b4dcbd</a></strong>
<div>
<span>by Douglas Wilson</span>
<i>at 2022-08-31T13:26:53+01:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>Update submodule Cabal to tag Cabal-v3.8.1.0

closes #21931
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/e8eaf8074f78df3f40ecfb9ef94c2077db9c87a1" style="color: #1068bf;">e8eaf807</a></strong>
<div>
<span>by Matthew Pickering</span>
<i>at 2022-08-31T18:27:57-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>Refine in-tree compiler args for --test-compiler=stage1

Some of the logic to calculate in-tree arguments was not correct for the
stage1 compiler. Namely we were not correctly reporting whether we were
building static or dynamic executables and whether debug assertions were
enabled.

Fixes #22096
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/6b2f7ffea51304091bfa4bd1d88a58ea373ee551" style="color: #1068bf;">6b2f7ffe</a></strong>
<div>
<span>by Matthew Pickering</span>
<i>at 2022-08-31T18:27:57-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>Make ghcDebugAssertions into a Stage predicate (Stage -> Bool)

We also care whether we have debug assertions enabled for a stage one
compiler, but the way which we turned on the assertions was quite
different from the stage2 compiler. This makes the logic for turning on
consistent across both and has the advantage of being able to correct
determine in in-tree args whether a flavour enables assertions or not.

Ticket #22096
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/15111af6adb1c85af5b17088134c9e71bee025e3" style="color: #1068bf;">15111af6</a></strong>
<div>
<span>by Zubin Duggal</span>
<i>at 2022-09-01T01:18:50-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>Add regression test for #21550

This was fixed by ca90ffa321a31842a32be1b5b6e26743cd677ec5
"Use local instances with least superclass depth"
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/7d3a055d4df6842f8fbcfbc1ca96e2a45a47d351" style="color: #1068bf;">7d3a055d</a></strong>
<div>
<span>by Krzysztof Gogolewski</span>
<i>at 2022-09-01T01:19:26-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>Minor cleanup

- Remove mkHeteroCoercionType, sdocImpredicativeTypes, isStateType (unused),
  isCoVar_maybe (duplicated by getCoVar_maybe)
- Replace a few occurrences of voidPrimId with (# #).
  void# is a deprecated synonym for the unboxed tuple.
- Use showSDoc in :show linker.
  This makes it consistent with the other :show commands
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/31a8989a1d4aa5fe1e3ed0b2e789145bb64a8ba8" style="color: #1068bf;">31a8989a</a></strong>
<div>
<span>by Tommy Bidne</span>
<i>at 2022-09-01T12:01:20-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>Change Ord defaults per CLC proposal

Approved by CLC in https://github.com/haskell/core-libraries-committee/issues/24#issuecomment-1233331267
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/7f527f01c8b4b61047fa87905750ee962f527e36" style="color: #1068bf;">7f527f01</a></strong>
<div>
<span>by Matthew Pickering</span>
<i>at 2022-09-01T12:01:56-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>Fix bootstrap with ghc-9.0

It turns out Solo is a very recent addition to base, so for older GHC
versions we just defined it inline here the one place we use it in the
compiler.
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/d2be80fd9b222963e8dd09a30f78c106e00da7f9" style="color: #1068bf;">d2be80fd</a></strong>
<div>
<span>by Sebastian Graf</span>
<i>at 2022-09-05T23:12:14-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>DmdAnal: Don't panic in addCaseBndrDmd (#22039)

Rather conservatively return Top.
See Note [Untyped demand on case-alternative binders].

I also factored `addCaseBndrDmd` into two separate functions `scrutSubDmd` and
`fieldBndrDmds`.

Fixes #22039.
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/25f68acedf822e9ea21d1659b1f897fcfc96e5d4" style="color: #1068bf;">25f68ace</a></strong>
<div>
<span>by Ben Gamari</span>
<i>at 2022-09-05T23:12:50-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>gitlab-ci: Ensure that ghc derivation is in scope

Previously the lint-ci job attempted to use cabal-install (specifically
`cabal update`) without a GHC in PATH. However, cabal-install-3.8
appears to want GHC, even for `cabal update`.
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/f37b621fdeff6922c6ad9533a02ccc26c50f9b2e" style="color: #1068bf;">f37b621f</a></strong>
<div>
<span>by sheaf</span>
<i>at 2022-09-06T11:51:53+00:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>Update instances.rst, clarifying InstanceSigs

Fixes #22103
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/d4f908f7dff34c650fd3cf26dbba1d5b66c13dbc" style="color: #1068bf;">d4f908f7</a></strong>
<div>
<span>by Jan Hrček</span>
<i>at 2022-09-06T15:36:58-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>Fix :add docs in user guide
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/808bb7934e1e3007bf7115bdf75263bba937c85b" style="color: #1068bf;">808bb793</a></strong>
<div>
<span>by Cheng Shao</span>
<i>at 2022-09-06T15:37:35-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>ci: remove unused build_make/test_make in ci script
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/d0a2efb2125ef410a7c7725b93987d2b7ea99463" style="color: #1068bf;">d0a2efb2</a></strong>
<div>
<span>by Eric Lindblad</span>
<i>at 2022-09-07T16:42:45-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>typo</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/fac0098b3e07375030c4320c23c8a6c9200556af" style="color: #1068bf;">fac0098b</a></strong>
<div>
<span>by Eric Lindblad</span>
<i>at 2022-09-07T16:42:45-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>typos
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/a581186f38a4feb850614b03f452191eaceee14d" style="color: #1068bf;">a581186f</a></strong>
<div>
<span>by Eric Lindblad</span>
<i>at 2022-09-07T16:42:45-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>whitespace
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/04a738cb23e82b32caf38b7965f5042e6af6ee88" style="color: #1068bf;">04a738cb</a></strong>
<div>
<span>by Cheng Shao</span>
<i>at 2022-09-07T16:43:22-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>CmmToAsm: remove unused ModLocation from NatM_State
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/ee1cfaa990205dc96148ed20c2d6560b4808b0b7" style="color: #1068bf;">ee1cfaa9</a></strong>
<div>
<span>by Krzysztof Gogolewski</span>
<i>at 2022-09-07T16:43:58-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>Minor SDoc cleanup

Change calls to renderWithContext with showSDocOneLine; it's more
efficient and explanatory.

Remove polyPatSig (unused)
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/7918265d53db963bfd3dd529b1063fb844549733" style="color: #1068bf;">7918265d</a></strong>
<div>
<span>by Krzysztof Gogolewski</span>
<i>at 2022-09-07T16:43:58-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>Remove Outputable Char instance

Use 'text' instead of 'ppr'.
Using 'ppr' on the list "hello" rendered as "h,e,l,l,o".
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/77209ab32aee6f58504b303fdea2df69f5a71027" style="color: #1068bf;">77209ab3</a></strong>
<div>
<span>by Georgi Lyubenov</span>
<i>at 2022-09-08T17:14:36+03:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>Export liftA2 from Prelude

Changes:
In order to be warning free and compatible, we hide Applicative(..)
from Prelude in a few places and instead import it directly from
Control.Applicative.
Please see the migration guide at
https://github.com/haskell/core-libraries-committee/blob/main/guides/export-lifta2-prelude.md
for more details.

This means that Applicative is now exported in its entirety from
Prelude.

Motivation:

This change is motivated by a few things:
* liftA2 is an often used function, even more so than (<*>) for some
  people.
* When implementing Applicative, the compiler will prompt you for either
  an implementation of (<*>) or of liftA2, but trying to use the latter
  ends with an error, without further imports. This could be confusing
  for newbies.
* For teaching, it is often times easier to introduce liftA2 first,
  as it is a natural generalisation of fmap.
* This change seems to have been unanimously and enthusiastically
  accepted by the CLC members, possibly indicating a lot of love for it.
* This change causes very limited breakage, see the linked issue below
  for an investigation on this.

See https://github.com/haskell/core-libraries-committee/issues/50
for the surrounding discussion and more details.
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/442a94e8ef886b51c5622102546e34875a3fcc37" style="color: #1068bf;">442a94e8</a></strong>
<div>
<span>by Georgi Lyubenov</span>
<i>at 2022-09-08T17:14:36+03:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>Add changelog entry for liftA2 export from Prelude
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/fb968680c3b0d1cc2ae9f8433dc56f847f8b7d3f" style="color: #1068bf;">fb968680</a></strong>
<div>
<span>by Georgi Lyubenov</span>
<i>at 2022-09-08T17:14:36+03:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>Bump submodule containers to one with liftA2 warnings fixed
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/f54ff8183a38a92c0ae4e063bc8bd85a33fdc9ff" style="color: #1068bf;">f54ff818</a></strong>
<div>
<span>by Georgi Lyubenov</span>
<i>at 2022-09-08T17:14:36+03:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>Bump submodule Cabal to one with liftA2 warnings fixed
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/a4b34808720e93b434b4fcf18db114bc1f0599aa" style="color: #1068bf;">a4b34808</a></strong>
<div>
<span>by Georgi Lyubenov</span>
<i>at 2022-09-08T17:14:36+03:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>Isolate some Applicative hidings to GHC.Prelude

By reexporting the entirety of Applicative from GHC.Prelude, we can save
ourselves some `hiding` and importing of `Applicative` in consumers of GHC.Prelude.
This also has the benefit of isolating this type of change to
GHC.Prelude, so that people in the future don't have to think about it.
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/9c4ea90c6b493eee6df1798c63a6031cc18ae6da" style="color: #1068bf;">9c4ea90c</a></strong>
<div>
<span>by Cheng Shao</span>
<i>at 2022-09-08T17:49:47-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>CmmToC: enable 64-bit CallishMachOp on 32-bit targets

Normally, the unregisterised builds avoid generating 64-bit
CallishMachOp in StgToCmm, so CmmToC doesn't support these. However,
there do exist cases where we'd like to invoke cmmToC for other cmm
inputs which may contain such CallishMachOps, and it's a rather low
effort to add support for these since they only require calling into
existing ghc-prim cbits.
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/04062510806e2a3ccf0ecdb71c704a8e1c548c53" style="color: #1068bf;">04062510</a></strong>
<div>
<span>by Alexis King</span>
<i>at 2022-09-11T11:30:32+02:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>Add native delimited continuations to the RTS

This patch implements GHC proposal 313, "Delimited continuation
primops", by adding native support for delimited continuations to the
GHC RTS.

All things considered, the patch is relatively small. It almost
exclusively consists of changes to the RTS; the compiler itself is
essentially unaffected. The primops come with fairly extensive Haddock
documentation, and an overview of the implementation strategy is given
in the Notes in rts/Continuation.c.

This first stab at the implementation prioritizes simplicity over
performance. Most notably, every continuation is always stored as a
single, contiguous chunk of stack. If one of these chunks is
particularly large, it can result in poor performance, as the current
implementation does not attempt to cleverly squeeze a subset of the
stack frames into the existing stack: it must fit all at once. If this
proves to be a performance issue in practice, a cleverer strategy would
be a worthwhile target for future improvements.
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/ee471dfb8a4a4bb5131a5baa61d1d0d22c933d5f" style="color: #1068bf;">ee471dfb</a></strong>
<div>
<span>by Cheng Shao</span>
<i>at 2022-09-12T07:07:33-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>rts: fix missing dirty_MVAR argument in stg_writeIOPortzh
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/a5f9c35f5831ef5108e87813a96eac62803852ab" style="color: #1068bf;">a5f9c35f</a></strong>
<div>
<span>by Cheng Shao</span>
<i>at 2022-09-12T13:29:05-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>ci: enable parallel compression for xz
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/3a815f30bcba5672085e823aeef90863253b0b1a" style="color: #1068bf;">3a815f30</a></strong>
<div>
<span>by Ryan Scott</span>
<i>at 2022-09-12T13:29:41-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>Windows: Always define _UCRT when compiling C code

As seen in #22159, this is required to ensure correct behavior when MinGW-w64
headers are in the `C_INCLUDE_PATH`.

Fixes #22159.
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/65a0bd69ac1fb59047cd4c8554a8fc756c7b3476" style="color: #1068bf;">65a0bd69</a></strong>
<div>
<span>by sheaf</span>
<i>at 2022-09-13T10:27:52-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>Add diagnostic codes

This MR adds diagnostic codes, assigning unique numeric codes to
error and warnings, e.g.

  error: [GHC-53633]
  Pattern match is redundant

This is achieved as follows:

  - a type family GhcDiagnosticCode that gives the diagnostic code
    for each diagnostic constructor,
  - a type family ConRecursInto that specifies whether to recur into
    an argument of the constructor to obtain a more fine-grained code
    (e.g. different error codes for different 'deriving' errors),
  - generics machinery to generate the value-level function assigning
    each diagnostic its error code; see Note [Diagnostic codes using generics]
    in GHC.Types.Error.Codes.

The upshot is that, to add a new diagnostic code, contributors only need
to modify the two type families mentioned above. All logic relating to
diagnostic codes is thus contained to the GHC.Types.Error.Codes module,
with no code duplication.

This MR also refactors error message datatypes a bit, ensuring we can
derive Generic for them, and cleans up the logic around constraint
solver reports by splitting up 'TcSolverReportInfo' into separate
datatypes (see #20772).

Fixes #21684
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/362cca13858faf7e1158273780ea900e7dad5827" style="color: #1068bf;">362cca13</a></strong>
<div>
<span>by sheaf</span>
<i>at 2022-09-13T10:27:53-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>Diagnostic codes: acccept test changes

The testsuite output now contains diagnostic codes, so many tests need
to be updated at once.
We decided it was best to keep the diagnostic codes in the testsuite
output, so that contributors don't inadvertently make changes to the
diagnostic codes.
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/08f6730cd04ae9cdba30c0e371522ddc9a25b716" style="color: #1068bf;">08f6730c</a></strong>
<div>
<span>by Adam Gundry</span>
<i>at 2022-09-13T10:28:29-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>Allow imports to reference multiple fields with the same name (#21625)

If a module `M` exports two fields `f` (using DuplicateRecordFields), we can
still accept

    import M (f)
    import M hiding (f)

and treat `f` as referencing both of them.  This was accepted in GHC 9.0, but gave
rise to an ambiguity error in GHC 9.2.  See #21625.

This patch also documents this behaviour in the user's guide, and updates the
test for #16745 which is now treated differently.
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/c14370d765efb81ead9a80dc5450dc97e3167b6e" style="color: #1068bf;">c14370d7</a></strong>
<div>
<span>by Cheng Shao</span>
<i>at 2022-09-13T10:29:07-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>ci: remove unused appveyor config
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/dc6af9ed87e619d754bfc385df931c81cba6d93a" style="color: #1068bf;">dc6af9ed</a></strong>
<div>
<span>by Cheng Shao</span>
<i>at 2022-09-13T10:29:45-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>compiler: remove unused lazy state monad
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/646d15ad8f1119f339998ee8dd79ea96cfd1d165" style="color: #1068bf;">646d15ad</a></strong>
<div>
<span>by Eric Lindblad</span>
<i>at 2022-09-14T03:13:56-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>Fix typos

This fixes various typos and spelling mistakes
in the compiler.

Fixes #21891
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/7d7e71b03f4b2eb693f5ea69dadbccf491e7403f" style="color: #1068bf;">7d7e71b0</a></strong>
<div>
<span>by Matthew Pickering</span>
<i>at 2022-09-14T03:14:32-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>hadrian: Bump index state

This bumps the index state so a build plan can also be found when
booting with 9.4.

Fixes #22165
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/149dd4f016f6b1897c3d060dd6202f20130040c3" style="color: #1068bf;">149dd4f0</a></strong>
<div>
<span>by Ben Gamari</span>
<i>at 2022-09-14T16:59:18-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>llvmGen: Adapt to allow LLVM 15

We now must use `-passes` in place of `-O<n>` due to #21936.

Closes #21936.
</pre>
</li>
</ul>
<h4 style="margin-top: 10px; margin-bottom: 10px;">11 changed files:</h4>
<ul>
<li class="file-stats">
<a href="#75e574383e3b45d84e93d043bff99e13d75f1842" style="color: #1068bf;">
<span class="deleted-file">

.appveyor.sh
</span>
</a>
</li>
<li class="file-stats">
<a href="#626a747c8694eaae66f2afb3d1a745b045782c70" style="color: #1068bf;">
<span class="new-file">
+
.editorconfig
</span>
</a>
</li>
<li class="file-stats">
<a href="#a5cc2925ca8258af241be7e5b0381edf30266302" style="color: #1068bf;">
.gitignore
</a>
</li>
<li class="file-stats">
<a href="#587d266bb27a4dc3022bbed44dfa19849df3044c" style="color: #1068bf;">
.gitlab-ci.yml
</a>
</li>
<li class="file-stats">
<a href="#157f7634c25bc6366cb7c9c9edb48e819dce38db" style="color: #1068bf;">
.gitlab/ci.sh
</a>
</li>
<li class="file-stats">
<a href="#87f172441517f3e835fc40f63481c8b2d76cc24f" style="color: #1068bf;">
<span class="new-file">
+
.gitlab/darwin/nix/sources.json
</span>
</a>
</li>
<li class="file-stats">
<a href="#4f02feb5f9f1c274f9a692c759d7ebe7d810bba3" style="color: #1068bf;">
<span class="new-file">
+
.gitlab/darwin/nix/sources.nix
</span>
</a>
</li>
<li class="file-stats">
<a href="#2d415ae7c1ef3c1ba82ca50e9b8cec69c2620bac" style="color: #1068bf;">
<span class="new-file">
+
.gitlab/darwin/toolchain.nix
</span>
</a>
</li>
<li class="file-stats">
<a href="#a6883fe5ffe69ebc49b16c7e553faba405221f57" style="color: #1068bf;">
<span class="new-file">
+
.gitlab/gen_ci.hs
</span>
</a>
</li>
<li class="file-stats">
<a href="#7402c88acd995cad343c10862e77c283382d6d77" style="color: #1068bf;">
<span class="new-file">
+
.gitlab/generate_jobs
</span>
</a>
</li>
<li class="file-stats">
<a href="#70424f3e889c476809536f20e5ea251264077eca" style="color: #1068bf;">
.gitlab/issue_templates/feature_request.md
</a>
</li>
</ul>
<h5 style="margin-top: 10px; margin-bottom: 10px; font-size: 0.875rem;">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: #666;">

<br>
<a href="https://gitlab.haskell.org/ghc/ghc/-/compare/25e2165fc5916540ee8f63205431d79ceda83ef7...149dd4f016f6b1897c3d060dd6202f20130040c3" style="color: #1068bf;">View it on GitLab</a>.
<br>
You're receiving this email because of your account on <a target="_blank" rel="noopener noreferrer" href="https://gitlab.haskell.org" style="color: #1068bf;">gitlab.haskell.org</a>. <a href="https://gitlab.haskell.org/-/profile/notifications" target="_blank" rel="noopener noreferrer" class="mng-notif-link" style="color: #1068bf;">Manage all notifications</a> · <a href="https://gitlab.haskell.org/help" target="_blank" rel="noopener noreferrer" class="help-link" style="color: #1068bf;">Help</a>



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