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



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

<h3>
Ben Gamari pushed to branch wip/no-coholes
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/53ff2cd0c49735e8f709ac8a5ceab68483eb89df">53ff2cd0</a></strong>
<div>
<span>by Richard Eisenberg</span>
<i>at 2020-03-17T13:46:57Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">Fix #17021 by checking more return kinds

All the details are in new Note [Datatype return kinds] in
TcTyClsDecls.

Test case: typecheck/should_fail/T17021{,b}
           typecheck/should_compile/T17021a

Updates haddock submodule
</pre>
</li>
<li>
<strong><a href="https://gitlab.haskell.org/ghc/ghc/commit/528df8ecb4e2f9c78b1ae4ab7ff8230644e9b643">528df8ec</a></strong>
<div>
<span>by Sylvain Henry</span>
<i>at 2020-03-18T14:06:43Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">Modules: Core operations (#13009)
</pre>
</li>
<li>
<strong><a href="https://gitlab.haskell.org/ghc/ghc/commit/4e8a71c1138b587dfbab8a1823b3f7fa6f0166bd">4e8a71c1</a></strong>
<div>
<span>by Richard Eisenberg</span>
<i>at 2020-03-18T14:07:19Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">Add release note about fix to #16502.

We thought we needed to update the manual, but the fix for #16502
actually brings the implementation in line with the manual. So we
just alert users of how to update their code.
</pre>
</li>
<li>
<strong><a href="https://gitlab.haskell.org/ghc/ghc/commit/5cbf9934c59f7726781cc4cccf4748a5c09c4997">5cbf9934</a></strong>
<div>
<span>by Andreas Klebinger</span>
<i>at 2020-03-19T04:39:27Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">Update "GHC differences to the FFI Chapter" in user guide.

The old entry had a heavy focus on how things had been. Which is
not what I generally look for in a user guide.

I also added a small section on behaviour of nested safe ffi calls.

[skip-ci]
</pre>
</li>
<li>
<strong><a href="https://gitlab.haskell.org/ghc/ghc/commit/b03fd3bcd4ff14aed2942275c3b0db5392dc913c">b03fd3bc</a></strong>
<div>
<span>by Sebastian Graf</span>
<i>at 2020-03-19T04:40:06Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">PmCheck: Use ConLikeSet to model negative info

In #17911, Simon recognised many warnings stemming from over-long list
unions while coverage checking Cabal's `LicenseId` module.

This patch introduces a new `PmAltConSet` type which uses a `UniqDSet`
instead of an association list for `ConLike`s. For `PmLit`s, it will
still use an assocation list, though, because a similar map data
structure would entail a lot of busy work.

Fixes #17911.
</pre>
</li>
<li>
<strong><a href="https://gitlab.haskell.org/ghc/ghc/commit/1cd5a2118bed700d42350ef94fb58d7e926e0235">1cd5a211</a></strong>
<div>
<span>by Richard Eisenberg</span>
<i>at 2020-03-19T13:23:43Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">Simplify treatment of heterogeneous equality

Previously, if we had a [W] (a :: k1) ~ (rhs :: k2), we would
spit out a [D] k1 ~ k2 and part the W as irreducible, hoping for
a unification. But we needn't do this. Instead, we now spit out
a [W] co :: k2 ~ k1 and then use co to cast the rhs of the original
Wanted. This means that we retain the connection between the
spat-out constraint and the original.

The problem with this new approach is that we cannot use the
casted equality for substitution; it's too like wanteds-rewriting-
wanteds. So, we forbid CTyEqCans that mention coercion holes.

All the details are in Note [Equalities with incompatible kinds]
in TcCanonical.

There are a few knock-on effects, documented where they occur.

While debugging an error in this patch, Simon and I ran into
infelicities in how patterns and matches are printed; we made
small improvements.

This patch includes mitigations for #17828, which causes spurious
pattern-match warnings. When #17828 is fixed, these lines should
be removed.
</pre>
</li>
</ul>
<h4>30 changed files:</h4>
<ul>
<li class="file-stats">
<a href="#182d6a315e784018aa9c8b2ad736036b97bd5d48">
compiler/GHC/Core.hs
</a>
</li>
<li class="file-stats">
<a href="#783e5dae6e86931f06700fc088fb7d48c8a07386">
compiler/GHC/Core/Coercion.hs
</a>
</li>
<li class="file-stats">
<a href="#f10ed7a2470454dfdd8691a08beba67d8b78ee70">
compiler/GHC/Core/Coercion/Axiom.hs
</a>
</li>
<li class="file-stats">
<a href="#91648438362e5a35363d2bb7abb04016dedd7d7e">
compiler/GHC/Core/FamInstEnv.hs
</a>
</li>
<li class="file-stats">
<a href="#36a42448a83a9d1f6df8475f03ead2eed199dd8e">
compiler/GHC/Core/Lint.hs
</a>
</li>
<li class="file-stats">
<a href="#35cff95f9f44690fc50b44bbe8ac3c554c7d5a5e">
compiler/GHC/Core/Make.hs
</a>
</li>
<li class="file-stats">
<a href="#e5041b26fef1c846489ee5e1c883bc3d52cc775b">
compiler/simplCore/CSE.hs

compiler/GHC/Core/Op/CSE.hs
</a>
</li>
<li class="file-stats">
<a href="#3bb380152f7a13d926e48fe380cdce86d60cf92e">
compiler/simplCore/CallArity.hs

compiler/GHC/Core/Op/CallArity.hs
</a>
</li>
<li class="file-stats">
<a href="#7685262a8a145335ec922d0a92ebb4a789bf0a3e">
compiler/prelude/PrelRules.hs

compiler/GHC/Core/Op/ConstantFold.hs
</a>
</li>
<li class="file-stats">
<a href="#71a1d84a4a197005a392c1b5efa3eaab370d404b">
compiler/stranal/CprAnal.hs

compiler/GHC/Core/Op/CprAnal.hs
</a>
</li>
<li class="file-stats">
<a href="#1419e35d2402c23209a644b054c5a67aa4463451">
compiler/stranal/DmdAnal.hs

compiler/GHC/Core/Op/DmdAnal.hs
</a>
</li>
<li class="file-stats">
<a href="#187bf3c2475a80fadeea64106cb7cf84a228c5b8">
compiler/simplCore/Exitify.hs

compiler/GHC/Core/Op/Exitify.hs
</a>
</li>
<li class="file-stats">
<a href="#c91bc01a4374fd510bfd57e3818d888393902e29">
compiler/simplCore/FloatIn.hs

compiler/GHC/Core/Op/FloatIn.hs
</a>
</li>
<li class="file-stats">
<a href="#e1d5e8c787a59117885861198e4c24effc067d7a">
compiler/simplCore/FloatOut.hs

compiler/GHC/Core/Op/FloatOut.hs
</a>
</li>
<li class="file-stats">
<a href="#225664ec66ad2a4158da295cbc31b7e2c5808bdb">
compiler/simplCore/LiberateCase.hs

compiler/GHC/Core/Op/LiberateCase.hs
</a>
</li>
<li class="file-stats">
<a href="#2c46e128f5d223ead314574438b750e7d87194f0">
compiler/simplCore/CoreMonad.hs

compiler/GHC/Core/Op/Monad.hs
</a>
</li>
<li class="file-stats">
<a href="#bb009683fed637eb9645156acfd483d41af83f10">
compiler/simplCore/CoreMonad.hs-boot

compiler/GHC/Core/Op/Monad.hs-boot
</a>
</li>
<li class="file-stats">
<a href="#9e2ce77a946950b2d19d75c55f671c048a5645bd">
compiler/simplCore/OccurAnal.hs

compiler/GHC/Core/Op/OccurAnal.hs
</a>
</li>
<li class="file-stats">
<a href="#de7d9d388885ce6e3a45a39fac6e2c36a7f94f69">
compiler/simplCore/SetLevels.hs

compiler/GHC/Core/Op/SetLevels.hs
</a>
</li>
<li class="file-stats">
<a href="#e3fe84599ec044fc7aacb062dada32b067732fc8">
compiler/simplCore/Simplify.hs

compiler/GHC/Core/Op/Simplify.hs
</a>
</li>
<li class="file-stats">
<a href="#c771c9d0f7d7409d86e6cf310f1a054c6ffc53bd">
compiler/simplCore/SimplCore.hs

compiler/GHC/Core/Op/Simplify/Driver.hs
</a>
</li>
<li class="file-stats">
<a href="#f5d3277e26ee59b6887797a464b2745b38dd3c52">
compiler/simplCore/SimplEnv.hs

compiler/GHC/Core/Op/Simplify/Env.hs
</a>
</li>
<li class="file-stats">
<a href="#a7f383a05314501084d5d684b61442ce52cd6146">
compiler/simplCore/SimplMonad.hs

compiler/GHC/Core/Op/Simplify/Monad.hs
</a>
</li>
<li class="file-stats">
<a href="#b73ea2c5744c45878c8939cf97da70308baa7e48">
compiler/simplCore/SimplUtils.hs

compiler/GHC/Core/Op/Simplify/Utils.hs
</a>
</li>
<li class="file-stats">
<a href="#6fd97a6cb77fefdde9bb59d009ce990a69e83d97">
compiler/specialise/SpecConstr.hs

compiler/GHC/Core/Op/SpecConstr.hs
</a>
</li>
<li class="file-stats">
<a href="#d52bc1e90d7432064a2998de2a2751b6fecb7680">
compiler/specialise/Specialise.hs

compiler/GHC/Core/Op/Specialise.hs
</a>
</li>
<li class="file-stats">
<a href="#6366061090330659c9edb95514cdc1b33b998359">
compiler/simplCore/SAT.hs

compiler/GHC/Core/Op/StaticArgs.hs
</a>
</li>
<li class="file-stats">
<a href="#90cd28e7814e722dce869e8376f48cb85b968791">
compiler/GHC/Core/Op/Tidy.hs
</a>
</li>
<li class="file-stats">
<a href="#78f9bff92a7c86d0c1d22ff3449f963bf73f2aab">
compiler/stranal/WorkWrap.hs

compiler/GHC/Core/Op/WorkWrap.hs
</a>
</li>
<li class="file-stats">
<a href="#12b764912308026ebf73c88bcb2f60c19c2eaaf9">
compiler/stranal/WwLib.hs

compiler/GHC/Core/Op/WorkWrap/Lib.hs
</a>
</li>
</ul>
<h5>The diff was not included because it is too large.</h5>

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

<br>
<a href="https://gitlab.haskell.org/ghc/ghc/compare/11ea299ea4f079c5e2ec7eb859dcde6f900902b5...1cd5a2118bed700d42350ef94fb58d7e926e0235">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>