<!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>
John Ericson pushed to branch wip/int64-everywhere-new-float-primops
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/75fc1ed58bb9adb3f472e1529d368c0fff479353">75fc1ed5</a></strong>
<div>
<span>by Sylvain Henry</span>
<i>at 2020-11-28T15:40:23-05:00</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">Hadrian: fix detection of ghc-pkg for cross-compilers
</pre>
</li>
<li>
<strong><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/7cb5df9617544dc3bdf85b719feaaa5d15f01c2c">7cb5df96</a></strong>
<div>
<span>by Sylvain Henry</span>
<i>at 2020-11-28T15:40:23-05:00</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">hadrian: fix ghc-pkg uses (#17601)

Make sure ghc-pkg doesn't read the compiler "settings" file by passing
--no-user-package-db.
</pre>
</li>
<li>
<strong><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/e3fd4226a08ac6cd4abe9f25f764e518de66834a">e3fd4226</a></strong>
<div>
<span>by Ben Gamari</span>
<i>at 2020-11-28T15:40:23-05:00</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">gitlab-ci: Introduce a nightly cross-compilation job

This adds a job to test cross-compilation from x86-64 to AArch64 with
Hadrian.

Fixes #18234
</pre>
</li>
<li>
<strong><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/698d3d9648e9cb6b3757269e21ce4fa1692a1a3b">698d3d96</a></strong>
<div>
<span>by Ben Gamari</span>
<i>at 2020-11-28T15:41:00-05:00</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">gitlab-ci: Only deploy GitLab Pages in ghc/ghc>

The deployments are quite large and yet are currently only served for
the ghc/ghc> project.
</pre>
</li>
<li>
<strong><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/625726f988852f5779825a954609d187d9865dc1">625726f9</a></strong>
<div>
<span>by David Eichmann</span>
<i>at 2020-11-28T15:41:37-05:00</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">ghc-heap: partial TSO/STACK decoding

Co-authored-by: Sven Tennie <sven.tennie@gmail.com>
Co-authored-by: Matthew Pickering <matthewtpickering@gmail.com>
Co-authored-by: Ben Gamari <bgamari.foss@gmail.com>
</pre>
</li>
<li>
<strong><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/22ea9c296906ad3a8fed384bcf6fb35d4b6ca814">22ea9c29</a></strong>
<div>
<span>by Andreas Klebinger</span>
<i>at 2020-11-28T15:42:13-05:00</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">Small optimization to CmmSink.

Inside `regsUsedIn` we can avoid some thunks by specializing the
recursion. In particular we avoid the thunk for `(f e z)` in the
MachOp/Load branches, where we know this will evaluate to z.

Reduces allocations for T3294 by ~1%.
</pre>
</li>
<li>
<strong><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/bba42c62220a437f52e7d30cbfa67e93b4cab06e">bba42c62</a></strong>
<div>
<span>by John Ericson</span>
<i>at 2020-11-28T15:42:49-05:00</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">Make primop handler indentation more consistent
</pre>
</li>
<li>
<strong><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/c82bc8e9d444d6d61198f3bfbcc7c5bb5f6ce13c">c82bc8e9</a></strong>
<div>
<span>by John Ericson</span>
<i>at 2020-11-28T15:42:49-05:00</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">Cleanup some primop constructor names

Harmonize the internal (big sum type) names of the native vs fixed-sized
number primops a bit. (Mainly by renaming the former.)

No user-facing names are changed.
</pre>
</li>
<li>
<strong><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/ae14f160c64d20880486ba365348ef3900c84a60">ae14f160</a></strong>
<div>
<span>by Ben Gamari</span>
<i>at 2020-11-28T15:43:25-05:00</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">testsuite: Mark T14702 as fragile on Windows

Due to #18953.
</pre>
</li>
<li>
<strong><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/d891d9423957e052d81a6807691f6cf013eaa84b">d891d942</a></strong>
<div>
<span>by John Ericson</span>
<i>at 2020-11-28T23:48:23+00:00</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">Cleanup number primop conversion names

Don't use "extend" or "narrow" in some of the user-facing primops
names for conversions.

  - Names like `narrowInt32#` are misleading when `Int` is 32-bits.

  - Names like `extendInt64#` are flat-out wrong when `Int is
    32-bits.

  - `narrow{Int,Word}<N>#` however map a type to itself, and so don't
    suffer from this problem. They are left as-is.
</pre>
</li>
<li>
<strong><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/4d6a5a08fed7d8ca83423010b1426ad87687c9c1">4d6a5a08</a></strong>
<div>
<span>by Sylvain Henry</span>
<i>at 2020-11-28T23:50:24+00:00</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">Make proper fixed-with number literals

(Progress towards #11953, #17377, #17375)

Besides being nicer to use, this also will allow for better constant
folding for the fixed-width types, on par with what `Int#` and `Word#`
have today.
</pre>
</li>
<li>
<strong><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/7aaba66d9ada4bf4f46efc272faa1a4a948aacc5">7aaba66d</a></strong>
<div>
<span>by John Ericson</span>
<i>at 2020-11-28T23:50:24+00:00</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">Make fixed-size `Int32#` and `Int64#`

The boxed Int64 uses Int64#, but Int32# still uses Int#. The 32-bit case
is less pressing to change because it is not a source of brittle
CPP---it is the same thing on all platforms.

We need Int64/Word64 constant folding to avoid the let/app restriction on Core, so
that is implemented now. 32-bit constant unfolding and 32-bit literals
are left as follow-up.

This is the bulk of #11953

Co-authored-by: Sylvain Henry <hsyl20@gmail.com>
</pre>
</li>
<li>
<strong><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/7b485b792ca128c68c06fe73bb83bc76a7c93ed2">7b485b79</a></strong>
<div>
<span>by John Ericson</span>
<i>at 2020-11-28T23:50:24+00:00</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">Inline INT64 and WORD64 macros in primops.txt.pp

The definition is now unconditional so there is no reason for that CPP.
</pre>
</li>
<li>
<strong><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/043b3f3d8156064c9997bce308baf5f604b6b1f4">043b3f3d</a></strong>
<div>
<span>by Sylvain Henry</span>
<i>at 2020-11-28T23:50:24+00:00</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">Adapt rules from #16402 to Word64#/Int64#
</pre>
</li>
<li>
<strong><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/b0c806033ca135f8b8d695f8075fc3a0a77623a2">b0c80603</a></strong>
<div>
<span>by John Ericson</span>
<i>at 2020-11-28T23:50:24+00:00</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">Copy enumFrom* implementations from Int/Word for Int64/Word64

Without this, we don't get proper list fusion.

I think this sort of copying is OK for now, but we absolutely need
something better if we are going to make `IntN` use `IntN#` for all `N`.
The degree to which proper metaprogramming has been punted upon by
factoring everything through the native-sized types is disconcerting.
</pre>
</li>
<li>
<strong><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/545593494ae4d623bc1b025c0ba84b083798ca8e">54559349</a></strong>
<div>
<span>by John Ericson</span>
<i>at 2020-11-28T23:50:24+00:00</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">`integerFromInt64#` can be inlined when the word size is >= 64 bits

Maybe this will help with the renaming test failure?
</pre>
</li>
<li>
<strong><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/7135eb06cf3e45edc85bffe299b7d0890aded7d1">7135eb06</a></strong>
<div>
<span>by John Ericson</span>
<i>at 2020-11-28T23:50:24+00:00</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">Add builtin rule for `divInt64#` and `modInt64#`
</pre>
</li>
<li>
<strong><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/f82c273ce0c3b3033698e64fd21e2f7dc858016a">f82c273c</a></strong>
<div>
<span>by John Ericson</span>
<i>at 2020-11-28T23:50:24+00:00</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">WIP: Add missing floats <-> int/word 64 rule and primops
</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="#157f7634c25bc6366cb7c9c9edb48e819dce38db">
.gitlab/ci.sh
</a>
</li>
<li class="file-stats">
<a href="#0887cf39c5cdf9cf8d6758f410d7dab3023c0d77">
compiler/GHC/Builtin/Names.hs
</a>
</li>
<li class="file-stats">
<a href="#ee840b93f51ee5ed4233a2f892343421ba49af58">
compiler/GHC/Builtin/bytearray-ops.txt.pp
</a>
</li>
<li class="file-stats">
<a href="#451725cc4e5d443a3b7c2adcdf224840f953b7e2">
compiler/GHC/Builtin/primops.txt.pp
</a>
</li>
<li class="file-stats">
<a href="#5c66928780aaad0eb5888511dc4b0b08492c69fa">
compiler/GHC/ByteCode/Types.hs
</a>
</li>
<li class="file-stats">
<a href="#c898e00d01234ab22d3b485be68db3645f52f220">
compiler/GHC/Cmm/MachOp.hs
</a>
</li>
<li class="file-stats">
<a href="#b1390f6749e1a2dddcae35f88d55623ea6269f56">
compiler/GHC/Cmm/Sink.hs
</a>
</li>
<li class="file-stats">
<a href="#c1d65bce6c6501bf42d5bf890e846709b5645832">
compiler/GHC/CmmToAsm/CPrim.hs
</a>
</li>
<li class="file-stats">
<a href="#f71fa75baa7807186473f09c45a9ada1b72f4c6c">
compiler/GHC/CmmToAsm/PPC/CodeGen.hs
</a>
</li>
<li class="file-stats">
<a href="#1684e8db5c0d415248dabe224ffe70205adc6b0f">
compiler/GHC/CmmToAsm/Ppr.hs
</a>
</li>
<li class="file-stats">
<a href="#e76eae04dea432f874db91c25e4a5725d7cc127b">
compiler/GHC/CmmToAsm/SPARC/CodeGen.hs
</a>
</li>
<li class="file-stats">
<a href="#2bae5947e9412f6deebf4db7dcb89d780913130f">
compiler/GHC/CmmToAsm/X86/CodeGen.hs
</a>
</li>
<li class="file-stats">
<a href="#76664ab267df4fc0bec2465efd78bf0afacfe3a7">
compiler/GHC/CmmToC.hs
</a>
</li>
<li class="file-stats">
<a href="#a49dbda5c8a9c380f638f55cf5ade791db0017cc">
compiler/GHC/CmmToLlvm/CodeGen.hs
</a>
</li>
<li class="file-stats">
<a href="#aa79261abf782f3dc603af7fbd5c4b08ed3ddb88">
compiler/GHC/Core/Opt/ConstantFold.hs
</a>
</li>
<li class="file-stats">
<a href="#4aad0050db1a8a20db8bbca149111de99cb299c9">
compiler/GHC/Core/TyCon.hs
</a>
</li>
<li class="file-stats">
<a href="#f017e4c978a9ff341ce5a7b838787fd2a4758b59">
compiler/GHC/HsToCore/Match/Literal.hs
</a>
</li>
<li class="file-stats">
<a href="#9a73e96e44e832a1552fc6bfd3939464f00823a2">
compiler/GHC/Iface/Tidy/StaticPtrTable.hs
</a>
</li>
<li class="file-stats">
<a href="#a2c62760f11b20e48d80212d37abf12997369f19">
compiler/GHC/Platform.hs
</a>
</li>
<li class="file-stats">
<a href="#efe7444c09eed0fdaa83e6904e6328fb435620bf">
compiler/GHC/Runtime/Interpreter.hs
</a>
</li>
<li class="file-stats">
<a href="#d12a108e34fe83acc9c99357ae841e22a0af0a23">
compiler/GHC/StgToCmm/Prim.hs
</a>
</li>
<li class="file-stats">
<a href="#3aa56839e36b2219f9ad54f5646ef3005da9c672">
compiler/GHC/Tc/Deriv/Generate.hs
</a>
</li>
<li class="file-stats">
<a href="#ad440013ca2a3a7accc3edc7f7807446b7b079c2">
compiler/GHC/Tc/Instance/Typeable.hs
</a>
</li>
<li class="file-stats">
<a href="#ee98f016857ad5548bb7cdc5dd85246585acdfd6">
compiler/GHC/Types/Literal.hs
</a>
</li>
<li class="file-stats">
<a href="#d3cf57b6a5ebc234dc7689db38ef9b6cf2259c0f">
compiler/GHC/Utils/Outputable.hs
</a>
</li>
<li class="file-stats">
<a href="#5eb45e64b15e0e7761c18d7b610be974e59838c7">
hadrian/src/Hadrian/Oracles/Cabal/Rules.hs
</a>
</li>
<li class="file-stats">
<a href="#f778073e1ac56573237022072b7ee42fd45bf135">
hadrian/src/Settings/Builders/GhcPkg.hs
</a>
</li>
<li class="file-stats">
<a href="#ccd32698c1d6d80e18d4e38a453603292e206906">
includes/stg/Prim.h
</a>
</li>
<li class="file-stats">
<a href="#9291b31007e89e8b38b9ca916cdad6f71073b937">
libraries/array
</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: #666;">

<br>
<a href="https://gitlab.haskell.org/ghc/ghc/-/compare/674bde54111594967b8f7494bd741cb7464d7f3b...f82c273ce0c3b3033698e64fd21e2f7dc858016a">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>