<!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>
Sebastian Graf pushed to branch wip/pmcheck-refuts
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/684dc290563769d456b6f1c772673d64307ab072">684dc290</a></strong>
<div>
<span>by Vladislav Zavialov</span>
<i>at 2019-05-14T20:41:19Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">Restore the --coerce option in 'happy' configuration

happy-1.19.10 has been released with a fix for --coerce in the presence
of higher rank types. This should result in about 10% performance
improvement in the parser.
</pre>
</li>
<li>
<strong><a href="https://gitlab.haskell.org/ghc/ghc/commit/a416ae26a2e45de3d9a76e94fc22aaa53e9e5b12">a416ae26</a></strong>
<div>
<span>by Alp Mestanogullari</span>
<i>at 2019-05-14T20:41:20Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">Hadrian: 'need' source files for various docs in Rules.Documentation

Previously, changing one of the .rst files from the user guide would not cause
the user guide to be rebuilt. This patch take a first stab at declaring the
documentation source files that our documentation rules depend on, focusing
on the .rst files only for now.

We eventually might want to rebuild docs when we, say, change the haddock style
file, but this level of tracking isn't really necessary for now.

This fixes #16645.
</pre>
</li>
<li>
<strong><a href="https://gitlab.haskell.org/ghc/ghc/commit/7105fb66a7bacf822f7f23028136f89ff5737d0e">7105fb66</a></strong>
<div>
<span>by Ben Gamari</span>
<i>at 2019-05-16T16:47:59Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">rts: Explicit state that CONSTR tag field is zero-based

This was a bit unclear as we use both one-based and zero-based
tags in GHC.

[skip ci]</pre>
</li>
<li>
<strong><a href="https://gitlab.haskell.org/ghc/ghc/commit/5bb80cf2c5601fc57231946c10aee76398b907dd">5bb80cf2</a></strong>
<div>
<span>by David Eichmann</span>
<i>at 2019-05-20T14:41:55Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">Improve test runner logging when calculating performance metric baseline #16662

We attempt to get 75 commit hashes via `git log`, but this only gave 10
hashes in a CI run (see #16662). Better logging may help solve this
error if it occurs again in the future.
</pre>
</li>
<li>
<strong><a href="https://gitlab.haskell.org/ghc/ghc/commit/b46efa2bbf86cf0673d0d6dfd5c40b2b0db5f9ff">b46efa2b</a></strong>
<div>
<span>by David Eichmann</span>
<i>at 2019-05-20T18:45:56Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">Recalculate Performance Test Baseline T9630 #16680

Metric Decrease:
    T9630
</pre>
</li>
<li>
<strong><a href="https://gitlab.haskell.org/ghc/ghc/commit/54095bbd3a5481e906b05c80ea68841165c7a2b3">54095bbd</a></strong>
<div>
<span>by Takenobu Tani</span>
<i>at 2019-05-21T20:54:00Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">users-guide: Fix directive errors on 8.10

The following sections are not displayed due to a directive error:

  * -Wunused-record-wildcards
  * -Wredundant-record-wildcards

I changed the location of the `since` directive.

[skip ci]
</pre>
</li>
<li>
<strong><a href="https://gitlab.haskell.org/ghc/ghc/commit/8fc654c3a00ab0cd842c3e8316f832170ea561d6">8fc654c3</a></strong>
<div>
<span>by David Eichmann</span>
<i>at 2019-05-21T20:57:37Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">Include CPP preprocessor dependencies in -M output

Issue #16521
</pre>
</li>
<li>
<strong><a href="https://gitlab.haskell.org/ghc/ghc/commit/0af519ac583c3544b1c4b1315b38ba0174d3ccb1">0af519ac</a></strong>
<div>
<span>by David Eichmann</span>
<i>at 2019-05-21T21:01:16Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">Refactor Libffi and RTS rules

This removes a hack that copies libffi files to the rts
build directory. This was done in a libffi rule, but now
an rts rule correctly needs and copies the relevant
files from the libffi build dir to the rts build dir.

Issues: #16272 #16304
</pre>
</li>
<li>
<strong><a href="https://gitlab.haskell.org/ghc/ghc/commit/9342b1fabd09e8bbebb982b07f129da266f7c586">9342b1fa</a></strong>
<div>
<span>by Kirill Elagin</span>
<i>at 2019-05-21T21:04:54Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">users-guide: Fix -rtsopts default</pre>
</li>
<li>
<strong><a href="https://gitlab.haskell.org/ghc/ghc/commit/d0142f21692c4b4514ea68e489c943ac26037d8f">d0142f21</a></strong>
<div>
<span>by Javran Cheng</span>
<i>at 2019-05-21T21:08:29Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">Fix doc for Data.Function.fix.

Doc-only change.
</pre>
</li>
<li>
<strong><a href="https://gitlab.haskell.org/ghc/ghc/commit/ddd905b4eada5a9a33977a435393cf7826a4d6a5">ddd905b4</a></strong>
<div>
<span>by Shayne Fletcher</span>
<i>at 2019-05-21T21:12:07Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">Update resolver for for happy 1.19.10
</pre>
</li>
<li>
<strong><a href="https://gitlab.haskell.org/ghc/ghc/commit/e32c30caf48517df8ddca6a79a39becfe5622c39">e32c30ca</a></strong>
<div>
<span>by Alp Mestanogullari</span>
<i>at 2019-05-21T21:15:45Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">distrib/configure.ac.in: remove mention to 'settings', since settings.in is gone

Otherwise, when `./configure`ing a GHC bindist, produced by either Make or
Hadrian, we would try to generate the `settings` file from the `settings.in`
template that we used to have around but which has been gone since d37d91e9.
That commit generates the settings file using the build systems instead, but
forgot to remove this mention to the `settings` file.
</pre>
</li>
<li>
<strong><a href="https://gitlab.haskell.org/ghc/ghc/commit/4a6c8436f974cafc36a6e0462878614bdc0899c0">4a6c8436</a></strong>
<div>
<span>by Ryan Scott</span>
<i>at 2019-05-21T21:19:22Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">Fix #16666 by parenthesizing contexts in Convert

Most places where we convert contexts in `Convert` are actually in
positions that are to the left of some `=>`, such as in superclasses
and instance contexts. Accordingly, these contexts need to be
parenthesized at `funPrec`. To accomplish this, this patch changes
`cvtContext` to require a precedence argument for the purposes of
calling `parenthesizeHsContext` and adjusts all `cvtContext` call
sites accordingly.
</pre>
</li>
<li>
<strong><a href="https://gitlab.haskell.org/ghc/ghc/commit/c32f64e5a9bcdb17d69bcabf0f0db0203eb6b7d9">c32f64e5</a></strong>
<div>
<span>by Ben Gamari</span>
<i>at 2019-05-21T21:23:01Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">gitlab-ci: Allow Windows Hadrian build to fail

Due to #16574.</pre>
</li>
<li>
<strong><a href="https://gitlab.haskell.org/ghc/ghc/commit/412a1f39ecc26fb8bce997bfe71e87b7284a1493">412a1f39</a></strong>
<div>
<span>by Ben Gamari</span>
<i>at 2019-05-21T21:23:01Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">Update .gitlab-ci.yml</pre>
</li>
<li>
<strong><a href="https://gitlab.haskell.org/ghc/ghc/commit/0dc7985663efa1739aafb480759e2e2e7fca2a36">0dc79856</a></strong>
<div>
<span>by Julian Leviston</span>
<i>at 2019-05-22T00:55:44Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">Allow for multiple linker instances. Fixes Haskell portion of #3372.
</pre>
</li>
<li>
<strong><a href="https://gitlab.haskell.org/ghc/ghc/commit/21272670581608b96a85cfb942af81ada3cfd450">21272670</a></strong>
<div>
<span>by Michael Sloan</span>
<i>at 2019-05-22T20:37:57Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">Have GHCi use object code for UnboxedTuples modules #15454

The idea is to automatically enable -fobject-code for modules that use
UnboxedTuples, along with all the modules they depend on. When looking
into how to solve this, I was pleased to find that there was already
highly similar logic for enabling code generation when -fno-code is
specified but TemplateHaskell is used.

The state before this patch was that if you used unboxed tuples then you
had to enable `-fobject-code` globally rather than on a per module
basis.
</pre>
</li>
<li>
<strong><a href="https://gitlab.haskell.org/ghc/ghc/commit/ddae344e80eee3044f773061126937a69d16c957">ddae344e</a></strong>
<div>
<span>by Michael Sloan</span>
<i>at 2019-05-22T20:41:31Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">Use datatype for unboxed returns when loading ghc into ghci

See #13101 and #15454
</pre>
</li>
<li>
<strong><a href="https://gitlab.haskell.org/ghc/ghc/commit/78c3f3305e173c7667ffb47b97ff0ecacc279fe5">78c3f330</a></strong>
<div>
<span>by Kevin Buhr</span>
<i>at 2019-05-22T20:45:08Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">Add regression test for old Word32 arithmetic issue (#497)
</pre>
</li>
<li>
<strong><a href="https://gitlab.haskell.org/ghc/ghc/commit/ecc9366a0e0db107c286935130837b2222e2dd82">ecc9366a</a></strong>
<div>
<span>by Alec Theriault</span>
<i>at 2019-05-22T20:48:45Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">RTS: Fix restrictive cast

Commit e75a9afd2989e0460f9b49fa07c1667299d93ee9 added an `unsigned` cast
to account for OSes that have signed `rlim_t` signed. Unfortunately,
the `unsigned` cast has the unintended effect of narrowing `rlim_t` to
only 4 bytes. This leads to some spurious out of memory crashes
(in particular: Haddock crashes with OOM whenn building docs of
`ghc`-the-library).

In this case, `W_` is a better type to cast to: we know it will be
unsigned too and it has the same type as `*len` (so we don't suffer from
accidental narrowing).
</pre>
</li>
<li>
<strong><a href="https://gitlab.haskell.org/ghc/ghc/commit/2c15b85eb2541a64df0cdf3705fb9aa068634004">2c15b85e</a></strong>
<div>
<span>by Alp Mestanogullari</span>
<i>at 2019-05-22T20:52:22Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">Hadrian: add --test-root-dirs, to only run specific directories of tests

We can specify several of those, by using the flag multiple times or
just once but combining the directories with ':'.

Along the way, this patch also fixes the testsuite-related --only flag,
so that we can use it many times instead of being force to specify a
space-separated list of test in a single --only flag.
</pre>
</li>
<li>
<strong><a href="https://gitlab.haskell.org/ghc/ghc/commit/6efe04dee3f4c584e0cd043b8424718f0791d1be">6efe04de</a></strong>
<div>
<span>by Ryan Scott</span>
<i>at 2019-05-22T20:56:01Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">Use HsTyPats in associated type family defaults

Associated type family default declarations behave strangely in a
couple of ways:

1. If one tries to bind the type variables with an explicit `forall`,
   the `forall`'d part will simply be ignored. (#16110)
2. One cannot use visible kind application syntax on the left-hand
   sides of associated default equations, unlike every other form
   of type family equation. (#16356)

Both of these issues have a common solution. Instead of using
`LHsQTyVars` to represent the left-hand side arguments of an
associated default equation, we instead use `HsTyPats`, which is what
other forms of type family equations use. In particular, here are
some highlights of this patch:

* `FamEqn` is no longer parameterized by a `pats` type variable, as
  the `feqn_pats` field is now always `HsTyPats`.
* The new design for `FamEqn` in chronicled in
  `Note [Type family instance declarations in HsSyn]`.
* `TyFamDefltEqn` now becomes the same thing as `TyFamInstEqn`. This
  means that many of `TyFamDefltEqn`'s code paths can now reuse the
  code paths for `TyFamInstEqn`, resulting in substantial
  simplifications to various parts of the code dealing with
  associated type family defaults.

Fixes #16110 and #16356.
</pre>
</li>
<li>
<strong><a href="https://gitlab.haskell.org/ghc/ghc/commit/4ba73e00c4887b58d85131601a15d00608acaa60">4ba73e00</a></strong>
<div>
<span>by Luite Stegeman</span>
<i>at 2019-05-22T20:59:39Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">fix Template Haskell cross compilation on 64 bit compiler with 32 bit target
</pre>
</li>
<li>
<strong><a href="https://gitlab.haskell.org/ghc/ghc/commit/a79623b7178ff7907591f6668e846b7593998144">a79623b7</a></strong>
<div>
<span>by Sebastian Graf</span>
<i>at 2019-05-23T11:29:28Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">TmOracle: Replace negative term equalities by refutable PmAltCons

The `PmExprEq` business was a huge hack and was at the same time vastly
too powerful and not powerful enough to encode negative term equalities,
i.e. facts of the form "forall y. x ≁ Just y".

This patch introduces the concept of 'refutable shapes': What matters
for the pattern match checker is being able to encode knowledge of the
form "x can no longer be the literal 5" or "x can no longer be Just y,
for any y". We encode this knowledge in the form of a `PmRefutEnv`,
storing a set of newly introduced `PmAltCon`s (literals and `ConLike`s)
for each variable denoting equations of the above form.

So, say we have `x ≁ Just ∈ refuts` in the term oracle context and
try to solve an equality like `x ~ Just 5`. The entry in the refutable
environment will immediately lead to a contradiction.

This machinery makes the whole `PmExprEq` business completely
unnecessary, getting rid of a lot of (mostly dead) code.

Note that the PmAltConLike case is currently unnecessary. This is bound
to change in a follow-up patch. If we began to use PmAltConLike, we'd
even profit from nicer error messages as is currently the case for
negative literal equalities.

See the Note [Refutable shapes] in TmOracle for a place to start.
</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="#9ab3868b23ed5d5a6e12ef902049902556fa4009">
aclocal.m4
</a>
</li>
<li class="file-stats">
<a href="#2da47fed955dc80b79c67ba640b94aeecf9d5524">
compiler/basicTypes/UniqSupply.hs
</a>
</li>
<li class="file-stats">
<a href="#bd37d71fa68b0980d832d992b427fd6a6bdb891d">
compiler/deSugar/Check.hs
</a>
</li>
<li class="file-stats">
<a href="#cb94ea134d6d52fab318831e397d2a5c789f2ef3">
compiler/deSugar/DsMeta.hs
</a>
</li>
<li class="file-stats">
<a href="#7589abbc710cc40f6e48245c2bc16d69f556b714">
compiler/deSugar/PmExpr.hs
</a>
</li>
<li class="file-stats">
<a href="#379674a5063221cec43f0f659c2eb67b30339f45">
compiler/deSugar/TmOracle.hs
</a>
</li>
<li class="file-stats">
<a href="#0f33fd88c617246c7f89c4477d2d1d24f942df23">
compiler/ghc.cabal.in
</a>
</li>
<li class="file-stats">
<a href="#7cf100051b3d8b0e1a0d4f723a9675e6c1540405">
compiler/ghci/Debugger.hs
</a>
</li>
<li class="file-stats">
<a href="#47f4bea1d308dee249030e6063d92071b5aac240">
compiler/ghci/Linker.hs
</a>
</li>
<li class="file-stats">
<a href="#56a2aef3e536ed0c92ee3fe12720d26f6c84d541">
<span class="new-file">
+
compiler/ghci/LinkerTypes.hs
</span>
</a>
</li>
<li class="file-stats">
<a href="#7f924eb82ea52b493e50fc467c301adb6a0eaf32">
compiler/hieFile/HieAst.hs
</a>
</li>
<li class="file-stats">
<a href="#8edc819d4b7e02c1439ca8bb128a773a9d2ab2cd">
compiler/hsSyn/Convert.hs
</a>
</li>
<li class="file-stats">
<a href="#0db90e3d6e6150a586bbd58f75f250c3c71766f9">
compiler/hsSyn/HsDecls.hs
</a>
</li>
<li class="file-stats">
<a href="#3ec3774412294d7ceaaa0572f116dc7c911d3f6d">
compiler/hsSyn/HsExtension.hs
</a>
</li>
<li class="file-stats">
<a href="#e7673c6d90538d1c5ad8b53d152421a616776073">
compiler/hsSyn/HsInstances.hs
</a>
</li>
<li class="file-stats">
<a href="#fd41da040a9c37d02e9b130d0e3767deaff7b9fb">
compiler/main/DriverMkDepend.hs
</a>
</li>
<li class="file-stats">
<a href="#11e9bfd841c4163c1919b5e07efc84740e02010f">
compiler/main/DynFlags.hs
</a>
</li>
<li class="file-stats">
<a href="#b5c3aab16d766666149eb971c126ff3cfc4eccf6">
compiler/main/GhcMake.hs
</a>
</li>
<li class="file-stats">
<a href="#a5d2f1f03da18c26aa3c615ca829648a4a806a5b">
compiler/main/HscMain.hs
</a>
</li>
<li class="file-stats">
<a href="#a7d05a7194ce9665362b8cb2a6e3cb5bd39f2965">
compiler/main/HscTypes.hs
</a>
</li>
<li class="file-stats">
<a href="#6bafdfb7a5cd7d70cb64f09f197c29291aa0f6b9">
compiler/main/InteractiveEval.hs
</a>
</li>
<li class="file-stats">
<a href="#34189e68ae2846ea6a5011a0869bbf30db1f73e5">
compiler/nativeGen/AsmCodeGen.hs
</a>
</li>
<li class="file-stats">
<a href="#23aebcdf16673b735e637debea3f144bd0c88d9b">
compiler/nativeGen/RegAlloc/Linear/State.hs
</a>
</li>
<li class="file-stats">
<a href="#f68eb03961d8e370e8d3f41bd51ea01fd168779e">
compiler/parser/RdrHsSyn.hs
</a>
</li>
<li class="file-stats">
<a href="#a55612b2faf1041b010514ceb222ddf75c15a326">
compiler/rename/RnSource.hs
</a>
</li>
<li class="file-stats">
<a href="#4f8d5e20ad75b577322cf46f2e146466d905fe43">
compiler/typecheck/TcSplice.hs
</a>
</li>
<li class="file-stats">
<a href="#bdfa0cc139f61d1236abc1598c5d684b43c357f9">
compiler/typecheck/TcTyClsDecls.hs
</a>
</li>
<li class="file-stats">
<a href="#2cbc08c5f3b1dcbc9c763a836b51491224c05e50">
compiler/utils/ListSetOps.hs
</a>
</li>
<li class="file-stats">
<a href="#1e2eab751970e05b4edec9b2fe1a0549ae3f411f">
distrib/configure.ac.in
</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/0e1b15dbd63928d9edbf336189f037abaa3876cf...a79623b7178ff7907591f6668e846b7593998144">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>