<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN" "http://www.w3.org/TR/REC-html40/loose.dtd">
<html lang="en">
<head>
<meta content="text/html; charset=US-ASCII" http-equiv="Content-Type">
<title>
GitLab
</title>



<style>img {
max-width: 100%; height: auto;
}
</style>
</head>
<body>
<div class="content">

<h3>
Ryan Scott pushed to branch wip/T18914
at <a href="https://gitlab.haskell.org/ghc/ghc">Glasgow Haskell Compiler / GHC</a>
</h3>
<h4>
Commits:
</h4>
<ul>
<li>
<strong><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/52114fa0f97805d4c4924bc3abce1a8b0fc7a5c6">52114fa0</a></strong>
<div>
<span>by Sylvain Henry</span>
<i>at 2020-11-16T11:48:47+01:00</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">Add Addr# atomic primops (#17751)

This reuses the codegen used for ByteArray#'s atomic primops.
</pre>
</li>
<li>
<strong><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/8150f6546e6fd0006252e245d5697f13ffd8ce3e">8150f654</a></strong>
<div>
<span>by Sebastian Graf</span>
<i>at 2020-11-18T23:38:40-05:00</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">PmCheck: Print types of uncovered patterns (#18932)

In order to avoid confusion as in #18932, we display the type of the
match variables in the non-exhaustiveness warning, e.g.

```
T18932.hs:14:1: warning: [-Wincomplete-patterns]
    Pattern match(es) are non-exhaustive
    In an equation for ‘g’:
        Patterns of type  ‘T a’, ‘T a’, ‘T a’ not matched:
            (MkT2 _) (MkT1 _) (MkT1 _)
            (MkT2 _) (MkT1 _) (MkT2 _)
            (MkT2 _) (MkT2 _) (MkT1 _)
            (MkT2 _) (MkT2 _) (MkT2 _)
            ...
   |
14 | g (MkT1 x) (MkT1 _) (MkT1 _) = x
   | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
```

It also allows us to omit the type signature on wildcard matches which
we previously showed in only some situations, particularly
`-XEmptyCase`.

Fixes #18932.
</pre>
</li>
<li>
<strong><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/6d08443b3dd6a5343b6485f19a68eae158594446">6d08443b</a></strong>
<div>
<span>by Ryan Scott</span>
<i>at 2020-11-19T06:12:01-05:00</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">Use HsOuterExplicit in instance sigs in deriving-generated code

Issue #18914 revealed that `GeneralizedNewtypeDeriving` would generate code
that mentions unbound type variables, which is dangerously fragile. The
problem (and fix) is described in the new `Wrinkle: Use HsOuterExplicit`
in `Note [GND and QuantifiedConstraints]`. The gist of it: make sure to
put the top-level `forall`s in `deriving`-generated instance signatures in an
`HsOuterExplicit` to ensure that they scope over the bodies of methods
correctly. A side effect of this process is that it will expand any type
synonyms in the instance signature, which will surface any `forall`s that
are hidden underneath type synonyms (such as in the test case for #18914).

While I was in town, I also performed some maintenance on `NewHsTypeX`, which
powers `GeneralizedNewtypeDeriving`:

* I renamed `NewHsTypeX` to `HsCoreTy`, which more accurately describes its
  intended purpose (#15706). I also made `HsCoreTy` a type synonym instead of
  a newtype, as making it a distinct data type wasn't buying us much.
* To make sure that mistakes similar to #18914 do not occur later, I added an
  additional validity check when renaming `HsCoreTy`s that complains if an
  `HsCoreTy`s contains an out-of-scope type variable. See the new
  `Note [Renaming HsCoreTys]` in `GHC.Rename.HsType` for the details.

Fixes #15706. Fixes #18914. Bumps the `haddock` submodule.
</pre>
</li>
</ul>
<h4>30 changed files:</h4>
<ul>
<li class="file-stats">
<a href="#451725cc4e5d443a3b7c2adcdf224840f953b7e2">
compiler/GHC/Builtin/primops.txt.pp
</a>
</li>
<li class="file-stats">
<a href="#2bae5947e9412f6deebf4db7dcb89d780913130f">
compiler/GHC/CmmToAsm/X86/CodeGen.hs
</a>
</li>
<li class="file-stats">
<a href="#018be522bc4813b147a1525e4f96a7a493207d96">
compiler/GHC/Hs/Type.hs
</a>
</li>
<li class="file-stats">
<a href="#36e7b8d61b4fae8f65fca3984d01eb4076712f2b">
compiler/GHC/HsToCore/Pmc.hs
</a>
</li>
<li class="file-stats">
<a href="#092dafb784a8c4eeb7ab4572ab3ef35308020a00">
compiler/GHC/HsToCore/Pmc/Ppr.hs
</a>
</li>
<li class="file-stats">
<a href="#892acbb198a9095c917740d3c1297b56df4e3b7e">
compiler/GHC/Rename/HsType.hs
</a>
</li>
<li class="file-stats">
<a href="#d12a108e34fe83acc9c99357ae841e22a0af0a23">
compiler/GHC/StgToCmm/Prim.hs
</a>
</li>
<li class="file-stats">
<a href="#3aa56839e36b2219f9ad54f5646ef3005da9c672">
compiler/GHC/Tc/Deriv/Generate.hs
</a>
</li>
<li class="file-stats">
<a href="#9355bef855426caf5f526925edf351b20f9a86c4">
compiler/GHC/Tc/Gen/HsType.hs
</a>
</li>
<li class="file-stats">
<a href="#eade747fa0a15693c67617629e286714fce958e4">
compiler/GHC/Tc/Gen/Sig.hs
</a>
</li>
<li class="file-stats">
<a href="#e63425e031ffe9350ee6b1687e506aaea75d11e1">
compiler/GHC/Tc/TyCl/Instance.hs
</a>
</li>
<li class="file-stats">
<a href="#bbe4b46a634b9ae49dea735f1588f8e33ef7d3b8">
testsuite/tests/concurrent/should_run/AtomicPrimops.hs
</a>
</li>
<li class="file-stats">
<a href="#7a555c518213986b6868cb81e009cfc11a6a1320">
testsuite/tests/concurrent/should_run/AtomicPrimops.stdout
</a>
</li>
<li class="file-stats">
<a href="#815e13a407264e476d8933d9cf32fbf0b0449950">
testsuite/tests/deSugar/should_compile/DsStrictWarn.stderr
</a>
</li>
<li class="file-stats">
<a href="#fa9529679b777468581f7638280c73ef043c5207">
testsuite/tests/deSugar/should_compile/GadtOverlap.stderr
</a>
</li>
<li class="file-stats">
<a href="#269b4ca0e384c634c8a0cfd4896b95034095605b">
testsuite/tests/deSugar/should_compile/T14135.stderr
</a>
</li>
<li class="file-stats">
<a href="#2e9f8086a714d705fb733c294544e4f8f0bd5954">
testsuite/tests/deSugar/should_compile/T14546a.stderr
</a>
</li>
<li class="file-stats">
<a href="#61451fe7934b3888a7836e61f66f3d6ef19f9b28">
testsuite/tests/deSugar/should_compile/T14546d.stderr
</a>
</li>
<li class="file-stats">
<a href="#127239f0179f734be4ae8d2c1b027b2ec3af4427">
testsuite/tests/deSugar/should_compile/T5455.stderr
</a>
</li>
<li class="file-stats">
<a href="#a15757e4a437a9e72b3056f4bb4e65b4b177962f">
testsuite/tests/dependent/should_compile/KindEqualities.stderr
</a>
</li>
<li class="file-stats">
<a href="#d67e8c37b660b851784cafe36eb0327428012ff0">
testsuite/tests/deriving/should_compile/T14578.stderr
</a>
</li>
<li class="file-stats">
<a href="#6c3a9e0a20f8145c45cc4c63b44430dd29ba7555">
<span class="new-file">
+
testsuite/tests/deriving/should_compile/T18914.hs
</span>
</a>
</li>
<li class="file-stats">
<a href="#e7bc29da08da2be1b3bd264c751322dc3e8c1905">
testsuite/tests/deriving/should_compile/all.T
</a>
</li>
<li class="file-stats">
<a href="#34dda212401dfe8e199ea5e3acd95eb74820453a">
testsuite/tests/driver/T8101.stderr
</a>
</li>
<li class="file-stats">
<a href="#5ffbec2a5f4222fa868b5fbb7af474d18432caca">
testsuite/tests/driver/T8101b.stderr
</a>
</li>
<li class="file-stats">
<a href="#67ad51aec494a30be719ad186a33e70d5b33869a">
testsuite/tests/driver/werror.stderr
</a>
</li>
<li class="file-stats">
<a href="#0cc2a36d5b50ce2c14849357d8d1de9228808598">
testsuite/tests/ghci/prog018/prog018.stdout
</a>
</li>
<li class="file-stats">
<a href="#23d045fc00c01edf5e9c38a27d472f88d86f6f4a">
testsuite/tests/parser/should_compile/T15139.stderr
</a>
</li>
<li class="file-stats">
<a href="#064e47b83f61b4ac25cf64669a030b956e09bef8">
testsuite/tests/pmcheck/complete_sigs/T13964.stderr
</a>
</li>
<li class="file-stats">
<a href="#0d2b64efff5222b8e742234cd24459060efd5c7b">
testsuite/tests/pmcheck/complete_sigs/T14059a.stderr
</a>
</li>
</ul>
<h5>The diff was not included because it is too large.</h5>

</div>
<div class="footer" style="margin-top: 10px;">
<p style="font-size: small; color: #666;">

<br>
<a href="https://gitlab.haskell.org/ghc/ghc/-/compare/e3ad23abd9f554df383eef9cd293505911b58ac2...6d08443b3dd6a5343b6485f19a68eae158594446">View it on GitLab</a>.
<br>
You're receiving this email because of your account on gitlab.haskell.org.
If you'd like to receive fewer emails, you can
adjust your notification settings.



</p>
</div>
</body>
</html>