<!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/alpine-ci
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/effdd948056923f3bc03688c24d7e0339d6272f5">effdd948</a></strong>
<div>
<span>by Andrew Martin</span>
<i>at 2019-06-14T14:48:13Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">Implement the -XUnliftedNewtypes extension.

GHC Proposal: 0013-unlifted-newtypes.rst
Discussion: https://github.com/ghc-proposals/ghc-proposals/pull/98
Issues: #15219, #1311, #13595, #15883
Implementation Details:
  Note [Implementation of UnliftedNewtypes]
  Note [Unifying data family kinds]
  Note [Compulsory newtype unfolding]

This patch introduces the -XUnliftedNewtypes extension. When this
extension is enabled, GHC drops the restriction that the field in
a newtype must be of kind (TYPE 'LiftedRep). This allows types
like Int# and ByteArray# to be used in a newtype. Additionally,
coerce is made levity-polymorphic so that it can be used with
newtypes over unlifted types.

The bulk of the changes are in TcTyClsDecls.hs. With -XUnliftedNewtypes,
getInitialKind is more liberal, introducing a unification variable to
return the kind (TYPE r0) rather than just returning (TYPE 'LiftedRep).
When kind-checking a data constructor with kcConDecl, we attempt to
unify the kind of a newtype with the kind of its field's type. When
typechecking a data declaration with tcTyClDecl, we again perform a
unification. See the implementation note for more on this.

Co-authored-by: Richard Eisenberg <rae@richarde.dev>
</pre>
</li>
<li>
<strong><a href="https://gitlab.haskell.org/ghc/ghc/commit/5279dda861f6a5cc804be88dc5f0ff2442660149">5279dda8</a></strong>
<div>
<span>by Ben Gamari</span>
<i>at 2019-06-14T14:48:51Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">PrelRules: Don't break let/app invariant in shiftRule

Previously shiftRule would rewrite as invalid shift like
```
let x = I# (uncheckedIShiftL# n 80)
in ...
```
to
```
let x = I# (error "invalid shift")
in ...
```
However, this breaks the let/app invariant as `error` is not
okay-for-speculation. There isn't an easy way to avoid this so let's not
try. Instead we just take advantage of the undefined nature of invalid
shifts and return zero.

Fixes #16742.
</pre>
</li>
<li>
<strong><a href="https://gitlab.haskell.org/ghc/ghc/commit/227252c54b19df7caeb2bbad1e362a4a2c1db04d">227252c5</a></strong>
<div>
<span>by Ben Gamari</span>
<i>at 2019-06-15T02:15:00Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">base/Event/Poll: Drop POLLRDHUP enum item

Previously the Event enumeration produced by hsc2hs would sometimes
include a currently-unused POLLRDHUP item. This unused binding would
result in a build failure. Drop it.
</pre>
</li>
<li>
<strong><a href="https://gitlab.haskell.org/ghc/ghc/commit/99d084585334b4251eb11b24be32fb684049623f">99d08458</a></strong>
<div>
<span>by Ben Gamari</span>
<i>at 2019-06-15T02:15:00Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">testsuite: Fix T8602 on musl

Musl wants hash-bangs on all executables.
</pre>
</li>
<li>
<strong><a href="https://gitlab.haskell.org/ghc/ghc/commit/c9fe6251d03036467b150b02809995e5e77bc143">c9fe6251</a></strong>
<div>
<span>by Ben Gamari</span>
<i>at 2019-06-15T02:15:00Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">testsuite: Ensure T5423 flushes C output buffer

Previously T5423 would fail to flush the printf output buffer.
Consequently it was platform-dependent whether the C or Haskell print
output would be emitted first.
</pre>
</li>
<li>
<strong><a href="https://gitlab.haskell.org/ghc/ghc/commit/2d74366d9fd2a900b5605d606be04522a5a81fd9">2d74366d</a></strong>
<div>
<span>by Ben Gamari</span>
<i>at 2019-06-15T02:15:00Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">testsuite: Flush conc059's printf buffer

Otherwise it the order out the Haskell and C output will be
system-dependent.
</pre>
</li>
<li>
<strong><a href="https://gitlab.haskell.org/ghc/ghc/commit/fd84933f8aec38c0433c47de5e7f59f1f3fe710e">fd84933f</a></strong>
<div>
<span>by Ben Gamari</span>
<i>at 2019-06-15T02:15:00Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">testsuite: Ensure that ffi005 output order is predictable

The libc output buffer wasn't being flushed, making the order
system-depedent.
</pre>
</li>
<li>
<strong><a href="https://gitlab.haskell.org/ghc/ghc/commit/312ddc4cd1277ed4431ee8cbeaf64aebc69c73e1">312ddc4c</a></strong>
<div>
<span>by Ben Gamari</span>
<i>at 2019-06-15T02:15:00Z</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">gitlab-ci: Build alpine release bindists
</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="#2c842f2f15e67826dc12cc363525b56acb7b7882">
compiler/basicTypes/Id.hs
</a>
</li>
<li class="file-stats">
<a href="#2f8fee2abca5d63f3b2a113efc849e4e6054c49a">
compiler/basicTypes/MkId.hs
</a>
</li>
<li class="file-stats">
<a href="#ae667aa599c96310c85c0258e4e7d72b00275ae5">
compiler/codeGen/StgCmmForeign.hs
</a>
</li>
<li class="file-stats">
<a href="#c51feff1097e886121a45f5d4b0baf4d9793d59e">
compiler/coreSyn/CoreSyn.hs
</a>
</li>
<li class="file-stats">
<a href="#4cebcede53127700de963abffccad9d336d74889">
compiler/deSugar/DsExpr.hs
</a>
</li>
<li class="file-stats">
<a href="#2b3e067399771b3fa0f5379f12d4dbc25a19252e">
compiler/hsSyn/HsTypes.hs
</a>
</li>
<li class="file-stats">
<a href="#11e9bfd841c4163c1919b5e07efc84740e02010f">
compiler/main/DynFlags.hs
</a>
</li>
<li class="file-stats">
<a href="#6c14b513ade9b691d4a805f6a7de89634d3863ae">
compiler/main/TidyPgm.hs
</a>
</li>
<li class="file-stats">
<a href="#844514241b3e1a009f66bf594cbb57fef61482fb">
compiler/prelude/PrelRules.hs
</a>
</li>
<li class="file-stats">
<a href="#9715ddba4708ba02dac192a1f72fa50717761aff">
compiler/prelude/PrimOp.hs
</a>
</li>
<li class="file-stats">
<a href="#0188aac58d5dfb76292827933bb504a964ed7c01">
compiler/prelude/TysPrim.hs
</a>
</li>
<li class="file-stats">
<a href="#2a8bedbc781353ca3c4d1e56daba6faa8829aaf3">
compiler/prelude/primops.txt.pp
</a>
</li>
<li class="file-stats">
<a href="#a55612b2faf1041b010514ceb222ddf75c15a326">
compiler/rename/RnSource.hs
</a>
</li>
<li class="file-stats">
<a href="#c573dfc3158e7ec41ecc0965becd5f1e6e92a2e6">
compiler/typecheck/TcErrors.hs
</a>
</li>
<li class="file-stats">
<a href="#89165943f253c43100bca06548eba40ff0519ca5">
compiler/typecheck/TcEvidence.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="#75d517f701402b106e4d98d255eb24b57ba72aab">
compiler/typecheck/TcSimplify.hs
</a>
</li>
<li class="file-stats">
<a href="#bdfa0cc139f61d1236abc1598c5d684b43c357f9">
compiler/typecheck/TcTyClsDecls.hs
</a>
</li>
<li class="file-stats">
<a href="#385f906219a06a4d607c6d990b0ea2a1fd047192">
compiler/typecheck/TcTypeable.hs
</a>
</li>
<li class="file-stats">
<a href="#8cd24482c6f44f6736157718a50265828b6b7436">
compiler/types/Coercion.hs
</a>
</li>
<li class="file-stats">
<a href="#07ce9a046fb8ea6659690020b0a8551d94cfdf1c">
compiler/types/Type.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="#40d93f06cdb95d1c98a6b3832d0153e59839d832">
docs/users_guide/glasgow_exts.rst
</a>
</li>
<li class="file-stats">
<a href="#604342bbb7e38062a420ad845dcc1280e9d12b2e">
libraries/base/Control/Category.hs
</a>
</li>
<li class="file-stats">
<a href="#3e6d85a9ce8aa3cb5d4b30cb62c64041ae4ae32d">
libraries/base/Data/Coerce.hs
</a>
</li>
<li class="file-stats">
<a href="#f28dd385a6cc13623fc149cdeec41af9ba8d3e47">
libraries/base/Data/Type/Coercion.hs
</a>
</li>
<li class="file-stats">
<a href="#2755f32886c2656f273820ffb30a84a5a8be7a3a">
libraries/base/GHC/Base.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/bc5a72c105b37f94ab13af72bb9be2b7a1b35f6a...312ddc4cd1277ed4431ee8cbeaf64aebc69c73e1">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>