<!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>
Matthew Pickering pushed to branch wip/t16716
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/0e0d87da2fd25e2fb255417fcb15f93f508c1250">0e0d87da</a></strong>
<div>
<span>by Zubin Duggal</span>
<i>at 2019-05-31T06:34:57Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">Fix and enforce validation of header for .hie files

Implements #16686

The files version is automatically generated from the current GHC
version in the same manner as normal interface files.

This means that clients can first read the version and then decide how
to read the rest of the file.
</pre>
</li>
<li>
<strong><a href="https://gitlab.haskell.org/ghc/ghc/commit/1d43d4a3e45d86261fa63591e99749cb7d3f68ed">1d43d4a3</a></strong>
<div>
<span>by Nathan Collins</span>
<i>at 2019-06-01T03:55:49Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">Improve ThreadId Show instance

By making it include parens when a derived instance would. For example, this changes the (hypothetical) code `show (Just (ThreadId 3))` to produce `"Just (ThreadId 3)"` instead of the current `"Just ThreadId 3"`.
</pre>
</li>
<li>
<strong><a href="https://gitlab.haskell.org/ghc/ghc/commit/45f88494293bea20cc3aca025ee6fe84087987ce">45f88494</a></strong>
<div>
<span>by Ryan Scott</span>
<i>at 2019-06-01T03:56:27Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">Reject nested foralls in foreign imports (#16702)

This replaces a panic observed in #16702 with a simple error message
stating that nested `forall`s simply aren't allowed in the type
signature of a `foreign import` (at least, not at present).

Fixes #16702.
</pre>
</li>
<li>
<strong><a href="https://gitlab.haskell.org/ghc/ghc/commit/76e5889017ee4ac688901d37f2fa684e807769b6">76e58890</a></strong>
<div>
<span>by Ryan Scott</span>
<i>at 2019-06-01T03:57:05Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">Fix space leaks in dynLoadObjs (#16708)

When running the test suite on a GHC built with the `quick` build
flavour, `-fghci-leak-check` noticed some space leaks. Careful
investigation led to `Linker.dynLoadObjs` being the culprit.
Pattern-matching on `PeristentLinkerState` and a dash of `$!` were
sufficient to fix the issue. (ht to mpickering for his suggestions,
which were crucial to discovering a fix)

Fixes #16708.
</pre>
</li>
<li>
<strong><a href="https://gitlab.haskell.org/ghc/ghc/commit/1503da32d26fb59fb6ebb620bfd0f8c08638f627">1503da32</a></strong>
<div>
<span>by Ömer Sinan Ağacan</span>
<i>at 2019-06-01T15:18:57Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">Fix rewriting invalid shifts to errors

Fixes #16449.

5341edf3 removed a code in rewrite rules for bit shifts, which broke the
"silly shift guard", causing generating invalid bit shifts or heap
overflow in compile time while trying to evaluate those invalid bit
shifts.

The "guard" is explained in Note [Guarding against silly shifts] in
PrelRules.hs.

More specifically, this was the breaking change:

    --- a/compiler/prelude/PrelRules.hs
    +++ b/compiler/prelude/PrelRules.hs
    @@ -474,12 +474,11 @@ shiftRule shift_op
            ; case e1 of
                _ | shift_len == 0
                  -> return e1
    -             | shift_len < 0 || wordSizeInBits dflags < shift_len
    -             -> return (mkRuntimeErrorApp rUNTIME_ERROR_ID wordPrimTy
    -                                        ("Bad shift length" ++ show shift_len))

This patch reverts this change.

Two new tests added:

- T16449_1: The original reproducer in #16449. This was previously
  casing a heap overflow in compile time when CmmOpt tries to evaluate
  the large (invalid) bit shift in compile time, using `Integer` as the
  result type. Now it builds as expected. We now generate an error for
  the shift as expected.

- T16449_2: Tests code generator for large (invalid) bit shifts.
</pre>
</li>
<li>
<strong><a href="https://gitlab.haskell.org/ghc/ghc/commit/2e297b36169208939528d962724679c5756e9e7c">2e297b36</a></strong>
<div>
<span>by Ömer Sinan Ağacan</span>
<i>at 2019-06-01T15:19:35Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">rts: Remove unused decls from CNF.h
</pre>
</li>
<li>
<strong><a href="https://gitlab.haskell.org/ghc/ghc/commit/33e37d0619a9d1d0b8088a109f7eeb4c6fd21027">33e37d06</a></strong>
<div>
<span>by Takenobu Tani</span>
<i>at 2019-06-03T02:54:43Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">Add `-haddock` option under ci condition to fix #16415

In order to use the `:doc` command in ghci, it is necessary
to compile for core libraries with `-haddock` option.

Especially, the `-haddock` option is essential for release building.

Note:
  * The `-haddock` option may affect compile time and binary size.
  * But hadrian has already set `-haddock` as the default.
  * This patch affects the make-based building.

This patch has been split from !532.
</pre>
</li>
<li>
<strong><a href="https://gitlab.haskell.org/ghc/ghc/commit/43a39c3c2195d5b4400efc845a54f153184b1d7f">43a39c3c</a></strong>
<div>
<span>by Takenobu Tani</span>
<i>at 2019-06-03T02:54:43Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">Add `-haddock` to perf.mk rather than prepare-system.sh

To cover ci conditions from ghc8.6 to 8.9, I add `-haddock` option
to `mk/flavours/perf.mk` rather than `.circleci/prepare-system.sh`.

Because in windows condition of ghc-8.9, `mk/flavours/*` is included
after `prepare-system.sh`.

In addition, in linux condition of ghc-8.6, `mk/flavors/perf.mk` is used.
</pre>
</li>
<li>
<strong><a href="https://gitlab.haskell.org/ghc/ghc/commit/c4f94320a7048a7f263d8d952d4e12cc0227cf72">c4f94320</a></strong>
<div>
<span>by Takenobu Tani</span>
<i>at 2019-06-03T02:54:43Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">Add `-haddock` to prepare-system.sh and .gitlab-ci.yml

To cover ci conditions from ghc8.6 to 8.9, I add `-haddock` option
to `.circleci/prepare-system.sh` and .gitlab-ci.yml.
after including `mk/flavours/*`.
</pre>
</li>
<li>
<strong><a href="https://gitlab.haskell.org/ghc/ghc/commit/799b1d26977b5841aa580e07c8f8e65356eed785">799b1d26</a></strong>
<div>
<span>by Ben Gamari</span>
<i>at 2019-06-03T02:55:18Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">gitlab-ci: Use GHC 8.6.5 for Windows CI builds
</pre>
</li>
<li>
<strong><a href="https://gitlab.haskell.org/ghc/ghc/commit/286827be471f9efa67303d57b979e0c32cb8936e">286827be</a></strong>
<div>
<span>by David Eichmann</span>
<i>at 2019-06-04T05:09:05Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">TestRunner: Added --chart to display a chart of performance tests

This uses the Chart.js javascript library.
Everything is put into a standalone .html file and opened with the
default browser.
I also simplified the text output to use the same data as the chart.
You can now use a commit range with git's ".." syntax.
The --ci option will use results from CI (you'll need to fetch them
first):

  $ git fetch https://gitlab.haskell.org/ghc/ghc-performance-notes.git refs/notes/perf:refs/notes/ci/perf
  $ python3 testsuite/driver/perf_notes.py --ci --chart --test-env x86_64-darwin --test-name T9630 master~500..master
</pre>
</li>
<li>
<strong><a href="https://gitlab.haskell.org/ghc/ghc/commit/db78ac6f5d69618ff143ab4b572e7f58a1805687">db78ac6f</a></strong>
<div>
<span>by Andrew Martin</span>
<i>at 2019-06-04T05:09:43Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">Use a better strategy for determining the offset applied to foreign function arguments that have an unlifted boxed type. We used to use the type of the argument. We now use the type of the foreign function. Add a test to confirm that the roundtrip conversion between an unlifted boxed type and Any is sound in the presence of a foreign function call.
</pre>
</li>
<li>
<strong><a href="https://gitlab.haskell.org/ghc/ghc/commit/114b014f7ed346727241c78ef3e0bf965d94edfc">114b014f</a></strong>
<div>
<span>by Alp Mestanogullari</span>
<i>at 2019-06-04T05:10:20Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">Hadrian: fix OSX build failure and add an OSX/Hadrian CI job

The OSX build failure introduced in 3aa71a22 was due to a change in the
glob we use to collect libffi shared libraries in hadrian/src/Rules/Libffi.hs.
This commit fixes the problem and adds an OSX CI job that builds GHC with
Hadrian, to make sure we don't break it again.
</pre>
</li>
<li>
<strong><a href="https://gitlab.haskell.org/ghc/ghc/commit/002594b731c40334b33eb883275e9c274c68e9ac">002594b7</a></strong>
<div>
<span>by Xavier Denis</span>
<i>at 2019-06-04T18:41:29Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">Add GHCi :instances command

This commit adds the `:instances` command to ghci following proosal
number 41.

This makes it possible to query which instances are available to a given
type.

The output of this command is all the possible instances with type
variables and constraints instantiated.
</pre>
</li>
<li>
<strong><a href="https://gitlab.haskell.org/ghc/ghc/commit/3ecc03df3b7777ecb40fbbbb2d6d7c2b98676d1c">3ecc03df</a></strong>
<div>
<span>by Ben Gamari</span>
<i>at 2019-06-04T18:42:04Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">gitlab-ci: Run bindisttest during CI
</pre>
</li>
<li>
<strong><a href="https://gitlab.haskell.org/ghc/ghc/commit/c16f3297401f8f1f0f5d289867725ad185ac5a40">c16f3297</a></strong>
<div>
<span>by Ben Gamari</span>
<i>at 2019-06-04T18:42:04Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">make: Fix bindist installation

This fixes a few vestigial references to `settings` left over from !655.
Fixes #16715.
</pre>
</li>
<li>
<strong><a href="https://gitlab.haskell.org/ghc/ghc/commit/ba4e3934abc82e0ba2bec51842315819910d1018">ba4e3934</a></strong>
<div>
<span>by Alp Mestanogullari</span>
<i>at 2019-06-04T18:43:17Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">Hadrian: profiling and debug enabled ways support -eventlog too
</pre>
</li>
<li>
<strong><a href="https://gitlab.haskell.org/ghc/ghc/commit/ae159d42eab21429d23f6f208b46a13f2fb59cb3">ae159d42</a></strong>
<div>
<span>by Matthew Pickering</span>
<i>at 2019-06-07T13:25:05Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">hadrian: Properly partition options in sourceArgs

Previously if you build the `ghc` package then it would has the default
opts and the library opts. This is different behaviour to make where the
library opts are only reserved for things in the `libraries`
subdirectory (I believe)

Fixes #16716
</pre>
</li>
</ul>
<h4>30 changed files:</h4>
<ul>
<li class="file-stats">
<a href="#45c43932d0fb2a4ffce85cea15daa18255dc546d">
.circleci/prepare-system.sh
</a>
</li>
<li class="file-stats">
<a href="#587d266bb27a4dc3022bbed44dfa19849df3044c">
.gitlab-ci.yml
</a>
</li>
<li class="file-stats">
<a href="#c569fe5eb9284314e129c104f265fe360a4b1d3d">
compiler/codeGen/StgCmmExpr.hs
</a>
</li>
<li class="file-stats">
<a href="#ae667aa599c96310c85c0258e4e7d72b00275ae5">
compiler/codeGen/StgCmmForeign.hs
</a>
</li>
<li class="file-stats">
<a href="#731b07c16b2f4bb31dd7defa4ceef54e74473cc7">
compiler/codeGen/StgCmmPrim.hs
</a>
</li>
<li class="file-stats">
<a href="#47f4bea1d308dee249030e6063d92071b5aac240">
compiler/ghci/Linker.hs
</a>
</li>
<li class="file-stats">
<a href="#7f924eb82ea52b493e50fc467c301adb6a0eaf32">
compiler/hieFile/HieAst.hs
</a>
</li>
<li class="file-stats">
<a href="#ed625742c0235606b8fbc13ddf9b161f5fb40f27">
compiler/hieFile/HieBin.hs
</a>
</li>
<li class="file-stats">
<a href="#bb3a06fb906e108c479b1717e02bb7a7d0c63567">
compiler/hieFile/HieDebug.hs
</a>
</li>
<li class="file-stats">
<a href="#2da6575c36fe7417a4dccb33b316d19f11ed9e67">
compiler/hieFile/HieTypes.hs
</a>
</li>
<li class="file-stats">
<a href="#df4e3cc439ef8c9b38bbbaf17e251533f45b5460">
compiler/main/GHC.hs
</a>
</li>
<li class="file-stats">
<a href="#a5d2f1f03da18c26aa3c615ca829648a4a806a5b">
compiler/main/HscMain.hs
</a>
</li>
<li class="file-stats">
<a href="#6bafdfb7a5cd7d70cb64f09f197c29291aa0f6b9">
compiler/main/InteractiveEval.hs
</a>
</li>
<li class="file-stats">
<a href="#844514241b3e1a009f66bf594cbb57fef61482fb">
compiler/prelude/PrelRules.hs
</a>
</li>
<li class="file-stats">
<a href="#268617cbbb60bb1447a471b156b77fb5b7ff05cc">
compiler/stgSyn/CoreToStg.hs
</a>
</li>
<li class="file-stats">
<a href="#da0b7b01ca96b39115ee464b3e723c9fd3df8136">
compiler/stgSyn/StgSyn.hs
</a>
</li>
<li class="file-stats">
<a href="#e5d0de6b086bbc65938b566dbebcc274be64dab8">
compiler/typecheck/TcForeign.hs
</a>
</li>
<li class="file-stats">
<a href="#2799ba786adc98d485fad6003334b913a0069bdc">
compiler/typecheck/TcRnDriver.hs
</a>
</li>
<li class="file-stats">
<a href="#7079a8c38af47389d02c47bbf0d7c14a0ac176bf">
compiler/types/InstEnv.hs
</a>
</li>
<li class="file-stats">
<a href="#d6904e295957d55c64f4949aa3b54695dd57dd76">
docs/users_guide/8.10.1-notes.rst
</a>
</li>
<li class="file-stats">
<a href="#2b8f04584fafff0b8f78c8867b06665527f31762">
docs/users_guide/ffi-chap.rst
</a>
</li>
<li class="file-stats">
<a href="#b02c1c6109c60b8f685234b0dbaabf6c79fed2a2">
docs/users_guide/ghci.rst
</a>
</li>
<li class="file-stats">
<a href="#8bdb62b981f38737157a853655e494433eea6796">
ghc.mk
</a>
</li>
<li class="file-stats">
<a href="#c30f4ac98f08779ad1bd5a02a27802862c1e9521">
ghc/GHCi/UI.hs
</a>
</li>
<li class="file-stats">
<a href="#b0c04a7b7fe8afa2c809d2b9dea27a387040c671">
ghc/ghc.mk
</a>
</li>
<li class="file-stats">
<a href="#b526b637050952b6307a0695885c438f0db312d2">
hadrian/src/Rules/Libffi.hs
</a>
</li>
<li class="file-stats">
<a href="#52ac3fb9d79a975886f930e407b4c98c993e9e8e">
hadrian/src/Settings/Builders/Ghc.hs
</a>
</li>
<li class="file-stats">
<a href="#01e43a2f611042f90f155dc4638a09872e6f6cb2">
hadrian/src/Settings/Default.hs
</a>
</li>
<li class="file-stats">
<a href="#484e50173b324b5842d294580ec9ed8a7b0d5d38">
libraries/base/GHC/Conc/Sync.hs
</a>
</li>
<li class="file-stats">
<a href="#4759adf3cad00f03c51fce00cc09f617b36d46d0">
rts/sm/CNF.h
</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/6642f9716490eb6918c1768e1eb76be208775b7c...ae159d42eab21429d23f6f208b46a13f2fb59cb3">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>