<!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;">
Matthew Pickering pushed to branch wip/hackage-bindist
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/9ab31f42da8796363187e387c4085e8c9197f4e5" style="color: #1068bf;">9ab31f42</a></strong>
<div>
<span>by Sylvain Henry</span>
<i>at 2022-10-26T09:32:20+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;'>Testsuite: more precise test options

Necessary for newer cross-compiling backends (JS, Wasm) that don't
support TH yet.
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/f60a1a62bf88ec787a5b5d1725129a24b6b81f4a" style="color: #1068bf;">f60a1a62</a></strong>
<div>
<span>by Vladislav Zavialov</span>
<i>at 2022-10-26T12: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;'>Use TcRnVDQInTermType in noNestedForallsContextsErr (#20115)

When faced with VDQ in the type of a term, GHC generates the following
error message:

        Illegal visible, dependent quantification in the type of a term
        (GHC does not yet support this)

Prior to this patch, there were two ways this message could have been
generated and represented:

        1. with the dedicated constructor TcRnVDQInTermType
            (see check_type in GHC.Tc.Validity)
        2. with the transitional constructor TcRnUnknownMessage
            (see noNestedForallsContextsErr in GHC.Rename.Utils)

Not only this led to duplication of code generating the final SDoc,
it also made it tricky to track the origin of the error message.

This patch fixes the problem by using TcRnVDQInTermType exclusively.
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/ecf150ac12a47e13ec78a954081bacfce7a2a83e" style="color: #1068bf;">ecf150ac</a></strong>
<div>
<span>by Matthew Pickering</span>
<i>at 2022-10-27T12:26: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;'>Add test for #22162
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/539b5cc5e0384bd9345b2a2c0edeec9872600b5c" style="color: #1068bf;">539b5cc5</a></strong>
<div>
<span>by Matthew Pickering</span>
<i>at 2022-10-27T12:33:15+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: Add job to test interface file determinism guarantees

In this job we can run on every commit we add a test which builds the
Cabal library twice and checks that the ABI hash and interface hash is
stable across the two builds.

* We run the test 20 times to try to weed out any race conditions due to
  `-j`
* We run the builds in different temporary directories to try to weed
  out anything related to build directory affecting ABI or interface
  file hash.

Fixes #22180
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/eefe67ffa2379de41fb5131aa0080bba6ea9d92e" style="color: #1068bf;">eefe67ff</a></strong>
<div>
<span>by Matthew Pickering</span>
<i>at 2022-10-27T12:33:15+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: Add job for testing interface stability across builds

The idea is that both the bindists should product libraries with the
same ABI and interface hash.
So the job checks with ghc-pkg to make sure the computed ABI
is the same.

In future this job can be extended to check for the other facets of
interface determinism.

Fixes #22180
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/7d08f651f8ebc27201e4983b8f859a57f2a96ef5" style="color: #1068bf;">7d08f651</a></strong>
<div>
<span>by Matthew Pickering</span>
<i>at 2022-10-27T12:33:15+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;'>backpack: Be more careful when adding together ImportAvails

There was some code in the signature merging logic which added together
the ImportAvails of the signature and the signature which was merged
into it. This had the side-effect of making the merged signature depend
on the signature (via a normal module dependency). The intention was to
propagate orphan instances through the merge but this also messed up
recompilation logic because we shouldn't be attempting to load B.hi when
mergeing it.

The fix is to just combine the part of ImportAvails that we intended to
(transitive info, orphan instances and type family instances) rather
than the whole thing.
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/bd523e6da2ace750c3ad275a3bce254b96962b45" style="color: #1068bf;">bd523e6d</a></strong>
<div>
<span>by Matthew Pickering</span>
<i>at 2022-10-27T12:33:15+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 mk_mod_usage_info if the interface file is not already loaded

In #22217 it was observed that the order modules are compiled in affects
the contents of an interface file. This was because a module dependended
on another module indirectly, via a re-export but the interface file for
this module was never loaded because the symbol was never used in the
file.

If we decide that we depend on a module then we jolly well ought to
record this fact in the interface file! Otherwise it could lead to very
subtle recompilation bugs if the dependency is not tracked and the
module is updated.

Therefore the best thing to do is just to make sure the file is loaded
by calling the `loadSysInterface` function.  This first checks the
caches (like we did before) but then actually goes to find the interface
on disk if it wasn't loaded.

Fixes #22217
</pre>
</li>
</ul>
<h4 style="margin-top: 10px; margin-bottom: 10px;">30 changed files:</h4>
<ul>
<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="#dd79b5199bc3b425c4536c633b39006df111a7ef" style="color: #1068bf;">
compiler/GHC/HsToCore.hs
</a>
</li>
<li class="file-stats">
<a href="#74a7b3677ea9cb2138e0b682ce38fd67dbf57c14" style="color: #1068bf;">
compiler/GHC/HsToCore/Usage.hs
</a>
</li>
<li class="file-stats">
<a href="#4ed0dc87b8bdd9324e8a181cff15caa104b9e58c" style="color: #1068bf;">
compiler/GHC/Iface/Make.hs
</a>
</li>
<li class="file-stats">
<a href="#a8e6b17fc507589522323d8dd20d9713e8c06760" style="color: #1068bf;">
compiler/GHC/Iface/Recomp.hs
</a>
</li>
<li class="file-stats">
<a href="#7dd1cd0f6f2164a14c83d9aa564dd32bc30e447a" style="color: #1068bf;">
compiler/GHC/Rename/Module.hs
</a>
</li>
<li class="file-stats">
<a href="#939d24c1002dc322659c1f67c9f3d2db2ae31dd4" style="color: #1068bf;">
compiler/GHC/Rename/Utils.hs
</a>
</li>
<li class="file-stats">
<a href="#1dd9c7a6bbc222c976a6ec1c4b772232ae60f7e5" style="color: #1068bf;">
compiler/GHC/Tc/Errors/Ppr.hs
</a>
</li>
<li class="file-stats">
<a href="#cdba811872892f235fe7059df1a6c538fba60816" style="color: #1068bf;">
compiler/GHC/Tc/Errors/Types.hs
</a>
</li>
<li class="file-stats">
<a href="#5d7c5ef0541bd4c1c950ecc95edf95171d20f538" style="color: #1068bf;">
compiler/GHC/Tc/Utils/Backpack.hs
</a>
</li>
<li class="file-stats">
<a href="#1db07ed8cd9bab6b217a8f5a140176d3cb8672fd" style="color: #1068bf;">
compiler/GHC/Tc/Validity.hs
</a>
</li>
<li class="file-stats">
<a href="#c591f85f122007bac88228c5ff6fd76b40e6a811" style="color: #1068bf;">
testsuite/driver/testlib.py
</a>
</li>
<li class="file-stats">
<a href="#ee5d6a0e4c45c1354026039f5474c6b1b006503e" style="color: #1068bf;">
testsuite/tests/annotations/should_fail/all.T
</a>
</li>
<li class="file-stats">
<a href="#4e6ab12d4a7c4f831ae65d3ec50733a1360fb551" style="color: #1068bf;">
testsuite/tests/annotations/should_run/all.T
</a>
</li>
<li class="file-stats">
<a href="#0eb86cba1aecaec6a26e2055f3f19c14a962b052" style="color: #1068bf;">
testsuite/tests/backpack/should_fail/T19244a.stderr
</a>
</li>
<li class="file-stats">
<a href="#d1a5060fe69a681ff62e8b685304aa1bf1781386" style="color: #1068bf;">
testsuite/tests/backpack/should_run/all.T
</a>
</li>
<li class="file-stats">
<a href="#922f7e57344242ed16a967fca4621bdb0409c022" style="color: #1068bf;">
testsuite/tests/codeGen/should_compile/T17904.hs
</a>
</li>
<li class="file-stats">
<a href="#f19295d1d6a14b5b6a8587fb4809de974b9520e3" style="color: #1068bf;">
testsuite/tests/codeGen/should_run/T20137/all.T
</a>
</li>
<li class="file-stats">
<a href="#2541f3b82d99a4b3c0f203912a498f32a57af422" style="color: #1068bf;">
testsuite/tests/codeGen/should_run/T20735/all.T
</a>
</li>
<li class="file-stats">
<a href="#b9bba9766faf563ab195fb1402f14fa78ad5c66f" style="color: #1068bf;">
testsuite/tests/codeGen/should_run/all.T
</a>
</li>
<li class="file-stats">
<a href="#30ea54d6cbb77049058cf5c9ffb25b58113e6967" style="color: #1068bf;">
testsuite/tests/corelint/all.T
</a>
</li>
<li class="file-stats">
<a href="#a4ff33ccde330caaa403f371defa5ddc5ad10c84" style="color: #1068bf;">
testsuite/tests/dependent/should_compile/all.T
</a>
</li>
<li class="file-stats">
<a href="#acf377a6048463af1be7194687028ceca893b4d0" style="color: #1068bf;">
testsuite/tests/dependent/should_fail/T16326_Fail6.stderr
</a>
</li>
<li class="file-stats">
<a href="#93c64333f070b164541735b51a8744759d526b14" style="color: #1068bf;">
testsuite/tests/dependent/should_fail/T16326_Fail8.stderr
</a>
</li>
<li class="file-stats">
<a href="#c8d328bc3317561862c3672be6d12dce45ebd21d" style="color: #1068bf;">
testsuite/tests/dependent/should_fail/T18271.stderr
</a>
</li>
<li class="file-stats">
<a href="#e7bc29da08da2be1b3bd264c751322dc3e8c1905" style="color: #1068bf;">
testsuite/tests/deriving/should_compile/all.T
</a>
</li>
<li class="file-stats">
<a href="#2b54e6dcb8e1629b82de3d05f46f5ffc0a1bb347" style="color: #1068bf;">
<span class="new-file">
+
testsuite/tests/determinism/determ023/A.hs
</span>
</a>
</li>
<li class="file-stats">
<a href="#e270f3ef76ca791512fb3a94e8d0149cf647bb6e" style="color: #1068bf;">
<span class="new-file">
+
testsuite/tests/determinism/determ023/Makefile
</span>
</a>
</li>
<li class="file-stats">
<a href="#255334741cd030e99f14855064ac5a196f64a639" style="color: #1068bf;">
<span class="new-file">
+
testsuite/tests/determinism/determ023/all.T
</span>
</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/1880a2f97bf09c7b82e14d6b1480e77e5e286263...bd523e6da2ace750c3ad275a3bce254b96962b45" 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>