<!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=utf-8" http-equiv="Content-Type">
<title>
GitLab
</title>
<style>img {
max-width: 100%; height: auto;
}
</style>
</head>
<body>
<div class="content">
<h3>
Marge Bot pushed to branch wip/corelint-safeguard
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/36d380475d9056fdf93305985be3def00aaf6cf7">36d38047</a></strong>
<div>
<span>by Ben Gamari</span>
<i>at 2019-04-09T14:23:47Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">users-guide: Document how to disable package environments
As noted in #16309 this somehow went undocumented.
</pre>
</li>
<li>
<strong><a href="https://gitlab.haskell.org/ghc/ghc/commit/af4cea7f1411e5b99e2417d7c2d3d0e697093103">af4cea7f</a></strong>
<div>
<span>by Artem Pyanykh</span>
<i>at 2019-04-09T14:30:13Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">codegen: fix memset unroll for small bytearrays, add 64-bit sets
Fixes #16052
When the offset in `setByteArray#` is statically known, we can provide
better alignment guarantees then just 1 byte.
Also, memset can now do 64-bit wide sets.
The current memset intrinsic is not optimal however and can be
improved for the case when we know that we deal with
(baseAddress at known alignment) + offset
For instance, on 64-bit
`setByteArray# s 1# 23# 0#`
given that bytearray is 8 bytes aligned could be unrolled into
`movb, movw, movl, movq, movq`; but currently it is
`movb x23` since alignment of 1 is all we can embed into MO_Memset op.
</pre>
</li>
<li>
<strong><a href="https://gitlab.haskell.org/ghc/ghc/commit/bd2de4f06169e15506bb357cf7c2c8b1dad37d67">bd2de4f0</a></strong>
<div>
<span>by Artem Pyanykh</span>
<i>at 2019-04-09T14:30:13Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">codegen: use newtype for Alignment in BasicTypes
</pre>
</li>
<li>
<strong><a href="https://gitlab.haskell.org/ghc/ghc/commit/14a7870770fb2dd2e096bc13e8c927d49c868911">14a78707</a></strong>
<div>
<span>by Artem Pyanykh</span>
<i>at 2019-04-09T14:30:13Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">docs: add a note about changes in memset unrolling to 8.10.1-notes
</pre>
</li>
<li>
<strong><a href="https://gitlab.haskell.org/ghc/ghc/commit/fe40ddd9f960d89fbb430962f642ee9b053a0492">fe40ddd9</a></strong>
<div>
<span>by Sylvain Henry</span>
<i>at 2019-04-09T16:50:15Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">Hadrian: fix library install paths in bindist Makefile (#16498)
GHC now works out-of-the-box (i.e. without any wrapper script) by
assuming that @bin@ and @lib@ directories sit next to each other. In
particular, its RUNPATH uses $ORIGIN-based relative path to find the
libraries.
However, to be good citizens we want to support the case where @bin@ and
@lib@ directories (respectively BINDIR and LIBDIR) don't sit next to
each other or are renamed. To do that the install script simply creates
GHC specific @bin@ and @lib@ siblings directories into:
LIBDIR/ghc-VERSION/{bin,lib}
Then it installs wrapper scripts into BINDIR that call the appropriate
programs into LIBDIR/ghc-VERSION/bin/.
The issue fixed by this patch is that libraries were not installed into
LIBDIR/ghc-VERSION/lib but directly into LIBDIR.
</pre>
</li>
<li>
<strong><a href="https://gitlab.haskell.org/ghc/ghc/commit/9acdc4c0ea14f890045e973dabcb5ad3bb029505">9acdc4c0</a></strong>
<div>
<span>by Ben Gamari</span>
<i>at 2019-04-09T16:56:38Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">gitlab: Bump cabal-install version used by Windows builds to 2.4
Hopefully fixes Windows Hadrian build.
</pre>
</li>
<li>
<strong><a href="https://gitlab.haskell.org/ghc/ghc/commit/fc3f421bd63cbf550cd0c8771aaf11e9c362f4d1">fc3f421b</a></strong>
<div>
<span>by Joachim Breitner</span>
<i>at 2019-04-10T03:17:37Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">GHC no longer ever defines TABLES_NEXT_TO_CODE on its own
It should be entirely the responsibility of make/Hadrian to ensure that
everything that needs this flag gets it. GHC shouldn't be hardcoded to
assist with bootstrapping since it builds other things besides itself.
Reviewers:
Subscribers: TerrorJack, rwbarton, carter
GHC Trac Issues: #15548 -- progress towards but not fix
Differential Revision: https://phabricator.haskell.org/D5082 -- extract
from that
</pre>
</li>
<li>
<strong><a href="https://gitlab.haskell.org/ghc/ghc/commit/be0dde8e3c27ca56477d1d1801bb77621f3618e1">be0dde8e</a></strong>
<div>
<span>by Ryan Scott</span>
<i>at 2019-04-10T03:23:50Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">Use ghc-prim < 0.7, not <= 0.6.1, as upper version bounds
Using `ghc-prim <= 0.6.1` is somewhat dodgy from a PVP point of view,
as it makes it awkward to support new minor releases of `ghc-prim`.
Let's instead use `< 0.7`, which is the idiomatic way of expressing
PVP-compliant upper version bounds.
</pre>
</li>
<li>
<strong><a href="https://gitlab.haskell.org/ghc/ghc/commit/42504f4a575395a35eec5c3fd7c9ef6e2b54e68e">42504f4a</a></strong>
<div>
<span>by Carter Schonwald</span>
<i>at 2019-04-11T00:28:41Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">removing x87 register support from native code gen
* simplifies registers to have GPR, Float and Double, by removing the SSE2 and X87 Constructors
* makes -msse2 assumed/default for x86 platforms, fixing a long standing nondeterminism in rounding
behavior in 32bit haskell code
* removes the 80bit floating point representation from the supported float sizes
* theres still 1 tiny bit of x87 support needed,
for handling float and double return values in FFI calls wrt the C ABI on x86_32,
but this one piece does not leak into the rest of NCG.
* Lots of code thats not been touched in a long time got deleted as a
consequence of all of this
all in all, this change paves the way towards a lot of future further
improvements in how GHC handles floating point computations, along with
making the native code gen more accessible to a larger pool of contributors.
</pre>
</li>
<li>
<strong><a href="https://gitlab.haskell.org/ghc/ghc/commit/c401f8a487ce6762476b113ad9f0d32960a3e152">c401f8a4</a></strong>
<div>
<span>by Sylvain Henry</span>
<i>at 2019-04-11T23:51:24Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">Hadrian: fix binary-dir with --docs=none
Hadrian's "binary-dist" target must check that the "docs" directory
exists (it may not since we can disable docs generation).
</pre>
</li>
<li>
<strong><a href="https://gitlab.haskell.org/ghc/ghc/commit/091195a49c29a4f81b7e8ffb1e5136f15077c3db">091195a4</a></strong>
<div>
<span>by Ömer Sinan Ağacan</span>
<i>at 2019-04-11T23:57:38Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">Remove unused remilestoning script
</pre>
</li>
<li>
<strong><a href="https://gitlab.haskell.org/ghc/ghc/commit/fa0ccbb8731e3a44dba130e835ce2a5da994c66c">fa0ccbb8</a></strong>
<div>
<span>by Ömer Sinan Ağacan</span>
<i>at 2019-04-11T23:57:38Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">Update a panic message
Point users to the right URL
</pre>
</li>
<li>
<strong><a href="https://gitlab.haskell.org/ghc/ghc/commit/beaa07d204a779cc509985765a87da95faefb359">beaa07d2</a></strong>
<div>
<span>by Sylvain Henry</span>
<i>at 2019-04-12T17:17:21Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">Hadrian: fix ghci wrapper script generation (#16508)
</pre>
</li>
<li>
<strong><a href="https://gitlab.haskell.org/ghc/ghc/commit/e05df3e1380989ca00ecd88b6d7d0f4aec5502fb">e05df3e1</a></strong>
<div>
<span>by Ben Gamari</span>
<i>at 2019-04-12T17:23:30Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">gitlab-ci: Ensure that version number has three components
</pre>
</li>
<li>
<strong><a href="https://gitlab.haskell.org/ghc/ghc/commit/885d2e04854f038fbb899ab545df2b57d9b8bba4">885d2e04</a></strong>
<div>
<span>by klebinger.andreas@gmx.at</span>
<i>at 2019-04-12T18:40:04Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">Add -ddump-stg-final to dump stg as it is used for codegen.
Intermediate STG does not contain free variables which can be useful
sometimes. So adding a flag to dump that info.
</pre>
</li>
<li>
<strong><a href="https://gitlab.haskell.org/ghc/ghc/commit/3c759ced1c894da2358d12fa91e20f12adf0e5bd">3c759ced</a></strong>
<div>
<span>by Alp Mestanogullari</span>
<i>at 2019-04-12T18:46:54Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">Hadrian: add a --test-accept/-a flag, to mimic 'make accept'
When -a or --test-accept is passed, and if one runs the 'test' target, then
any test failing because of mismatching output and which is not expected to
fail will have its expected output adjusted by the test driver, effectively
considering the new output correct from now on.
When this flag is passed, hadrian's 'test' target becomes sensitive to the
PLATFORM and OS environment variable, just like the Make build system:
- when the PLATFORM env var is set to "YES", when accepting a result, accept it
for the current platform;
- when the OS env var is set to "YES", when accepting a result, accept it
for all wordsizes of the current operating system.
This can all be combined with `--only="..."` and `TEST="..." to only accept
the new output of a subset of tests.
</pre>
</li>
<li>
<strong><a href="https://gitlab.haskell.org/ghc/ghc/commit/f4b5a6c040abb492367fdfe18c4f2ebf03c0d084">f4b5a6c0</a></strong>
<div>
<span>by Alp Mestanogullari</span>
<i>at 2019-04-12T18:46:54Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">Hadrian: document -a/--test-accept
</pre>
</li>
<li>
<strong><a href="https://gitlab.haskell.org/ghc/ghc/commit/30a0988d2a1398bc5be79e506a3cc55df4b5bd79">30a0988d</a></strong>
<div>
<span>by Ben Gamari</span>
<i>at 2019-04-12T19:41:07Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">gitlab: Disable windows-hadrian job
Not only is it reliably failing due to #16574 but all of the quickly
failing builds also causes the Windows runners to run out of disk space.
</pre>
</li>
<li>
<strong><a href="https://gitlab.haskell.org/ghc/ghc/commit/8870a51bd62f2d4ee7bd21b96240d5806c2817af">8870a51b</a></strong>
<div>
<span>by Ben Gamari</span>
<i>at 2019-04-12T19:41:07Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">gitlab: Don't run lint-submods job on Marge branches
This broke Marge by creating a second pipeline (consisting of only the
`lint-submods` job). Marge then looked at this pipeline and concluded
that CI for her merge branch passed. However, this is ignores the fact
that the majority of the CI jobs are triggered on `merge_request` and
are therefore in another pipeline.
</pre>
</li>
<li>
<strong><a href="https://gitlab.haskell.org/ghc/ghc/commit/7876d08881b66c3e47d8dab3420c9c14616325e4">7876d088</a></strong>
<div>
<span>by Ben Gamari</span>
<i>at 2019-04-13T13:51:59Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">linters: Fix check-version-number
This should have used `grep -E`, not `grep -e`</pre>
</li>
<li>
<strong><a href="https://gitlab.haskell.org/ghc/ghc/commit/2e7b2e55de503d3b5086c0cec5f320667503f699">2e7b2e55</a></strong>
<div>
<span>by Ara Adkins</span>
<i>at 2019-04-13T14:00:02Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">[skip ci] Update CI badge in readme
This trivial MR updates the CI badge in the readme to point to the
new CI on gitlab, rather than the very out-of-date badge from
Travis.
</pre>
</li>
<li>
<strong><a href="https://gitlab.haskell.org/ghc/ghc/commit/40848a43072768d5a0a41a1df05f7a8ffd85f345">40848a43</a></strong>
<div>
<span>by Ben Gamari</span>
<i>at 2019-04-13T14:02:36Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">base: Better document implementation implications of Data.Timeout
As noted in #16546 timeout uses asynchronous exceptions internally, an
implementation detail which can leak out in surprising ways. Note this
fact.
Also expose the `Timeout` tycon.
[skip ci]
</pre>
</li>
<li>
<strong><a href="https://gitlab.haskell.org/ghc/ghc/commit/5f1830817b90960d5d11bee95a99df3e1425f8ab">5f183081</a></strong>
<div>
<span>by David Eichmann</span>
<i>at 2019-04-14T05:08:15Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">Hadrian: add rts shared library symlinks for backwards compatability
Fixes test T3807 when building with Hadrian.
Trac #16370
</pre>
</li>
<li>
<strong><a href="https://gitlab.haskell.org/ghc/ghc/commit/9b142c53325ffee6e3eef55daabefe9e2881f9e9">9b142c53</a></strong>
<div>
<span>by Sylvain Henry</span>
<i>at 2019-04-14T05:14:23Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">Hadrian: add binary-dist-dir target
This patch adds an Hadrian target "binary-dist-dir". Compared to
"binary-dist", it only builds a binary distribution directory without
creating the Tar archive. It makes the use/test of the bindist
installation script easier.
</pre>
</li>
<li>
<strong><a href="https://gitlab.haskell.org/ghc/ghc/commit/6febc444c0abea6c033174aa0e813c950b9b2877">6febc444</a></strong>
<div>
<span>by Krzysztof Gogolewski</span>
<i>at 2019-04-14T05:20:29Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">Fix assertion failures reported in #16533
</pre>
</li>
<li>
<strong><a href="https://gitlab.haskell.org/ghc/ghc/commit/edcef7b384ca5af6e67d58c39779d03f80768538">edcef7b3</a></strong>
<div>
<span>by Artem Pyanykh</span>
<i>at 2019-04-14T05:26:35Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">codegen: unroll memcpy calls for small bytearrays
</pre>
</li>
<li>
<strong><a href="https://gitlab.haskell.org/ghc/ghc/commit/6094d43f36bdab5ff3f246afca9a6018545fdd73">6094d43f</a></strong>
<div>
<span>by Artem Pyanykh</span>
<i>at 2019-04-14T05:26:35Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">docs: mention memcpy optimization for ByteArrays in 8.10.1-notes
</pre>
</li>
<li>
<strong><a href="https://gitlab.haskell.org/ghc/ghc/commit/d2271fe4e841cc157385bfc9ee498a0bf805f250">d2271fe4</a></strong>
<div>
<span>by Simon Jakobi</span>
<i>at 2019-04-14T12:43:17Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">Ord docs: Add explanation on 'min' and 'max' operator interactions
[ci skip]
</pre>
</li>
<li>
<strong><a href="https://gitlab.haskell.org/ghc/ghc/commit/e7cad16c19fb226353d3fb6e92914ed953d32857">e7cad16c</a></strong>
<div>
<span>by Krzysztof Gogolewski</span>
<i>at 2019-04-14T12:49:23Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">Add a safeguard to Core Lint
Lint returns a pair (Maybe a, WarnsAndErrs). The Maybe monad
allows to handle an unrecoverable failure.
In case of such a failure, the error should be added to the second
component of the pair. If this is not done, Lint will silently
accept bad programs. This situation actually happened during
development of linear types. This adds a safeguard.
</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="#b8dbb28cac2b7ba465be98a9ef055178d1b8bdec">
<span class="new-file">
+
.gitlab/linters/check-version-number.sh
</span>
</a>
</li>
<li class="file-stats">
<a href="#0641ef536c197a46fddf169b39613b0ff5ad92b3">
.gitlab/win32-init.sh
</a>
</li>
<li class="file-stats">
<a href="#8ec9a00bfd09b3190ac6b22251dbb1aa95a0579d">
README.md
</a>
</li>
<li class="file-stats">
<a href="#f33abed7f65cbef82d6577e3591644918f0781c0">
compiler/basicTypes/BasicTypes.hs
</a>
</li>
<li class="file-stats">
<a href="#e113fc0aba1ae306436787b3a33f8bb25fd513a9">
compiler/cmm/CmmCallConv.hs
</a>
</li>
<li class="file-stats">
<a href="#03104abc160df5563171ac063230f7473cb173c3">
compiler/cmm/CmmExpr.hs
</a>
</li>
<li class="file-stats">
<a href="#d50336124f51fb97043e81d9968bd8f97ee870f4">
compiler/cmm/CmmType.hs
</a>
</li>
<li class="file-stats">
<a href="#731b07c16b2f4bb31dd7defa4ceef54e74473cc7">
compiler/codeGen/StgCmmPrim.hs
</a>
</li>
<li class="file-stats">
<a href="#da5742c4b404a672740f0eef71683f5a8dd3818e">
compiler/coreSyn/CoreLint.hs
</a>
</li>
<li class="file-stats">
<a href="#78d03dfd32f676836003058b78ec026568dad5e9">
compiler/ghci/ByteCodeLink.hs
</a>
</li>
<li class="file-stats">
<a href="#cacd8cbc59c36ab8a39258a3a1dd6c44ad547d49">
compiler/llvmGen/LlvmCodeGen/Base.hs
</a>
</li>
<li class="file-stats">
<a href="#11e9bfd841c4163c1919b5e07efc84740e02010f">
compiler/main/DynFlags.hs
</a>
</li>
<li class="file-stats">
<a href="#a5d2f1f03da18c26aa3c615ca829648a4a806a5b">
compiler/main/HscMain.hs
</a>
</li>
<li class="file-stats">
<a href="#63c9d6e17d26bbb7f2d71094f5ffa2c67769ada0">
compiler/main/SysTools.hs
</a>
</li>
<li class="file-stats">
<a href="#34189e68ae2846ea6a5011a0869bbf30db1f73e5">
compiler/nativeGen/AsmCodeGen.hs
</a>
</li>
<li class="file-stats">
<a href="#83fed1dd4b7387a9f69f69e8fd12b1b0b703373f">
compiler/nativeGen/Format.hs
</a>
</li>
<li class="file-stats">
<a href="#6813443a69e922e51676d5b46a3d4b8a8a68aff9">
compiler/nativeGen/NCGMonad.hs
</a>
</li>
<li class="file-stats">
<a href="#4046c7d6a8687b60dad02104071b70a747bc6cba">
compiler/nativeGen/PPC/CodeGen.hs
</a>
</li>
<li class="file-stats">
<a href="#de093f16cc2c75be43b94a88724f45af7f37ede3">
compiler/nativeGen/PPC/Ppr.hs
</a>
</li>
<li class="file-stats">
<a href="#39ef0e0e6f32333cef55d7490f5c81d56c3e4dd2">
compiler/nativeGen/PPC/Regs.hs
</a>
</li>
<li class="file-stats">
<a href="#caed6a7fbd0180a5d6f4bf47d8ed32c0eafbb931">
compiler/nativeGen/Reg.hs
</a>
</li>
<li class="file-stats">
<a href="#533ebea51d63becf84c7c897367000fb2df09a2f">
compiler/nativeGen/RegAlloc/Graph/TrivColorable.hs
</a>
</li>
<li class="file-stats">
<a href="#53de2616b832c78459d80b76b6e5904328dbe416">
compiler/nativeGen/RegClass.hs
</a>
</li>
<li class="file-stats">
<a href="#cb67ca242a37526fa6e4b2c49f5aff286b49d7c7">
compiler/nativeGen/SPARC/Instr.hs
</a>
</li>
<li class="file-stats">
<a href="#e0f489c98187e3f8216752a8b49fd967ac19199b">
compiler/nativeGen/SPARC/Ppr.hs
</a>
</li>
<li class="file-stats">
<a href="#f5e1bdfb4d9cff520223997bafcdbe92f4109aa1">
compiler/nativeGen/SPARC/Regs.hs
</a>
</li>
<li class="file-stats">
<a href="#e08a7f13d9b4dd9216080725eb81bf254597216d">
compiler/nativeGen/X86/CodeGen.hs
</a>
</li>
<li class="file-stats">
<a href="#fbf70e5accfb150cd0a2dfa0edb775dad323f4d4">
compiler/nativeGen/X86/Instr.hs
</a>
</li>
<li class="file-stats">
<a href="#c32cb02af3d68609de00fed7ce75ae668e4c5688">
compiler/nativeGen/X86/Ppr.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/1cae41ee28a319697b312285ec3f95f06528221e...e7cad16c19fb226353d3fb6e92914ed953d32857">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>