<!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 ghc-8.10
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/10f80ca8a30f73baf1e53bd8304b61786a2f646e">10f80ca8</a></strong>
<div>
<span>by Ben Gamari</span>
<i>at 2020-05-30T09:56:23-04:00</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">iserv: Don't pass --export-dynamic on FreeBSD

This is definitely a hack but it's probably the best we can do for now.
Hadrian does the right thing here by passing --export-dynamic only to
the linker.

(cherry picked from commit 2290eb02cf95e9cfffcb15fc9c593d5ef79c75d9)
</pre>
</li>
<li>
<strong><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/94562bbfb7107ef728a7f828bcbf4b4e8d07d66e">94562bbf</a></strong>
<div>
<span>by Ben Gamari</span>
<i>at 2020-05-30T09:56:30-04:00</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">hadrian: Use --export-dynamic when linking iserv

As noticed in #17962, the make build system currently does this (see
3ce0e0ba) but the change was never ported to Hadrian.

(cherry picked from commit eba58110538686d8fe57d5dd372624b50f1fa2b7)
</pre>
</li>
<li>
<strong><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/b3330c2dcbc778dc8811cf8e0b1e1bcdda6f2b60">b3330c2d</a></strong>
<div>
<span>by Ben Gamari</span>
<i>at 2020-05-30T09:58:52-04:00</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">Coverage: Don't produce ModBreaks if not HscInterpreted

emptyModBreaks contains a bottom and consequently it's important that we
don't use it unless necessary.

(cherry picked from commit f684a7d505f19bd78f178e01bbd8e4467aaa00ea)
</pre>
</li>
<li>
<strong><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/295735ae36c5d7d02cbd61d6312a15d4381fe186">295735ae</a></strong>
<div>
<span>by Ben Gamari</span>
<i>at 2020-05-30T10:00:15-04:00</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">Bump process submodule

Fixes #17926.
</pre>
</li>
<li>
<strong><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/285f92bba2f3b5478a3c9418a9afed8648fef838">285f92bb</a></strong>
<div>
<span>by Sylvain Henry</span>
<i>at 2020-05-30T10:03:03-04:00</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">RTS: workaround a Linux kernel bug in timerfd

Reading a timerfd may return 0: https://lkml.org/lkml/2019/8/16/335.

This is currently undocumented behavior and documentation "won't happen
anytime soon" (https://lkml.org/lkml/2020/2/13/295).

With this patch, we just ignore the result instead of crashing. It may
fix #18033 but we can't be sure because we don't have enough
information.

See also this discussion about the kernel bug:
https://github.com/Azure/sonic-swss-common/pull/302/files/1f070e7920c2e5d63316c0105bf4481e73d72dc9

(cherry picked from commit 8ea37b01b6ab16937f7b528b6bbae9fade9f1361)
</pre>
</li>
<li>
<strong><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/88fd48298f04fa245ac388fdd1cdd976f4b34baa">88fd4829</a></strong>
<div>
<span>by Ryan Scott</span>
<i>at 2020-05-31T18:03:38-04:00</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">Add orderingTyCon to wiredInTyCons (#18185)

`Ordering` needs to be wired in for use in the built-in `CmpNat` and
`CmpSymbol` type families, but somehow it was never added to the list
of `wiredInTyCons`, leading to the various oddities observed
in #18185. Easily fixed by moving `orderingTyCon` from
`basicKnownKeyNames` to `wiredInTyCons`.

Fixes #18185.

(cherry picked from commit 6ca3d6a6c19dcd885f3b0beeda192cd90e83e0bd)
</pre>
</li>
<li>
<strong><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/a6befeb319a02d765f7c8d226ca518c3254b80f9">a6befeb3</a></strong>
<div>
<span>by Ben Gamari</span>
<i>at 2020-05-31T18:03:38-04:00</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">simplCore: Ignore ticks in rule templates

This fixes #17619, where a tick snuck in to the template of a rule,
resulting in a panic during rule matching. The tick in question was
introduced via post-inlining, as discussed in `Note [Simplifying
rules]`. The solution we decided upon was to simply ignore ticks in the
rule template, as discussed in `Note [Tick annotations in RULE
matching]`.

Fixes #18162.
Fixes #17619.

(cherry picked from commit dcd6bdcce57430d08b335014625722c487ea08e4)
</pre>
</li>
<li>
<strong><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/fa36474d492f80bc775f9bfa141f731362cc2677">fa36474d</a></strong>
<div>
<span>by Tuan Le</span>
<i>at 2020-05-31T18:03:38-04:00</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">llvmGen: Consider Relocatable read-only data as not constantReferences: #18137

(cherry picked from commit 0004ccb885e534c386ceae21580fc59ec7ad0ede)
</pre>
</li>
<li>
<strong><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/4a73e707dd61f30cc66e27050b10abd9cf4a624b">4a73e707</a></strong>
<div>
<span>by Ben Gamari</span>
<i>at 2020-05-31T18:03:38-04:00</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">rts/CNF: Fix fixup comparison function

Previously we would implicitly convert the difference between two words
to an int, resulting in an integer overflow on 64-bit machines.

Fixes #16992

(cherry picked from commit cf4f1e2f78840d25b132de55bce1e02256334ace)
</pre>
</li>
<li>
<strong><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/4219e9c13f0e64addf208c1defa13b2703beb523">4219e9c1</a></strong>
<div>
<span>by Ryan Scott</span>
<i>at 2020-05-31T18:03:38-04:00</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">Make boxed 1-tuples have known keys

Unlike other tuples, which use special syntax and are "known" by way
of a special `isBuiltInOcc_maybe` code path, boxed 1-tuples do not
use special syntax. Therefore, in order to make sure that the
internals of GHC are aware of the `data Unit a = Unit a` definition
in `GHC.Tuple`, we give `Unit` known keys. For the full details, see
`Note [One-tuples] (Wrinkle: Make boxed one-tuple names have known keys)`
in `GHC.Builtin.Types`.

Fixes #18097.

(cherry picked from commit 518a63d4d7e31e49a81ad66d5e5ccb1f790f6de9)
</pre>
</li>
<li>
<strong><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/761909b96de77073b88947880cab7498489691b2">761909b9</a></strong>
<div>
<span>by Ryan Scott</span>
<i>at 2020-05-31T18:03:38-04:00</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">Create di_scoped_tvs for associated data family instances properly

See `Note [Associated data family instances and di_scoped_tvs]` in
`GHC.Tc.TyCl.Instance`, which explains all of the moving parts.

Fixes #18055.

(cherry picked from commit cd8409c26d4370bf2cdcd76801974e99a9adf7b0)
</pre>
</li>
<li>
<strong><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/30037e6d0cbc741f50577d2ce311fa4f80606fc1">30037e6d</a></strong>
<div>
<span>by Sebastian Graf</span>
<i>at 2020-05-31T18:03:38-04:00</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">PmCheck: Adjust recursion depth for inhabitation test

In #17977, we ran into the reduction depth limit of the typechecker.
That was only a symptom of a much broader issue: The recursion depth
of the coverage checker for trying to instantiate strict fields in the
`nonVoid` test was far too high (100, the `defaultMaxTcBound`).

As a result, we were performing quite poorly on `T17977`.
Short of a proper termination analysis to prove emptyness of a type,
we just arbitrarily default to a much lower recursion limit of 3.

Fixes #17977.

(cherry picked from commit ed58d4fdcbc7b4fa8fbdf3d638a8d53c444ef4f2)
</pre>
</li>
<li>
<strong><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/1666baa6f3963b2d03b774a51d0f2e76ea1205e0">1666baa6</a></strong>
<div>
<span>by Simon Peyton Jones</span>
<i>at 2020-05-31T18:03:38-04:00</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">Improve skolemisation

This patch avoids skolemiseUnboundMetaTyVar making
up a fresh Name when it doesn't need to.

See Note [Skolemising and identity]

Improves error messsages for partial type signatures.

(cherry picked from commit d7002bccd7d131f8ee9b1ddcd83d62262622294d)
</pre>
</li>
<li>
<strong><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/84ba6d2cb35387fe580c5ac47d3498daa0d2be34">84ba6d2c</a></strong>
<div>
<span>by Simon Peyton Jones</span>
<i>at 2020-05-31T18:03:38-04:00</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">Improve pretty-printing for TyConBinders

In particular, show their kinds.

(cherry picked from commit fa37940cd72f82abc460f5c0a5de64dd75cee6ae)
</pre>
</li>
<li>
<strong><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/3527714032fecf4e2cedec3a80b1642dec4224f1">35277140</a></strong>
<div>
<span>by Simon Peyton Jones</span>
<i>at 2020-05-31T18:03:38-04:00</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">Fix scoping of TyCon binders in TcTyClsDecls

This patch fixes #17566 by refactoring the way we decide the final
identity of the tyvars in the TyCons of a possibly-recursive nest
of type and class decls, possibly with associated types.

It's all laid out in
  Note [Swizzling the tyvars before generaliseTcTyCon]

Main changes:

* We have to generalise each decl (with its associated types)
  all at once: TcTyClsDecls.generaliseTyClDecl

* The main new work is done in TcTyClsDecls.swizzleTcTyConBndrs

* The mysterious TcHsSyn.zonkRecTyVarBndrs dies altogether

Other smaller things:

* A little refactoring, moving bindTyClTyVars from tcTyClDecl1
  to tcDataDefn, tcSynRhs, etc.  Clearer, reduces the number of
  parameters

* Reduce the amount of swizzling required.
  Specifically, bindExplicitTKBndrs_Q_Tv doesn't need
    to clone a new Name for the TyVarTv, and not
    cloning means that in the vasly common case,
    swizzleTyConBndrs is a no-op

  In detail:
    Rename newTyVarTyVar --> cloneTyVarTyVar
    Add newTyVarTyTyVar that doesn't clone
    Use the non-cloning newTyVarTyVar in
       bindExplicitTKBndrs_Q_Tv
       Rename newFlexiKindedTyVarTyVar
           --> cloneFlexiKindedTyVarTyVar

* Define new utility function and use it
     HsDecls.familyDeclName ::
        FamilyDecl (GhcPass p) -> IdP (GhcPass p)

Updates haddock submodule.

(cherry picked from commit b9605396f1f1560aea94792646b835cadcb49f45)
</pre>
</li>
<li>
<strong><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/540d5562f323eabdc2b80ba1520be312b88ab8ae">540d5562</a></strong>
<div>
<span>by Ben Gamari</span>
<i>at 2020-06-02T10:07:07-04:00</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">CorePrep: Print type if we fail to split
</pre>
</li>
<li>
<strong><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/26386f0c86455fe63ef38930702b292ccf7b9bac">26386f0c</a></strong>
<div>
<span>by Ben Gamari</span>
<i>at 2020-06-20T15:26:31-04:00</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">gitlab-ci: Introduce DWARF release jobs for Deb10 and Fedora 27

(cherry picked from commit 481e31740672a37c5b3a8924bba7e15c4080bc2e)
</pre>
</li>
<li>
<strong><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/408b67142e2abdaf5866f638ab51ec3e2103d4a9">408b6714</a></strong>
<div>
<span>by Ben Gamari</span>
<i>at 2020-07-15T11:26:48-04:00</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">gitlab-ci: Bump Docker images
</pre>
</li>
<li>
<strong><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/410f53a99b7d63b7874e1597b56602712f71bc96">410f53a9</a></strong>
<div>
<span>by Ben Gamari</span>
<i>at 2020-07-15T11:26:48-04:00</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">hadrian: Eliminate some redundant imports
</pre>
</li>
<li>
<strong><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/e2bed3ee5ff15cdb9759bff4301327f76e58025a">e2bed3ee</a></strong>
<div>
<span>by GHC GitLab CI</span>
<i>at 2020-07-15T11:26:48-04:00</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">Accept testsuite changes
</pre>
</li>
<li>
<strong><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/5018cad4be80f06bd132820d116441ac4e93ac37">5018cad4</a></strong>
<div>
<span>by Kevin Buhr</span>
<i>at 2020-07-15T11:26:48-04:00</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">Add "-Iw" RTS flag for minimum wait between idle GCs (#11134)

This wasn't originally slated for 8.10 but the documentation part of
this patch snuck into the ghc-8.10 branch via a backport. Instead of
backing out the documentation and causing further user confusion I've
opted just to backport this functional change as well.

(cherry picked from commit 859ebdd446eda446d38708a587503c255b58c4c6)
</pre>
</li>
<li>
<strong><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/edc36a9188e7f25ccee06ff2fe0808ededd5f6eb">edc36a91</a></strong>
<div>
<span>by Ben Gamari</span>
<i>at 2020-07-15T11:26:48-04:00</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">user-guide: Add release notes for 8.10.2
</pre>
</li>
<li>
<strong><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/46e3cecaee1c2a68d8a5d02269ba584dcdea2741">46e3ceca</a></strong>
<div>
<span>by Ben Gamari</span>
<i>at 2020-07-15T11:27:30-04:00</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">rts/ProfHeap: Only allocate the Censuses that we need

When not LDV profiling there is no reason to allocate 32 Censuses; one
will do. This is a very small memory footprint optimisation, but it
comes for free.

(cherry picked from commit 8cc7274b8de254c7266b61fadbc6795dc37bd1e9)
</pre>
</li>
<li>
<strong><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/ca146208a210242904edde77633ef857200dd45f">ca146208</a></strong>
<div>
<span>by Ben Gamari</span>
<i>at 2020-07-15T11:27:40-04:00</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">rts/ProfHeap: Free old allocations when reinitialising Censuses

Previously when not LDV profiling we would repeatedly reinitialise
`censuses[0]` with `initEra`. This failed to free the `Arena` and
`HashTable` from the old census, resulting in a memory leak.

Fixes #18348.

(cherry picked from commit b835112cbeaa6e34a8bae7b7697bdf2826edaa9a)
</pre>
</li>
</ul>
<h4>30 changed files:</h4>
<ul>
<li class="file-stats">
<a href="#587d266bb27a4dc3022bbed44dfa19849df3044c">
.gitlab-ci.yml
</a>
</li>
<li class="file-stats">
<a href="#75bfcd03f3ba9315d33104fcb0424c6bfeb4e334">
compiler/GHC/Hs/Decls.hs
</a>
</li>
<li class="file-stats">
<a href="#8d8e5922fde8bc19ffa2bc9cae6b6720abb88564">
compiler/GHC/HsToCore/PmCheck/Oracle.hs
</a>
</li>
<li class="file-stats">
<a href="#d619e33ea242c71188c1a96a25ed85ab1732100f">
compiler/cmm/Cmm.hs
</a>
</li>
<li class="file-stats">
<a href="#61470c7221010080ec380a45874259d0ed73da4a">
compiler/cmm/PprC.hs
</a>
</li>
<li class="file-stats">
<a href="#f50439b73583d5fc97ab8917b6fc66f6188a1e62">
compiler/coreSyn/CorePrep.hs
</a>
</li>
<li class="file-stats">
<a href="#b330982a833038b785b1f9db1eb6ec91ded5e7f0">
compiler/deSugar/Coverage.hs
</a>
</li>
<li class="file-stats">
<a href="#2ebec45c4dd2cdcc7eea7aefee1aa1ed2abc48b1">
compiler/llvmGen/LlvmCodeGen/Data.hs
</a>
</li>
<li class="file-stats">
<a href="#f171fcd6a9b405926ab6c9973ca110af70daef3b">
compiler/prelude/PrelInfo.hs
</a>
</li>
<li class="file-stats">
<a href="#7b2a3c8a780cfa42412ee2700454599d02c3f69d">
compiler/prelude/PrelNames.hs
</a>
</li>
<li class="file-stats">
<a href="#0ceba1cc065fc4d13769caf47b225c97d54e2ffc">
compiler/prelude/TysWiredIn.hs
</a>
</li>
<li class="file-stats">
<a href="#32d53a69dcadfb969898a49221a1ff152ea0677a">
compiler/simplCore/SimplUtils.hs
</a>
</li>
<li class="file-stats">
<a href="#c60636fd0f5fe3d34f3341b77652f213263fe7dc">
compiler/specialise/Rules.hs
</a>
</li>
<li class="file-stats">
<a href="#e41a2a88012b97213e3706fe27159af08ba0bf30">
compiler/typecheck/TcHsSyn.hs
</a>
</li>
<li class="file-stats">
<a href="#350c4076427c611b8f14e875a4ca553041c2b847">
compiler/typecheck/TcHsType.hs
</a>
</li>
<li class="file-stats">
<a href="#4c1af4850cb90ab2963edb06b69b57e87ccdf9c1">
compiler/typecheck/TcInstDcls.hs
</a>
</li>
<li class="file-stats">
<a href="#367db94fc37c8c7548dbe545a5302c7a5108e41e">
compiler/typecheck/TcMType.hs
</a>
</li>
<li class="file-stats">
<a href="#bdfa0cc139f61d1236abc1598c5d684b43c357f9">
compiler/typecheck/TcTyClsDecls.hs
</a>
</li>
<li class="file-stats">
<a href="#02ab52057b25cd107220549e7027dd4c9a6ba32c">
compiler/types/TyCon.hs
</a>
</li>
<li class="file-stats">
<a href="#6fd0e38a7c73b11b9e200c347c4d9fdef99186b3">
<span class="new-file">
+
docs/users_guide/8.10.2-notes.rst
</span>
</a>
</li>
<li class="file-stats">
<a href="#082864ead1e9d9b4924371eb7fb80f80a61c4a76">
docs/users_guide/index.rst
</a>
</li>
<li class="file-stats">
<a href="#b71856f5728e262c6f67455997507c6fa2ede3b9">
hadrian/src/Hadrian/Utilities.hs
</a>
</li>
<li class="file-stats">
<a href="#88aba3facfb6ad447031cb0f794a80fa9edef072">
hadrian/src/Settings/Builders/Cabal.hs
</a>
</li>
<li class="file-stats">
<a href="#52ac3fb9d79a975886f930e407b4c98c993e9e8e">
hadrian/src/Settings/Builders/Ghc.hs
</a>
</li>
<li class="file-stats">
<a href="#d92ed897486e6597b1000abb84a65ad03542615b">
hadrian/src/Settings/Packages.hs
</a>
</li>
<li class="file-stats">
<a href="#241971342cd0c394b24e67a781cf7e3d2f01aa72">
includes/rts/Flags.h
</a>
</li>
<li class="file-stats">
<a href="#7d52a0d7f6cc47777a2112b358ad80dea9078a76">
<span class="new-file">
+
libraries/ghc-compact/tests/T16992.hs
</span>
</a>
</li>
<li class="file-stats">
<a href="#c9772e1df1f55ce60ad9cc09320da1c6bbe4d913">
<span class="new-file">
+
libraries/ghc-compact/tests/T16992.stdout
</span>
</a>
</li>
<li class="file-stats">
<a href="#d8df9f361ffd907f41fa597e5b0638c73e9843ae">
libraries/ghc-compact/tests/all.T
</a>
</li>
<li class="file-stats">
<a href="#f67cc2e98b7648e8223021d15db39fab317444b3">
libraries/process
</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/79da3ca28d12306e5bc073d2f1b7ba130e12cd99...ca146208a210242904edde77633ef857200dd45f">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>