<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN" "http://www.w3.org/TR/REC-html40/loose.dtd">
<html lang="en" style='--code-editor-font: var(--default-mono-font, "Menlo"), DejaVu Sans Mono, Liberation Mono, Consolas, Ubuntu Mono, Courier New, andale mono, lucida console, monospace;'>
<head>
<meta content="text/html; charset=US-ASCII" http-equiv="Content-Type">
<title>
GitLab
</title>

<style data-premailer="ignore" type="text/css">
a { color: #1068bf; }
</style>


<style>img {
max-width: 100%; height: auto;
}
body {
font-size: 0.875rem;
}
body {
-webkit-text-shadow: rgba(255,255,255,0.01) 0 0 1px;
}
body {
font-family: var(--default-regular-font, -apple-system),BlinkMacSystemFont,"Segoe UI",Roboto,"Noto Sans",Ubuntu,Cantarell,"Helvetica Neue",sans-serif,"Apple Color Emoji","Segoe UI Emoji","Segoe UI Symbol","Noto Color Emoji"; font-size: inherit;
}
</style>
</head>
<body style='font-size: inherit; -webkit-text-shadow: rgba(255,255,255,0.01) 0 0 1px; font-family: var(--default-regular-font, -apple-system),BlinkMacSystemFont,"Segoe UI",Roboto,"Noto Sans",Ubuntu,Cantarell,"Helvetica Neue",sans-serif,"Apple Color Emoji","Segoe UI Emoji","Segoe UI Symbol","Noto Color Emoji";'>
<div class="content">

<h3 style="margin-top: 20px; margin-bottom: 10px;">
Marge Bot pushed to branch wip/marge_bot_batch_merge_job at <a href="https://gitlab.haskell.org/ghc/ghc">Glasgow Haskell Compiler / GHC</a>
</h3>
<h4 style="margin-top: 10px; margin-bottom: 10px;">
Commits:
</h4>
<ul>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/9095e297fbb46781fd182210609ce2a3f6c59b7a">9095e297</a></strong>
<div>
<span> by Matthew Craven </span> <i> at 2023-04-04T01:04:10-04:00 </i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.875rem; color: #333238; position: relative; font-family: var(--default-mono-font, "Menlo"),"DejaVu Sans Mono","Liberation Mono","Consolas","Ubuntu Mono","Courier New","andale mono","lucida console",monospace; word-break: break-all; word-wrap: break-word; background-color: #fbfafd; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dcdcde;'>Add a few more memcpy-ish primops

* copyMutableByteArrayNonOverlapping#
* copyAddrToAddr#
* copyAddrToAddrNonOverlapping#
* setAddrRange#

The implementations of copyBytes, moveBytes, and fillBytes
in base:Foreign.Marshal.Utils now use these new primops,
which can cause us to work a bit harder generating code for them,
resulting in the metric increase in T21839c observed by CI on
some architectures.  But in exchange, we get better code!

Metric Increase:
    T21839c
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/f7da530c80c0117d5684bb52481e4a40d7e724cc">f7da530c</a></strong>
<div>
<span> by Matthew Craven </span> <i> at 2023-04-04T01:04:10-04:00 </i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.875rem; color: #333238; position: relative; font-family: var(--default-mono-font, "Menlo"),"DejaVu Sans Mono","Liberation Mono","Consolas","Ubuntu Mono","Courier New","andale mono","lucida console",monospace; word-break: break-all; word-wrap: break-word; background-color: #fbfafd; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dcdcde;'>StgToCmm: Upgrade -fcheck-prim-bounds behavior

Fixes #21054. Additionally, we can now check for range overlap
when generating Cmm for primops that use memcpy internally.
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/cd00e321d5d7aaee3999b283a2a2f0d77f7b3e8e">cd00e321</a></strong>
<div>
<span> by sheaf </span> <i> at 2023-04-04T01:04:50-04:00 </i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.875rem; color: #333238; position: relative; font-family: var(--default-mono-font, "Menlo"),"DejaVu Sans Mono","Liberation Mono","Consolas","Ubuntu Mono","Courier New","andale mono","lucida console",monospace; word-break: break-all; word-wrap: break-word; background-color: #fbfafd; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dcdcde;'>Relax assertion in varToRecFieldOcc

When using Template Haskell, it is possible to re-parent a field OccName
belonging to one data constructor to another data constructor. The
lsp-types package did this in order to "extend" a data constructor
with additional fields.

This ran into an assertion in 'varToRecFieldOcc'. This assertion
can simply be relaxed, as the resulting splices are perfectly sound.

Fixes #23220
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/bd04461e2465c4d9500249ed7951999b9ad82f5f">bd04461e</a></strong>
<div>
<span> by Sylvain Henry </span> <i> at 2023-04-04T08:39:04-04:00 </i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.875rem; color: #333238; position: relative; font-family: var(--default-mono-font, "Menlo"),"DejaVu Sans Mono","Liberation Mono","Consolas","Ubuntu Mono","Courier New","andale mono","lucida console",monospace; word-break: break-all; word-wrap: break-word; background-color: #fbfafd; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dcdcde;'>GHCi.RemoteTypes: fix doc and avoid unsafeCoerce (#23201)
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/6a36e70a9b05e9e884351b327a3d9fae79744d57">6a36e70a</a></strong>
<div>
<span> by Ryan Scott </span> <i> at 2023-04-04T08:39:05-04:00 </i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.875rem; color: #333238; position: relative; font-family: var(--default-mono-font, "Menlo"),"DejaVu Sans Mono","Liberation Mono","Consolas","Ubuntu Mono","Courier New","andale mono","lucida console",monospace; word-break: break-all; word-wrap: break-word; background-color: #fbfafd; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dcdcde;'>Make INLINE pragmas for pattern synonyms work with TH

Previously, the code for converting `INLINE <name>` pragmas from TH splices
used `vNameN`, which assumed that `<name>` must live in the variable namespace.
Pattern synonyms, on the other hand, live in the constructor namespace. I've
fixed the issue by switching to `vcNameN` instead, which works for both the
variable and constructor namespaces.

Fixes #23203.
</pre>
</li>
</ul>
<h4 style="margin-top: 10px; margin-bottom: 10px;">
30 changed files:
</h4>
<ul>
<li class="file-stats">
<a href="#451725cc4e5d443a3b7c2adcdf224840f953b7e2">
compiler/GHC/Builtin/primops.txt.pp
</a>
</li>
<li class="file-stats">
<a href="#db697f6aea9f93f1583f1d5c62d25570a1e07f73">
compiler/GHC/Cmm/CLabel.hs
</a>
</li>
<li class="file-stats">
<a href="#e05ee69330b0f7088f11a5f3567137547489664d">
compiler/GHC/Rename/Names.hs
</a>
</li>
<li class="file-stats">
<a href="#efe7444c09eed0fdaa83e6904e6328fb435620bf">
compiler/GHC/Runtime/Interpreter.hs
</a>
</li>
<li class="file-stats">
<a href="#e18aab7fcc134a71d91f9d26e33b5110a3917e44">
compiler/GHC/StgToCmm/Foreign.hs
</a>
</li>
<li class="file-stats">
<a href="#d12a108e34fe83acc9c99357ae841e22a0af0a23">
compiler/GHC/StgToCmm/Prim.hs
</a>
</li>
<li class="file-stats">
<a href="#e09f1e9480e87656c84c1bbb39c1441b7884819d">
compiler/GHC/StgToJS/Prim.hs
</a>
</li>
<li class="file-stats">
<a href="#2eac51f9871ca0c0698aa1fc7f79c05ef8fc4a49">
compiler/GHC/ThToHs.hs
</a>
</li>
<li class="file-stats">
<a href="#6816c5954a025bb59270f70d0a997e605585d801">
compiler/GHC/Types/Name/Occurrence.hs
</a>
</li>
<li class="file-stats">
<a href="#bfe4012b965aecec838b0c7a99b46541b855be1b">
libraries/base/Data/Array/Byte.hs
</a>
</li>
<li class="file-stats">
<a href="#d0c52aee09ac4f74b731dc9721c3769829099d84">
libraries/base/Foreign/Marshal/Utils.hs
</a>
</li>
<li class="file-stats">
<a href="#54f2593fa6d429b2b82cc2200e8bcda0f38854de">
libraries/ghc-prim/changelog.md
</a>
</li>
<li class="file-stats">
<a href="#c3ca2fc908cfe6af60e2061aafb76df8d70e0f5f">
libraries/ghci/GHCi/RemoteTypes.hs
</a>
</li>
<li class="file-stats">
<a href="#70d18e67a9cf77b587327dc6bf2dccfb8d49b076">
rts/RtsMessages.c
</a>
</li>
<li class="file-stats">
<a href="#35c46ec23a1e2e71a201188f3cc1f0187a75afa3">
<span class="new-file">
+
testsuite/tests/codeGen/should_fail/CheckBoundsCompareByteArray2.hs
</span>
</a>
</li>
<li class="file-stats">
<a href="#afa31755b82459f6397873ba9e6f44cfe44b29ed">
<span class="new-file">
+
testsuite/tests/codeGen/should_fail/CheckBoundsCompareByteArray3.hs
</span>
</a>
</li>
<li class="file-stats">
<a href="#96625855adbdaa93bc954ed065d5d0e37300fcb5">
<span class="new-file">
+
testsuite/tests/codeGen/should_fail/CheckBoundsReadInt64Array.hs
</span>
</a>
</li>
<li class="file-stats">
<a href="#9e46b1cce91bed1bd63931b3466d5f975b1587bc">
<span class="new-file">
+
testsuite/tests/codeGen/should_fail/CheckBoundsReadSmallArray.hs
</span>
</a>
</li>
<li class="file-stats">
<a href="#01e7bcc0a91a441b7d9b0fb311bbccb222daaaf4">
<span class="new-file">
+
testsuite/tests/codeGen/should_fail/CheckBoundsReadWord64Array.hs
</span>
</a>
</li>
<li class="file-stats">
<a href="#c8e30e71b219432497114b04090f540a9e211d89">
<span class="new-file">
+
testsuite/tests/codeGen/should_fail/CheckBoundsReadWord8ArrayAsWord32.hs
</span>
</a>
</li>
<li class="file-stats">
<a href="#ea930f189d55cce2f9c38318f61724253eaa4e05">
<span class="new-file">
+
testsuite/tests/codeGen/should_fail/CheckOverlapCopyAddrToByteArray.hs
</span>
</a>
</li>
<li class="file-stats">
<a href="#1c7fce526069ba6a2346a42936f884b74e0c1e48">
<span class="new-file">
+
testsuite/tests/codeGen/should_fail/CheckOverlapCopyByteArray.hs
</span>
</a>
</li>
<li class="file-stats">
<a href="#a3c79f948a5ce9d4ebae8420cf58ed546139e4d8">
testsuite/tests/codeGen/should_fail/all.T
</a>
</li>
<li class="file-stats">
<a href="#9d9240d2c2192aaa495328328bda0514f8d6c297">
<span class="new-file">
+
testsuite/tests/codeGen/should_run/CheckBoundsOK.hs
</span>
</a>
</li>
<li class="file-stats">
<a href="#b9bba9766faf563ab195fb1402f14fa78ad5c66f">
testsuite/tests/codeGen/should_run/all.T
</a>
</li>
<li class="file-stats">
<a href="#38da84ad3d7c7108a1b66b6df56fb26db331febb">
<span class="new-file">
+
testsuite/tests/overloadedrecflds/should_compile/T23220.hs
</span>
</a>
</li>
<li class="file-stats">
<a href="#bd592e37284128419c83dfe2e9bf65a54fe29e71">
<span class="new-file">
+
testsuite/tests/overloadedrecflds/should_compile/T23220_aux.hs
</span>
</a>
</li>
<li class="file-stats">
<a href="#a4526d40331f0c3cc7dcf767d9f0c3435906b487">
testsuite/tests/overloadedrecflds/should_compile/all.T
</a>
</li>
<li class="file-stats">
<a href="#0f890e1b40b4a8af399bfd58c148912443818e85">
<span class="new-file">
+
testsuite/tests/th/T23203.hs
</span>
</a>
</li>
<li class="file-stats">
<a href="#895e33af2d384c34ccf42fb6413d3fb929680401">
<span class="new-file">
+
testsuite/tests/th/T23203.stderr
</span>
</a>
</li>
</ul>
<h5 style="margin-top: 10px; margin-bottom: 10px; font-size: 0.875rem;">
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: #737278;">

<br>
<a href="https://gitlab.haskell.org/ghc/ghc/-/compare/74a983783cab24435658a1da81b19e85f41baa10...6a36e70a9b05e9e884351b327a3d9fae79744d57">View it on GitLab</a>.
<br>
You're receiving this email because of your account on <a target="_blank" rel="noopener noreferrer" href="https://gitlab.haskell.org">gitlab.haskell.org</a>. <a href="https://gitlab.haskell.org/-/profile/notifications" target="_blank" rel="noopener noreferrer" class="mng-notif-link">Manage all notifications</a> · <a href="https://gitlab.haskell.org/help" target="_blank" rel="noopener noreferrer" class="help-link">Help</a>



</p>
</div>
</body>
</html>