<!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/keepAlive-the-return-of-the-primop
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/f88f43398217a5f4c2d326555e21fb1417a21db2">f88f4339</a></strong>
<div>
<span>by Ben Gamari</span>
<i>at 2020-11-24T02:43:20-05:00</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">rts: Flush eventlog buffers from flushEventLog

As noted in #18043, flushTrace failed flush anything beyond the writer.
This means that a significant amount of data sitting in capability-local
event buffers may never get flushed, despite the users' pleads for us to
flush.

Fix this by making flushEventLog flush all of the event buffers before
flushing the writer.

Fixes #18043.
</pre>
</li>
<li>
<strong><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/7c03cc5010999d0f0f9dfc549984023b3a1f2c8d">7c03cc50</a></strong>
<div>
<span>by Ben Gamari</span>
<i>at 2020-11-24T02:43:55-05:00</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">gitlab-ci: Run LLVM job on appropriately-labelled MRs

Namely, those marked with the ~"LLVM backend" label
</pre>
</li>
<li>
<strong><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/9b95d815d718ce671e9e87b8a2eb0534ed5688dd">9b95d815</a></strong>
<div>
<span>by Ben Gamari</span>
<i>at 2020-11-24T02:43:55-05:00</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">gitlab-ci: Run LLVM builds on Debian 10

The current Debian 9 image doesn't provide LLVM 7.
</pre>
</li>
<li>
<strong><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/2ed3e6c0f179c06828712832d1176519cdfa82a6">2ed3e6c0</a></strong>
<div>
<span>by Ben Gamari</span>
<i>at 2020-11-24T02:43:55-05:00</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">CmmToLlvm: Declare signature for memcmp

Otherwise `opt` fails with:

    error: use of undefined value '@memcmp$def'
</pre>
</li>
<li>
<strong><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/6e16c85391e49316c47360ba3412936cee36f4c3">6e16c853</a></strong>
<div>
<span>by Ben Gamari</span>
<i>at 2020-11-24T10:49:12-05:00</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">base: Add unsafeWithForeignPtr
</pre>
</li>
<li>
<strong><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/5dc677fe5d8ab7b0405bd6a3202585e01cd1ba63">5dc677fe</a></strong>
<div>
<span>by Ben Gamari</span>
<i>at 2020-11-24T10:59:59-05:00</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">base: Introduce GHC.ForeignPtr.Ops module

This contains a variety of peek/poke operations for ForeignPtr accesses.
</pre>
</li>
<li>
<strong><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/3c9d4db744acca44dcbeb25bcc7c0a20533b8a66">3c9d4db7</a></strong>
<div>
<span>by Ben Gamari</span>
<i>at 2020-11-24T10:59:59-05:00</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">GHC.IO.Buffer: Use ForeignPtr-specialised peek/poke
</pre>
</li>
<li>
<strong><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/e190afc1d36553f921eaf51b5372ab0a88600037">e190afc1</a></strong>
<div>
<span>by Ben Gamari</span>
<i>at 2020-11-24T11:05:55-05:00</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">GHC.Data.ByteArray: Initial commit
</pre>
</li>
<li>
<strong><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/70c6f4f4f2425d5d095850ab600ac12450d71d48">70c6f4f4</a></strong>
<div>
<span>by Ben Gamari</span>
<i>at 2020-11-24T20:00:48-05:00</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">StringBuffer: Rid it of ForeignPtrs

Bumps haddock submodule.
</pre>
</li>
<li>
<strong><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/643947791cd67e552ace053f83cc184f0c561705">64394779</a></strong>
<div>
<span>by Ben Gamari</span>
<i>at 2020-11-24T20:00:56-05:00</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">GHC.Utils.Binary: Eliminate allocating withForeignPtr uses
</pre>
</li>
<li>
<strong><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/cbb83effe6450ff72daf4111463eb82fc08e5676">cbb83eff</a></strong>
<div>
<span>by Ben Gamari</span>
<i>at 2020-11-24T20:00:56-05:00</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">base: Eliminate allocating withForeignPtrs from GHC.Event.Array
</pre>
</li>
<li>
<strong><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/4c9a7a1614788708264202de03fe1f45ca3fae21">4c9a7a16</a></strong>
<div>
<span>by Ben Gamari</span>
<i>at 2020-11-24T20:00:56-05:00</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">base: Use unsafeWithForeignPtr in GHC.IO.Buffer
</pre>
</li>
<li>
<strong><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/dac48341dd9713fb5c77956599678ee4fb6987ee">dac48341</a></strong>
<div>
<span>by Ben Gamari</span>
<i>at 2020-11-24T20:00:56-05:00</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">GHC.Event.Array: Use unsafeWithForeignPtr
</pre>
</li>
<li>
<strong><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/918211013cced851784c1f5ec5c68f97317f0f13">91821101</a></strong>
<div>
<span>by Ben Gamari</span>
<i>at 2020-11-24T20:00:56-05:00</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">Bump bytestring submodule

Teach it to use unsafeWithForeignPtr where appropriate.
</pre>
</li>
<li>
<strong><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/0b7d6a3e9914a540ef4ad5898c4b5b53ed3ce5c3">0b7d6a3e</a></strong>
<div>
<span>by Ben Gamari</span>
<i>at 2020-11-24T20:02:08-05:00</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">genprimopcode: Add a second levity-polymorphic tyvar

This will be needed shortly.
</pre>
</li>
<li>
<strong><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/c54ca943a97a652ad5841b3dff39393f473f24a0">c54ca943</a></strong>
<div>
<span>by GHC GitLab CI</span>
<i>at 2020-11-24T20:02:08-05:00</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">Introduce keepAlive primop
</pre>
</li>
<li>
<strong><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/103452a96f447e4e41f68ebae8296d096b96c497">103452a9</a></strong>
<div>
<span>by Ben Gamari</span>
<i>at 2020-11-24T20:02:08-05:00</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">base: Use keepAlive# in withForeignPtr
</pre>
</li>
<li>
<strong><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/0aa024af655c61cfee9e1ad0a2672af79dab92c1">0aa024af</a></strong>
<div>
<span>by Ben Gamari</span>
<i>at 2020-11-24T20:02:08-05:00</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">Implement withByteArrayContents in terms of keepAlive#
</pre>
</li>
<li>
<strong><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/e75c508058da18c01413760039add60a58428ffc">e75c5080</a></strong>
<div>
<span>by Ben Gamari</span>
<i>at 2020-11-24T20:02:08-05:00</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">base: Implement GHC.ForeignPtr.Ops in terms of keepAlive#
</pre>
</li>
<li>
<strong><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/945b8cba869340124b93f829d375c9247f0d0f23">945b8cba</a></strong>
<div>
<span>by Ben Gamari</span>
<i>at 2020-11-24T20:02:08-05:00</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">base: Use keepAlive# in Foreign.Marshal.Alloc
</pre>
</li>
<li>
<strong><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/86ee8fda65cb6305922b6e183e2e495a87319e84">86ee8fda</a></strong>
<div>
<span>by Ben Gamari</span>
<i>at 2020-11-24T20:02:08-05:00</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">ghc-compact: Use keepAlive# in GHC.Compact.Serialized
</pre>
</li>
<li>
<strong><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/2e809f72c7f900da77b48df397463d6c95f0b1d6">2e809f72</a></strong>
<div>
<span>by Ben Gamari</span>
<i>at 2020-11-24T20:02:08-05:00</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">testsuite: Accept
</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="#451725cc4e5d443a3b7c2adcdf224840f953b7e2">
compiler/GHC/Builtin/primops.txt.pp
</a>
</li>
<li class="file-stats">
<a href="#b5ac041c7f79084a7a7626eda4cdadda3457d235">
compiler/GHC/CmmToLlvm/Base.hs
</a>
</li>
<li class="file-stats">
<a href="#1a7aba0daeafab195716dd25432479804a55ab60">
compiler/GHC/Core/Utils.hs
</a>
</li>
<li class="file-stats">
<a href="#a5d27de4e3111a69f69902c65ecf7b3379f7c49a">
compiler/GHC/CoreToStg/Prep.hs
</a>
</li>
<li class="file-stats">
<a href="#d50c1b09577df2a95d27e4bc44a1ca053e745b0d">
<span class="new-file">
+
compiler/GHC/Data/ByteArray.hs
</span>
</a>
</li>
<li class="file-stats">
<a href="#1a8e557860a337556f570aff25f52ee93b397055">
compiler/GHC/Data/StringBuffer.hs
</a>
</li>
<li class="file-stats">
<a href="#d12a108e34fe83acc9c99357ae841e22a0af0a23">
compiler/GHC/StgToCmm/Prim.hs
</a>
</li>
<li class="file-stats">
<a href="#f35faa85de2e0a75cdaa452eb7336a09c677d450">
compiler/GHC/Utils/Binary.hs
</a>
</li>
<li class="file-stats">
<a href="#0f33fd88c617246c7f89c4477d2d1d24f942df23">
compiler/ghc.cabal.in
</a>
</li>
<li class="file-stats">
<a href="#f7bfc5e15e7497f29b41f6df46865c151a07955d">
includes/RtsAPI.h
</a>
</li>
<li class="file-stats">
<a href="#a1d25ba13887eca47ad71301d419574bea4696a0">
includes/rts/EventLogWriter.h
</a>
</li>
<li class="file-stats">
<a href="#cbecf35546dee344ca6fb2e73c7515f07e868d0f">
libraries/base/Debug/Trace.hs
</a>
</li>
<li class="file-stats">
<a href="#67eb7bf6167db761647d70b8c599a9f0b917dcfe">
libraries/base/Foreign/ForeignPtr/Imp.hs
</a>
</li>
<li class="file-stats">
<a href="#bdefba21b6f0d308fad9eca21ed6fc6b6e453542">
libraries/base/Foreign/Marshal/Alloc.hs
</a>
</li>
<li class="file-stats">
<a href="#9da165501d56886dac6f415b5652511d5b7efa09">
libraries/base/GHC/Event/Array.hs
</a>
</li>
<li class="file-stats">
<a href="#269448746b2d7046ede74979e927b8642db7271f">
libraries/base/GHC/ForeignPtr.hs
</a>
</li>
<li class="file-stats">
<a href="#ffa7143e033c356bd5836266ad162a16f043c913">
<span class="new-file">
+
libraries/base/GHC/ForeignPtr/Ops.hs
</span>
</a>
</li>
<li class="file-stats">
<a href="#c3f82e5dcdf2d1dbd2e2130bc39def2570af6cba">
libraries/base/GHC/IO/Buffer.hs
</a>
</li>
<li class="file-stats">
<a href="#b7cfb47853ef95330e499ca0c5b90964744d101f">
libraries/base/base.cabal
</a>
</li>
<li class="file-stats">
<a href="#ccb6db036bae2c1242147ab8e03f3410502feba9">
libraries/bytestring
</a>
</li>
<li class="file-stats">
<a href="#1fff7939e439e1a46b51fc3d747b1fd8df7a1822">
libraries/ghc-boot/GHC/Data/ShortText.hs
</a>
</li>
<li class="file-stats">
<a href="#2af520124580166971987234320ebbf272209757">
libraries/ghc-boot/GHC/Utils/Encoding.hs
</a>
</li>
<li class="file-stats">
<a href="#0d48b9682b9d83781a37b0ee5fd5775b72347e64">
libraries/ghc-compact/GHC/Compact/Serialized.hs
</a>
</li>
<li class="file-stats">
<a href="#33249795fee267712d5c3a7ecfa9f2edea260401">
rts/Capability.c
</a>
</li>
<li class="file-stats">
<a href="#62ec5569a8af1e443ae952b393d15b9dd1cea199">
rts/Capability.h
</a>
</li>
<li class="file-stats">
<a href="#687f0b17315e54a1692de64626391e572ca298e9">
rts/LinkerInternals.h
</a>
</li>
<li class="file-stats">
<a href="#16c842a51a135c8ef2c7c7f94336544868348a3c">
rts/RtsSymbols.c
</a>
</li>
<li class="file-stats">
<a href="#7d6961cb073b9fe3df3a81f0ad5cf36eed293c42">
rts/Schedule.c
</a>
</li>
<li class="file-stats">
<a href="#050d739b5c42d009648d099fb66bae809e83482e">
rts/Trace.c
</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/17ad689a701eae4c7647574c857530515a0d344b...2e809f72c7f900da77b48df397463d6c95f0b1d6">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>