<!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;">
Zubin pushed to branch ghc-9.2 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/1b48378e65e0203de83c23577fcd0f1ae4fe83be" style="color: #1068bf;">1b48378e</a></strong>
<div>
<span> by Matthew Pickering </span> <i> at 2023-01-23T13:37:08+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;'>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
(cherry picked from commit 02372be119bd1a4e7099d2c7d5bb3de096e99409)
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/6eaf0d3dfec70d175115d666a477cf46e44e29ef" style="color: #1068bf;">6eaf0d3d</a></strong>
<div>
<span> by Andreas Klebinger </span> <i> at 2023-02-07T18:47:08+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;'>Fix #22425 - Broken eta-expansion over expensive work.
This is the 9.2 backport of !9357
Through a mistake in the latest backport we started eta-expanding over
expensive work by mistake. E.g. over <expensive> in code like:
case x of
A -> id
B -> <expensive>
We fix this by only eta-expanding over <expensive> if all other branches
are headed by an oneShot lambda.
In the long story of broken eta-expansion on 9.2/9.4 this is hopefully
the last chapter.
-------------------------
Metric Increase:
CoOpt_Read
T1969
parsing001
TcPlugin_RewritePerf
LargeRecord
-------------------------
(cherry picked from commit ce608479c7f40a9899a6448379d05861bee77b41)
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/fed9cff1f1c62acdd156949087850c5e194b7660" style="color: #1068bf;">fed9cff1</a></strong>
<div>
<span> by Simon Peyton Jones </span> <i> at 2023-02-07T18:47:08+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;'>Add a missing varToCoreExpr in etaBodyForJoinPoint
This subtle bug showed up when compiling a library with 9.4.
See #22491. The bug is present in master, but it is hard to
trigger; the new regression test T22491 fails in 9.4.
The fix was easy: just add a missing varToCoreExpr in
etaBodyForJoinPoint.
The fix is definitely right though!
I also did some other minor refatoring:
* Moved the preInlineUnconditionally test in simplExprF1 to
before the call to joinPointBinding_maybe, to avoid fruitless
eta-expansion.
* Added a boolean from_lam flag to simplNonRecE, to avoid two
fruitless tests, and commented it a bit better.
These refactorings seem to save 0.1% on compile-time allocation in
perf/compiler; with a max saving of 1.4% in T9961
Metric Decrease:
T9961
(cherry picked from commit afc2540daf6ca6baa09ab147b792da08d66d878c)
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/ce180d2fc879e4039f99336f9df7a6af2051c3ee" style="color: #1068bf;">ce180d2f</a></strong>
<div>
<span> by Matthew Pickering </span> <i> at 2023-02-07T18:47:08+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;'>Typeable: Fix module locations of some definitions in GHC.Types
There was some confusion in Data.Typeable about which module certain
wired-in things were defined in. Just because something is wired-in
doesn't mean it comes from GHC.Prim, in particular things like LiftedRep
and RuntimeRep are defined in GHC.Types and that's the end of the story.
Things like Int#, Float# etc are defined in GHC.Prim as they have no
Haskell definition site at all so we need to generate type
representations for them (which live in GHC.Types).
Fixes #22510
(cherry picked from commit 1d3a8b8ec98e6eedf8943e19780ec374c2491e7f)
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/aac592f3e937f358f34ff11ae8e8dda5a6601f43" style="color: #1068bf;">aac592f3</a></strong>
<div>
<span> by Andreas Klebinger </span> <i> at 2023-02-07T18:47:08+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;'>Fix LitRubbish being applied to values.
This fixes #19824
This is the 9.2 backport of commit 52ce8590ab18fb1fc99bd9aa24c016f786d7f7d1
(cherry picked from commit 2e02959ab40f2b67499aaffc29ee1dc9f0d48158)
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/8aaf86f87c589edad73e3d20ad693bc24482eaf0" style="color: #1068bf;">8aaf86f8</a></strong>
<div>
<span> by Simon Peyton Jones </span> <i> at 2023-02-07T18:47:08+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;'>Fix unifier bug: failing to decompose over-saturated type family
This simple patch fixes #22647
(cherry picked from commit 317f45c154f6fe25d50ef2f3febcc5883ff1b1ca)
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/03da82af40231d5c7edd3bc35d7abf7372c193c3" style="color: #1068bf;">03da82af</a></strong>
<div>
<span> by Sebastian Graf </span> <i> at 2023-02-07T18:47:08+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;'>Handle shadowing in DmdAnal (#22718)
Previously, when we had a shadowing situation like
```hs
f x = ... -- demand signature <1L><1L>
main = ... \f -> f 1 ...
```
we'd happily use the shadowed demand signature at the call site inside the
lambda. Of course, that's wrong and solution is simply to remove the demand
signature from the `AnalEnv` when we enter the lambda.
This patch does so for all binding constructs Core.
In #22718 the issue was caused by LetUp not shadowing away the existing demand
signature for the let binder in the let body. The resulting absent error is
fickle to reproduce; hence no reproduction test case. #17478 would help.
Fixes #22718.
It appears that TcPlugin_Rewrite regresses by ~40% on Darwin. It is likely that
DmdAnal was exploiting ill-scoped analysis results.
Metric increase ['bytes allocated'] (test_env=x86_64-darwin-validate):
TcPlugin_Rewrite
(cherry picked from commit e3fff7512bbf989386faaa1dccafdad1deabde84)
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/7e47d0f5f0c2c275d0fb3868bd33c5c3f406eadf" style="color: #1068bf;">7e47d0f5</a></strong>
<div>
<span> by Zubin Duggal </span> <i> at 2023-02-07T18:47:09+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;'>Bump bytestring submodule to 0.11.4.0
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/d130b39fb1fd0eb535216c4cd8240a4aee910775" style="color: #1068bf;">d130b39f</a></strong>
<div>
<span> by Andreas Klebinger </span> <i> at 2023-02-07T18:47:09+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;'>Only gc sparks locally when we can ensure marking is done.
When performing GC without work stealing there was no guarantee that
spark pruning was happening after marking of the sparks. This could
cause us to GC live sparks under certain circumstances.
Fixes #22528.
(cherry picked from commit a1491c8791c57a64d94bc08d639d585815c8d4e2)
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/5b2af5919f9c6e99b223d20943d88244170a8657" style="color: #1068bf;">5b2af591</a></strong>
<div>
<span> by Ian-Woo Kim </span> <i> at 2023-02-07T18:47:09+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;'>Truncate eventlog event for large payload (#20221)
RTS eventlog events for postCapsetVecEvent are truncated if payload
is larger than EVENT_PAYLOAD_SIZE_MAX
Previously, postCapsetVecEvent records eventlog event with payload
of variable size larger than EVENT_PAYLOAD_SIZE_MAX (2^16) without
any validation, resulting in corrupted data.
For example, this happens when a Haskell binary is invoked with very
long command line arguments exceeding 2^16 bytes (see #20221).
Now we check the size of accumulated payload messages incrementally,
and truncate the message just before the payload size exceeds
EVENT_PAYLOAD_SIZE_MAX. RTS will warn the user with a message showing
how many arguments are truncated.
(cherry picked from commit 2057c77d08cb8422857d182a3691f98dccd0c7d6)
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/ec04fbed969b39d57fb30aaaf4e9f2e69adfa3f9" style="color: #1068bf;">ec04fbed</a></strong>
<div>
<span> by Simon Peyton Jones </span> <i> at 2023-02-07T18:47:09+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;'>Make FloatIn robust to shadowing
This MR fixes #22622. See the new
Note [Shadowing and name capture]
I did a bit of refactoring in sepBindsByDropPoint too.
The bug doesn't manifest in HEAD, but it did show up in 9.4,
so we should backport this patch to 9.4
(cherry picked from commit 6206cb9287f3f6e70c669660a646a65274870d2b)
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/a225dbb123559aec4c97b9a2b8c114be5695f077" style="color: #1068bf;">a225dbb1</a></strong>
<div>
<span> by Ben Gamari </span> <i> at 2023-02-07T18:47:09+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;'>Bump ghc-tarballs to fix #22497
It turns out that gmp 6.2.1 uses the platform-reserved `x18` register on
AArch64/Darwin. This was fixed in upstream changeset 18164:5f32dbc41afc,
which was merged in 2020. Here I backport this patch although I do hope
that a new release is forthcoming soon.
Bumps gmp-tarballs submodule.
Fixes #22497.
(cherry picked from commit f891a442046d8a5ebf4d4777847880ce06752b18)
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/cf2da09a0d23b1a1421c0b96c8aaada75eb3b2eb" style="color: #1068bf;">cf2da09a</a></strong>
<div>
<span> by Ben Gamari </span> <i> at 2023-02-07T18:47:09+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;'>Bump gmp-tarballs submodule
This backports the upstream fix for CVE-2021-43618, fixing #22789.
(cherry picked from commit b13c6ea5d4b64841164f8cc58d6c6f3de390f2ed)
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/09224b906659cf67752f943acb18b2373bf2fba1" style="color: #1068bf;">09224b90</a></strong>
<div>
<span> by Oleg Grenrus </span> <i> at 2023-02-07T18:47:09+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;'>Fix #22728: Not all diagnostics in safe check are fatal
Also add tests for the issue and -Winferred-safe-imports in general
(cherry picked from commit 1b812b6973a25cb1962e2fc543d2c4ed3cf31f3c)
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/27f154f9c68b2c64107eb64104d9eb92295191c6" style="color: #1068bf;">27f154f9</a></strong>
<div>
<span> by Zubin Duggal </span> <i> at 2023-02-07T18:47:09+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;'>Document #22255 and #22468 in bugs.rst
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/c63a3e25e9265851beefef99a30cbfe29136a254" style="color: #1068bf;">c63a3e25</a></strong>
<div>
<span> by Simon Peyton Jones </span> <i> at 2023-02-07T18:47:09+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;'>Fix an assertion check in addToEqualCtList
The old assertion saw that a constraint ct could rewrite itself
(of course it can) and complained (stupid).
Fixes #22645
(cherry picked from commit 3d55d8ab51ece43c51055c43c9e7aba77cce46c0)
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/eadbbbcf8fbb0ff0f47f1819966fd2e564fa3d8e" style="color: #1068bf;">eadbbbcf</a></strong>
<div>
<span> by Simon Peyton Jones </span> <i> at 2023-02-07T18:47:09+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;'>Fix shadowing lacuna in OccurAnal
Issue #22623 demonstrated another lacuna in the implementation
of wrinkle (BS3) in Note [The binder-swap substitution] in
the occurrence analyser.
I was failing to add TyVar lambda binders using
addInScope/addOneInScope and that led to a totally bogus binder-swap
transformation.
Very easy to fix.
(cherry picked from commit e193e53790dd5886feea3cf4c9c17625d188291b)
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/a090f5c3d4376810617237ff5be589fafc0d96b6" style="color: #1068bf;">a090f5c3</a></strong>
<div>
<span> by Sebastian Graf </span> <i> at 2023-02-07T18:47:09+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;'>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.
(cherry picked from commit d2be80fd9b222963e8dd09a30f78c106e00da7f9)
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/52e579b610ba3fe59a56596c88b560f3659bd73f" style="color: #1068bf;">52e579b6</a></strong>
<div>
<span> by Matthew Pickering </span> <i> at 2023-02-07T18:47:09+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;'>ApplicativeDo: Set pattern location before running exhaustiveness checker
This improves the error messages of the exhaustiveness checker when
checking statements which have been moved around with ApplicativeDo.
Before:
Test.hs:2:3: warning: [GHC-62161] [-Wincomplete-uni-patterns]
Pattern match(es) are non-exhaustive
In a pattern binding:
Patterns of type ‘Maybe ()’ not matched: Nothing
|
2 | let x = ()
| ^^^^^^^^^^
After:
Test.hs:4:3: warning: [GHC-62161] [-Wincomplete-uni-patterns]
Pattern match(es) are non-exhaustive
In a pattern binding:
Patterns of type ‘Maybe ()’ not matched: Nothing
|
4 | ~(Just res1) <- seq x (pure $ Nothing @())
|
Fixes #22483
(cherry picked from commit 74c767df770766d8d52e87b9ff7da10f94620a91)
(cherry picked from commit 51c6051bcc405bc1dbddd450ade949acd70db6b8)
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/96ab827a0d1ffd81bd906262b42409f2df808375" style="color: #1068bf;">96ab827a</a></strong>
<div>
<span> by Andreas Klebinger </span> <i> at 2023-02-07T18:47:09+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;'>ghc-the-library: Retain cafs in both static in dynamic builds.
We use keepCAFsForGHCi.c to force -fkeep-cafs behaviour by using a
__attribute__((constructor)) function.
This broke for static builds where the linker discarded the object file
since it was not reverenced from any exported code. We fix this by
asserting that the flag is enabled using a function in the same module
as the constructor. Which causes the object file to be retained by the
linker, which in turn causes the constructor the be run in static builds.
This changes nothing for dynamic builds using the ghc library. But causes
static to also retain CAFs (as we expect them to).
Fixes #22417.
-------------------------
Metric Decrease:
T21839r
-------------------------
(cherry picked from commit 08ba87200ff068aa37cac082e61ee7e2d534daf5)
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/898ca9c6bec33b63da446e95424583c431326730" style="color: #1068bf;">898ca9c6</a></strong>
<div>
<span> by Matthew Pickering </span> <i> at 2023-02-07T18:47:09+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;'>T10955: Set DYLD_LIBRARY_PATH for darwin
The correct path to direct the dynamic linker on darwin is
DYLD_LIBRARY_PATH rather than LD_LIBRARY_PATH. On recent versions of OSX
using LD_LIBRARY_PATH seems to have stopped working.
For more reading see:
https://stackoverflow.com/questions/3146274/is-it-ok-to-use-dyld-library-path-on-mac-os-x-and-whats-the-dynamic-library-s
(cherry picked from commit a960ca817d6ad0109ea6edda50da3902cc538e86)
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/8e0c0da573062bde6dd084f3bc1c0f548b82cc73" style="color: #1068bf;">8e0c0da5</a></strong>
<div>
<span> by Matthew Pickering </span> <i> at 2023-02-07T18:47:09+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;'>Skip T18623 on darwin (to add to the long list of OSs)
On recent versions of OSX, running `ulimit -v` results in
```
ulimit: setrlimit failed: invalid argument
```
Time is too short to work out what random stuff Apple has been doing
with ulimit, so just skip the test like we do for other platforms.
(cherry picked from commit 734847108420cf826a807c30ad54651659cf3a08)
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/8ef4fec100d02d18465ffffa7b14f6672f051353" style="color: #1068bf;">8ef4fec1</a></strong>
<div>
<span> by Matthew Pickering </span> <i> at 2023-02-07T18:47:09+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;'>Pass -Wl,-no_fixup_chains to ld64 when appropiate
Recent versions of MacOS use a version of ld where `-fixup_chains` is on by default.
This is incompatible with our usage of `-undefined dynamic_lookup`. Therefore we
explicitly disable `fixup-chains` by passing `-no_fixup_chains` to the linker on
darwin. This results in a warning of the form:
ld: warning: -undefined dynamic_lookup may not work with chained fixups
The manual explains the incompatible nature of these two flags:
-undefined treatment
Specifies how undefined symbols are to be treated. Options are: error, warning,
suppress, or dynamic_lookup. The default is error. Note: dynamic_lookup that
depends on lazy binding will not work with chained fixups.
A relevant ticket is #22429
Here are also a few other links which are relevant to the issue:
Official comment: https://developer.apple.com/forums/thread/719961
More relevant links:
https://openradar.appspot.com/radar?id=5536824084660224
https://github.com/python/cpython/issues/97524
Note in release notes: https://developer.apple.com/documentation/xcode-release-notes/xcode-13-releas e-notes
(cherry picked from commit 8c0ea25fb4a27d4729aabf73f4c00b912bb0c58d)
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/2df830a1e68ca4fcc6b34f4a785f982110ed3b5f" style="color: #1068bf;">2df830a1</a></strong>
<div>
<span> by Cheng Shao </span> <i> at 2023-02-07T18:47:09+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;'>Fix typo in recent darwin tests fix
Corrects a typo in !9647. Otherwise T18623 will still fail on darwin
and stall other people's work.
(cherry picked from commit c45a5fffef2c76efbf5d3a009c3f6d0244a63f0d)
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/15d34a971e761f99732ff57eac49f38c628b7893" style="color: #1068bf;">15d34a97</a></strong>
<div>
<span> by Ben Gamari </span> <i> at 2023-02-07T18:47:09+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;'>nativeGen/AArch64: Fix debugging output
Previously various panics would rely on a half-written Show
instance, leading to very unhelpful errors. Fix this.
See #22798.
(cherry picked from commit be417a47c7695998dea0adc05489a7b8838a78b6)
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/34baa6e9e1adc10fd38be69493fc988a21c0abfa" style="color: #1068bf;">34baa6e9</a></strong>
<div>
<span> by Ben Gamari </span> <i> at 2023-02-07T18:47: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;'>nativeGen: Teach graph-colouring allocator that x18 is unusable
Previously trivColourable for AArch64 claimed that at 18 registers were
trivially-colourable. This is incorrect as x18 is reserved by the platform on
AArch64/Darwin.
See #22798.
(cherry picked from commit 30989d137b8f3a8fddbfd116e04b48f23c24f86c)
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/d5eea69cdc9487d4d40c8336356cadb4db13b8a2" style="color: #1068bf;">d5eea69c</a></strong>
<div>
<span> by Ben Gamari </span> <i> at 2023-02-07T18:47: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;'>nativeGen/AArch64: Fix graph-colouring allocator
Previously various `Instr` queries used by the graph-colouring allocator
failed to handle a few pseudo-instructions. This manifested in compiler
panicks while compiling `SHA`, which uses `-fregs-graph`.
Fixes #22798.
(cherry picked from commit 7566fd9de38c67360c090f828923d41587af519c)
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/8d846b8a9bfe578376302937031746a20e9add03" style="color: #1068bf;">8d846b8a</a></strong>
<div>
<span> by Ben Gamari </span> <i> at 2023-02-07T18:47: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;'>testsuite: Add regression test for #22798
(cherry picked from commit 2cb500a5ee1a31dfe1a2cdd71f175442026eb082)
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/7262d71f519e9697b745d994d255d640afb1c953" style="color: #1068bf;">7262d71f</a></strong>
<div>
<span> by Zubin Duggal </span> <i> at 2023-02-07T18:47: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;'>hadrian: enable -haddock in perf flavour (#22734)
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/d966ed64b35f318538029a4d64f0b33fab4851c9" style="color: #1068bf;">d966ed64</a></strong>
<div>
<span> by Zubin Duggal </span> <i> at 2023-02-07T22:42: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;'>Bump version to GHC 9.2.6 and add changelog entries
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/67ec973ce40d8a66d48c0f5f40458380957b6e6f" style="color: #1068bf;">67ec973c</a></strong>
<div>
<span> by Zubin Duggal </span> <i> at 2023-02-08T05:42:32+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;'>Allow metric changes for 9.2.6 as baseline is from a release pipeline
Metric Decrease:
haddock.base
haddock.Cabal
haddock.compiler
Metric Increase:
ManyAlternatives
ManyConstructors
T10421
T10858
T12227
T12425
T12707
T13035
T13253
T13719
T15164
T16577
T18304
T18698a
T18698b
T3294
T5321FD
T5642
T9203
T9233
T9630
T9872a
T9872b
T9872c
T9872d
T14697
T12545
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/804cd4c7c543946d8fa61edb658019227bb39134" style="color: #1068bf;">804cd4c7</a></strong>
<div>
<span> by Ben Gamari </span> <i> at 2023-02-08T14:54:08+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;'>rts: Introduce getNumCapabilities
And ensure accesses to n_capabilities are atomic (although with relaxed
ordering). This is necessary as RTS API callers may concurrently call
into the RTS without holding a capability.
(cherry picked from commit 70999283156f527c5aea6dee57a3d14989a9903a)
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/04e9ae578323b3b4b3faa36329ca417c0c7661d6" style="color: #1068bf;">04e9ae57</a></strong>
<div>
<span> by Ben Gamari </span> <i> at 2023-02-08T14:54:16+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;'>nonmoving: Don't show occupancy if we didn't collect live words
(cherry picked from commit fcd9794163f6ae7af8783676ee79e0b8e78167ba)
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/67b43a1447f987e5a841f68cd4c441ea8f272df7" style="color: #1068bf;">67b43a14</a></strong>
<div>
<span> by Ben Gamari </span> <i> at 2023-02-08T14:54:22+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;'>nonmoving: Refactor update remembered set initialization
This avoids a lock inversion between the storage manager mutex and
the stable pointer table mutex by not dropping the SM_MUTEX in
nonmovingCollect. This requires quite a bit of rejiggering but it
does seem like a better strategy.
(cherry picked from commit 543cae0084a72ca767a443d857f9e65a5a79f71d)
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/0c85bf302176def179609c0950a6ce6a496bcc1e" style="color: #1068bf;">0c85bf30</a></strong>
<div>
<span> by Ben Gamari </span> <i> at 2023-02-08T14:54:29+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;'>nonmoving: Fix style
(cherry picked from commit b642ef1dc4cbe19c3479b2c014e7d1f7959f8e4a)
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/3d26addfb18c8d03de6fe273bdac361bd82c6b4c" style="color: #1068bf;">3d26addf</a></strong>
<div>
<span> by Ben Gamari </span> <i> at 2023-02-08T14:54:43+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;'>Evac: Squash data race in eval_selector_chain
(cherry picked from commit dd784b3b01f076fa7f5715150c53ad4c183ae79d)
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/1c4ce072564d07350b40f44cf7a1b99d36fa6af7" style="color: #1068bf;">1c4ce072</a></strong>
<div>
<span> by Ben Gamari </span> <i> at 2023-02-08T14:54:52+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;'>nonmoving: Don't push empty arrays to update remembered set
Previously the write barrier of resizeSmallArray# incorrectly handled
resizing of zero-sized arrays, pushing an invalid pointer to the update
remembered set.
Likely fixes the cause of #22264.
(cherry picked from commit f8988a9c53ae73ff5b9c6008f467a7171e99c61f)
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/d377b9b47869cb44ae76491dca9f3b54249b055d" style="color: #1068bf;">d377b9b4</a></strong>
<div>
<span> by Ben Gamari </span> <i> at 2023-02-08T19:05:11+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;'>nonmoving: Fix handling of weak pointers
This fixes an interaction between aging and weak pointer handling which
prevented the finalization of some weak pointers. In particular, weak
pointers could have their keys incorrectly marked by the preparatory
collector, preventing their finalization by the subsequent concurrent
collection.
While in the area, we also significantly improve the assertions
regarding weak pointers.
Fixes #22327.
(cherry picked from commit a999f7b5b4b7316c088d7233a452fb33dc17646f)
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/f463d9e46ed694afdd66f264560289644c89734e" style="color: #1068bf;">f463d9e4</a></strong>
<div>
<span> by Ben Gamari </span> <i> at 2023-02-08T19:05:11+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;'>nonmoving: Fix tracking of FILLED_SWEEPING segments
Previously we only updated the state of the segment at the head of each
allocator's filled list.
(cherry picked from commit 48b89dba91640fa977d038ea5283019c73f1b18e)
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/c7f6cc07cfe6f1d76a97918b5960883618930f31" style="color: #1068bf;">c7f6cc07</a></strong>
<div>
<span> by Ben Gamari </span> <i> at 2023-02-08T19:05:11+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;'>nonmoving: Handle new closures in nonmovingIsNowAlive
(cherry picked from commit 36ca160d0f199a688cf5fbc91d4bb92d2d4ea14e)
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/e2a81e2a33537e66d8db7a885669c17a9adc2195" style="color: #1068bf;">e2a81e2a</a></strong>
<div>
<span> by Ben Gamari </span> <i> at 2023-02-08T19:05:11+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;'>nonmoving: Don't clobber update rem sets of old capabilities
Previously `storageAddCapabilities` (called by `setNumCapabilities`) would
clobber the update remembered sets of existing capabilities when
increasing the capability count. Fix this by only initializing the
update remembered sets of the newly-created capabilities.
(cherry picked from commit 8b64aff0fa978c762dfae8df235dd2b2a340656a)
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/8aceb849bb8314675bf34aac3152e200386619bf" style="color: #1068bf;">8aceb849</a></strong>
<div>
<span> by Ben Gamari </span> <i> at 2023-02-08T19:05:11+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;'>nonmoving: Add missing write barriers in selector optimisation
This fixes the selector optimisation, adding a few write barriers which
are necessary for soundness.
(cherry picked from commit dde67d6e32ecff0e400f98213d42ae790babac09)
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/1276125345a361e615ee8c084324ce24e21e15d1" style="color: #1068bf;">12761253</a></strong>
<div>
<span> by Ben Gamari </span> <i> at 2023-02-08T19:05:11+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;'>nonmoving: Don't push if nonmoving collector isn't enabled
(cherry picked from commit 8adc1750c02e596b4014d2837b4eb3d76bd130f2)
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/41c8db24efaba282bbef11baec754eae7454c3c5" style="color: #1068bf;">41c8db24</a></strong>
<div>
<span> by Ben Gamari </span> <i> at 2023-02-08T19:05:11+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;'>nonmoving: Sync-phase mark budgeting
Here we significantly improve the bound on sync phase pause times by
imposing a limit on the amount of work that we can perform during the
sync. If we find that we have exceeded our marking budget then we allow
the mutators to resume, return to concurrent marking, and try
synchronizing again later.
(cherry picked from commit c620669651c52fd228af61040747dd7236c4ba2b)
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/cf1921ab333234ee3049fd621aedbebc91ccfd77" style="color: #1068bf;">cf1921ab</a></strong>
<div>
<span> by Ben Gamari </span> <i> at 2023-02-08T19:05:11+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;'>nonmoving: Allow pinned gen0 objects to be WEAK keys
(cherry picked from commit 3887132fcd20f0a1edfc9f7006bdbed2634e2a8d)
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/639329fecd5fa7c91ff6adbc4ab85f83538511f9" style="color: #1068bf;">639329fe</a></strong>
<div>
<span> by Ben Gamari </span> <i> at 2023-02-08T19:05:11+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;'>nonmoving: Be more paranoid in segment tracking
Previously we left various segment link pointers dangling. None of this
wrong per se, but it did make it harder than necessary to debug.
(cherry picked from commit cc75031b4d93d4565e0428cb5910d9b9a645485b)
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/764145d7e2689247084f99211229df4b1097ae1f" style="color: #1068bf;">764145d7</a></strong>
<div>
<span> by Ben Gamari </span> <i> at 2023-02-08T19:05:11+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;'>nonmoving: Add missing no-op in busy-wait loop
(cherry picked from commit 9f931a8801c84b8ae473f91349e144eebc73b415)
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/71adc7881cfbf96429abaab7fc6d770a37b7bf12" style="color: #1068bf;">71adc788</a></strong>
<div>
<span> by Ben Gamari </span> <i> at 2023-02-08T19:05:11+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;'>nonmoving: Move current segment array into Capability
(cherry picked from commit 9d245c1baec91ee79d715062b127e487456d9c9e)
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/85a080e9332e27edb43eb1fcbb67eb63776d5d09" style="color: #1068bf;">85a080e9</a></strong>
<div>
<span> by Ben Gamari </span> <i> at 2023-02-08T19:05:11+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;'>nonmoving: Don't call prepareUnloadCheck
When the nonmoving GC is in use we do not call `checkUnload` (since we
don't unload code) and therefore should not call `prepareUnloadCheck`,
lest we run into assertions.
(cherry picked from commit 6bdce35cdd59112a8cb4a4a3b061e854ada3ff63)
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/5721baa1559b31950e62f769687feddb53bffc4c" style="color: #1068bf;">5721baa1</a></strong>
<div>
<span> by Ben Gamari </span> <i> at 2023-02-08T19:05:11+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;'>nonmoving: Fix unregisterised build
(cherry picked from commit 6df2709e7215ea80d7267800e0318aee2a7c277f)
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/98802ef831d0902dddff6967133e5f21128ce9f3" style="color: #1068bf;">98802ef8</a></strong>
<div>
<span> by Ben Gamari </span> <i> at 2023-02-08T19:05:11+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;'>nonmoving: Avoid n_caps race
(cherry picked from commit c00d6de815d4e125c1c4d8ff06549042f502f759)
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/d5291cff8517cd61829fc2b81b2393b19de8514b" style="color: #1068bf;">d5291cff</a></strong>
<div>
<span> by Ben Gamari </span> <i> at 2023-02-08T19:05:11+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;'>relnotes: Mention various non-moving GC fixes
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/06a4a65fff9268589270e99762d5d18a64cabc6c" style="color: #1068bf;">06a4a65f</a></strong>
<div>
<span> by Zubin Duggal </span> <i> at 2023-02-08T19:05:11+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: Mark T9405 as fixed on windows
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/fd636a4e235f55ca153ee4c0818c249ea3e78c34" style="color: #1068bf;">fd636a4e</a></strong>
<div>
<span> by Matthew Pickering </span> <i> at 2023-02-09T16:25:04+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;'>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/e222f33c928e062ca495b4039349e9e5966bf92e" style="color: #1068bf;">e222f33c</a></strong>
<div>
<span> by sheaf </span> <i> at 2023-02-09T16:27:01+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;'>Fix tyvar scoping within class SPECIALISE pragmas
Type variables from class/instance headers scope over class/instance
method type signatures, but DO NOT scope over the type signatures in
SPECIALISE and SPECIALISE instance pragmas.
The logic in GHC.Rename.Bind.rnMethodBinds correctly accounted for
SPECIALISE inline pragmas, but forgot to apply the same treatment
to method SPECIALISE pragmas, which lead to a Core Lint failure with
an out-of-scope type variable. This patch makes sure we apply the same
logic for both cases.
Fixes #22913
(cherry picked from commit 9ee761bf02cdd11c955454a222c85971d95dce11)
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/5383016c78fe4b2555e0aae9248bea5b42f67a78" style="color: #1068bf;">5383016c</a></strong>
<div>
<span> by Zubin Duggal </span> <i> at 2023-02-09T16:30:52+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;'>changelog: Add entries for #22913 and #14766
</pre>
</li>
</ul>
<h4 style="margin-top: 10px; margin-bottom: 10px;">
30 changed files:
</h4>
<ul>
<li class="file-stats">
<a href="#d0d96a6d03668aeab20ebe05e2c4ccb798c7e64c" style="color: #1068bf;">
compiler/GHC.hs
</a>
</li>
<li class="file-stats">
<a href="#807babf5b215890881c92043bcd08486141a405c" style="color: #1068bf;">
compiler/GHC/CmmToAsm/AArch64/Instr.hs
</a>
</li>
<li class="file-stats">
<a href="#70e6dda2b94c6f8cdd584c1b68c5af73bb1f64e3" style="color: #1068bf;">
compiler/GHC/CmmToAsm/Reg/Graph/TrivColorable.hs
</a>
</li>
<li class="file-stats">
<a href="#c3967bb9d3e8f5aae2dd111b5a335b48c21c1999" style="color: #1068bf;">
compiler/GHC/Core/Opt/Arity.hs
</a>
</li>
<li class="file-stats">
<a href="#8104fa1b71db6cfc4eb90cd769463d9eb9004619" style="color: #1068bf;">
compiler/GHC/Core/Opt/DmdAnal.hs
</a>
</li>
<li class="file-stats">
<a href="#09072575aca2480de8c1966011972c529575ba5d" style="color: #1068bf;">
compiler/GHC/Core/Opt/FloatIn.hs
</a>
</li>
<li class="file-stats">
<a href="#bac3d5159a5688007de3aa3f5c4e50569677b347" style="color: #1068bf;">
compiler/GHC/Core/Opt/OccurAnal.hs
</a>
</li>
<li class="file-stats">
<a href="#89a2e0e1a3095c7a42b10f2819049908908080e8" style="color: #1068bf;">
compiler/GHC/Core/Unify.hs
</a>
</li>
<li class="file-stats">
<a href="#d79a8a61508cb6c5f38a23ab2b691bb77306f672" style="color: #1068bf;">
compiler/GHC/CoreToStg.hs
</a>
</li>
<li class="file-stats">
<a href="#9a679a2680ef6061397f1987091ea9f96ffe095d" style="color: #1068bf;">
compiler/GHC/Driver/Main.hs
</a>
</li>
<li class="file-stats">
<a href="#6bdd5abc649727f2a802bc96ce5c276de19d3726" style="color: #1068bf;">
compiler/GHC/HsToCore/Expr.hs
</a>
</li>
<li class="file-stats">
<a href="#bf951467d4a9aa443cb109cb4c84a2891945649b" style="color: #1068bf;">
compiler/GHC/Parser.y
</a>
</li>
<li class="file-stats">
<a href="#af762064d779f7308dd415966c974f27d14f9943" style="color: #1068bf;">
compiler/GHC/Rename/Bind.hs
</a>
</li>
<li class="file-stats">
<a href="#e4b9d5e9d2de37561bfd06a2c97a5c924a1bab76" style="color: #1068bf;">
compiler/GHC/Tc/Errors.hs
</a>
</li>
<li class="file-stats">
<a href="#ad440013ca2a3a7accc3edc7f7807446b7b079c2" style="color: #1068bf;">
compiler/GHC/Tc/Instance/Typeable.hs
</a>
</li>
<li class="file-stats">
<a href="#008cbdb6517410ea9376b7760ea49a9a4f61ed1d" style="color: #1068bf;">
compiler/cbits/keepCAFsForGHCi.c
</a>
</li>
<li class="file-stats">
<a href="#6846a4633a1df62b15f368e7e22420844e3c6352" style="color: #1068bf;">
compiler/ghc.mk
</a>
</li>
<li class="file-stats">
<a href="#87db583be5c13c1f7b3c958b10e03d67b6a2ca06" style="color: #1068bf;">
configure.ac
</a>
</li>
<li class="file-stats">
<a href="#d87dfc77856eeaef6134e28336290ddcbcf18d7d" style="color: #1068bf;">
docs/users_guide/9.2.1-notes.rst
</a>
</li>
<li class="file-stats">
<a href="#bba63262698bee75c95f08befb25506f0f1a3287" style="color: #1068bf;">
<span class="new-file">
+
docs/users_guide/9.2.6-notes.rst
</span>
</a>
</li>
<li class="file-stats">
<a href="#04359c28c9e4de11d44a0c6ab10e9245d68ee640" style="color: #1068bf;">
docs/users_guide/bugs.rst
</a>
</li>
<li class="file-stats">
<a href="#96a304b83d0bf4600831c1a4fbfe7fd74edeee69" style="color: #1068bf;">
docs/users_guide/release-notes.rst
</a>
</li>
<li class="file-stats">
<a href="#e81d7ebc189936de64e2d268521bb028fb18b256" style="color: #1068bf;">
hadrian/src/Settings/Flavours/Performance.hs
</a>
</li>
<li class="file-stats">
<a href="#070171e7e38216085c4ab5a6c13007583f941f22" style="color: #1068bf;">
includes/rts/Threads.h
</a>
</li>
<li class="file-stats">
<a href="#ccb6db036bae2c1242147ab8e03f3410502feba9" style="color: #1068bf;">
libraries/bytestring
</a>
</li>
<li class="file-stats">
<a href="#97f10ff6d3080a1528fa6a08128bf8a954416ec5" style="color: #1068bf;">
libraries/ghc-bignum/gmp/gmp-tarballs
</a>
</li>
<li class="file-stats">
<a href="#c44e2af475fe830fa55a21d7add952c42cd57139" style="color: #1068bf;">
<span class="new-file">
+
m4/fp_ld_no_fixup_chains.m4
</span>
</a>
</li>
<li class="file-stats">
<a href="#33249795fee267712d5c3a7ecfa9f2edea260401" style="color: #1068bf;">
rts/Capability.c
</a>
</li>
<li class="file-stats">
<a href="#62ec5569a8af1e443ae952b393d15b9dd1cea199" style="color: #1068bf;">
rts/Capability.h
</a>
</li>
<li class="file-stats">
<a href="#f639149fde351603cc3df9c8c4ba87744bcfc523" style="color: #1068bf;">
rts/Messages.h
</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/74ca6191fa0dbbe8cee3dc53741b8d59fbf16b09...5383016c78fe4b2555e0aae9248bea5b42f67a78" 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>