<!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, "GitLab Mono"), JetBrains Mono, 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: .875rem;
}
body {
-webkit-text-shadow: rgba(255,255,255,.01) 0 0 1px;
}
body {
font-family: "GitLab Sans",-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,.01) 0 0 1px; font-family: "GitLab Sans",-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: 600;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/915a6781cb0c8c7a0c832dcf2a8a769431aa8da0">915a6781</a></strong>
<div>
<span> by Matthew Pickering </span> <i> at 2025-03-13T01:46:41-04:00 </i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 14px; color: #3a383f; position: relative; font-family: "GitLab Mono", "JetBrains Mono", "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; font-variant-ligatures: none; word-break: break-all; word-wrap: break-word; background-color: #fbfafd; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dcdcde;'>interfaces: Ensure that forceModIface deeply forces a ModIface

A ModIface is the result of compilation that we keep for a long time in
memory. Therefore, it's very important to manage what we are going to
retain and remove any external references to things which we might have
captured compilation.

If storing your ModIface in memory uses too much space, then store
less things or make it use a more efficient representation.

In the past there have been many space leak bugs by not sufficiently
forcing a ModIface (#15111)

This patch adds all the missing NFData instances for all the places I
could find where we weren't deeply forcing the structure.
</pre>
</li>
<li>
<strong style="font-weight: 600;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/24d373a69c17d11da42c7fdc93efd4c17bd3f2c7">24d373a6</a></strong>
<div>
<span> by Matthew Craven </span> <i> at 2025-03-13T01:47:18-04:00 </i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 14px; color: #3a383f; position: relative; font-family: "GitLab Mono", "JetBrains Mono", "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; font-variant-ligatures: none; word-break: break-all; word-wrap: break-word; background-color: #fbfafd; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dcdcde;'>Add interface-stability test for ghc-prim
</pre>
</li>
<li>
<strong style="font-weight: 600;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/abbfcd5e5fb2762ec7d20fb151dacce9b706caeb">abbfcd5e</a></strong>
<div>
<span> by sheaf </span> <i> at 2025-03-14T08:11:29-04:00 </i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 14px; color: #3a383f; position: relative; font-family: "GitLab Mono", "JetBrains Mono", "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; font-variant-ligatures: none; word-break: break-all; word-wrap: break-word; background-color: #fbfafd; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dcdcde;'>Don't report used duplicate record fields as unused

This commit fixes the bug reported in #24035 in which the import of a
duplicate record field could be erroneously reported as unused.

The issue is that an import of the form "import M (fld)" can import
several different 'Name's, and we should only report an error if ALL
of those 'Name's are unused, not if ANY are.

Note [Reporting unused imported duplicate record fields]
in GHC.Rename.Names explains the solution to this problem.

Fixes #24035
</pre>
</li>
<li>
<strong style="font-weight: 600;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/c3b770390fee5cc9c170e745b6c513a4aa67868b">c3b77039</a></strong>
<div>
<span> by Matthew Pickering </span> <i> at 2025-03-14T08:11:29-04:00 </i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 14px; color: #3a383f; position: relative; font-family: "GitLab Mono", "JetBrains Mono", "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; font-variant-ligatures: none; word-break: break-all; word-wrap: break-word; background-color: #fbfafd; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dcdcde;'>binary: Directly copy ShortByteString to buffer rather than go via ByteString

This avoids allocating an intermediate bytestring. I just noticed on a
profile that `putFS` was allocating, and it seemed strange to me why
since it should just copy the contents of the FastString into the
already allocated buffer. It turned out we were going indirectly via a
ByteString.

Fixes #25861
</pre>
</li>
</ul>
<h4 style="margin-top: 10px; margin-bottom: 10px;">
47 changed files:
</h4>
<ul>
<li class="file-stats">
<a href="#182d6a315e784018aa9c8b2ad736036b97bd5d48">
compiler/GHC/Core.hs
</a>
</li>
<li class="file-stats">
<a href="#f10ed7a2470454dfdd8691a08beba67d8b78ee70">
compiler/GHC/Core/Coercion/Axiom.hs
</a>
</li>
<li class="file-stats">
<a href="#6fcf64907fb5bdd93082d2d1eb94e4566e735865">
compiler/GHC/Core/DataCon.hs
</a>
</li>
<li class="file-stats">
<a href="#578c7c3857d66d963736ff6742f3433a0e8d01b7">
compiler/GHC/Core/TyCo/Rep.hs
</a>
</li>
<li class="file-stats">
<a href="#4aad0050db1a8a20db8bbca149111de99cb299c9">
compiler/GHC/Core/TyCon.hs
</a>
</li>
<li class="file-stats">
<a href="#5a7f38fde8c90331b9c8bb6844b40fbea5c77387">
compiler/GHC/Data/Strict.hs
</a>
</li>
<li class="file-stats">
<a href="#2e5692f568fd7b67a6b172e2a60469da8392508c">
compiler/GHC/Driver/Flags.hs
</a>
</li>
<li class="file-stats">
<a href="#9c30887fc30e3c645fe9705eac50f0d8a5410c6b">
compiler/GHC/Hs/ImpExp.hs
</a>
</li>
<li class="file-stats">
<a href="#564e9a65da41b9a1a621e054ef5ddf8a487d3a97">
compiler/GHC/Iface/Recomp/Types.hs
</a>
</li>
<li class="file-stats">
<a href="#079d6b28856775716c78fdd4a4b35bb45a59002c">
compiler/GHC/Iface/Syntax.hs
</a>
</li>
<li class="file-stats">
<a href="#f2b2b84d138b362920ab9f144f58bf16254aab64">
compiler/GHC/Iface/Type.hs
</a>
</li>
<li class="file-stats">
<a href="#e05ee69330b0f7088f11a5f3567137547489664d">
compiler/GHC/Rename/Names.hs
</a>
</li>
<li class="file-stats">
<a href="#9ea832ccdb4b5f7508a1efd6caedeafa16b269e7">
compiler/GHC/Tc/Gen/Splice.hs
</a>
</li>
<li class="file-stats">
<a href="#5f47a6cc2453940682fe1b793f80c049348f7b3a">
compiler/GHC/Types/Annotations.hs
</a>
</li>
<li class="file-stats">
<a href="#166e3514d27c63ef7e86af29830d9e8b2a31c8b1">
compiler/GHC/Types/Basic.hs
</a>
</li>
<li class="file-stats">
<a href="#3fc5bb65c04915723225de2ada7ecc20157f2f23">
compiler/GHC/Types/CostCentre.hs
</a>
</li>
<li class="file-stats">
<a href="#5bcd33b3f4e2ded7d62072075645aee2aca65683">
compiler/GHC/Types/CostCentre/State.hs
</a>
</li>
<li class="file-stats">
<a href="#27aadaecb86e6f3f545286614804ef107a9949c8">
compiler/GHC/Types/ForeignCall.hs
</a>
</li>
<li class="file-stats">
<a href="#be1ee9a9349dfcfcaa49c4ef7eb91a31b326c982">
compiler/GHC/Types/GREInfo.hs
</a>
</li>
<li class="file-stats">
<a href="#ee98f016857ad5548bb7cdc5dd85246585acdfd6">
compiler/GHC/Types/Literal.hs
</a>
</li>
<li class="file-stats">
<a href="#5057204c7c8a2f21618a63fe5b393b47eafd57a1">
compiler/GHC/Types/SourceFile.hs
</a>
</li>
<li class="file-stats">
<a href="#9b5f1671f007d547cf3b5ec40babeafdffb99b1a">
compiler/GHC/Types/SrcLoc.hs
</a>
</li>
<li class="file-stats">
<a href="#5dac619989e8509003cf7b463c100f5cc56072a3">
compiler/GHC/Types/Var.hs
</a>
</li>
<li class="file-stats">
<a href="#887e29e8fb42c2e95ced4d97d29913d823a7d72f">
compiler/GHC/Unit/Module/Deps.hs
</a>
</li>
<li class="file-stats">
<a href="#1b4da42c16b46d6c6cc2c2962072b1e91f519f4a">
compiler/GHC/Unit/Module/ModIface.hs
</a>
</li>
<li class="file-stats">
<a href="#5938b47c4cbf0df07fe6b3b3771017f306a32634">
compiler/GHC/Unit/Types.hs
</a>
</li>
<li class="file-stats">
<a href="#f35faa85de2e0a75cdaa452eb7336a09c677d450">
compiler/GHC/Utils/Binary.hs
</a>
</li>
<li class="file-stats">
<a href="#fb2779c07baabf56d53cd66ce6d58b91a80130f7">
compiler/Language/Haskell/Syntax/Basic.hs
</a>
</li>
<li class="file-stats">
<a href="#ef5ad6f4dfc8fa107eace213eecba4bc1014ca57">
compiler/Language/Haskell/Syntax/Type.hs
</a>
</li>
<li class="file-stats">
<a href="#276b89d115b49e3c544848548beaa005b0d56b23">
compiler/Language/Haskell/Syntax/Type.hs-boot
</a>
</li>
<li class="file-stats">
<a href="#f200d12faceb564d24fae726cc4efa7a81da7b2d">
libraries/ghc-boot/GHC/Serialized.hs
</a>
</li>
<li class="file-stats">
<a href="#26fb2718cf02d0d3b99c7fdb83033be99806ab9f">
testsuite/tests/deriving/should_compile/T17324.stderr
</a>
</li>
<li class="file-stats">
<a href="#c057cea3e088c0efa10c84486404cc497ce7c4a5">
testsuite/tests/interface-stability/README.mkd
</a>
</li>
<li class="file-stats">
<a href="#43794991a3ab7bd4c54e1230bc8bdf11853f2e02">
testsuite/tests/interface-stability/all.T
</a>
</li>
<li class="file-stats">
<a href="#5ca09303e9841852333c82dec192a2ab3ee298d8">
<span class="new-file">
+
testsuite/tests/interface-stability/ghc-prim-exports.stdout
</span>
</a>
</li>
<li class="file-stats">
<a href="#9bfff027f8bd04d1f681f6af6bfe8d44b20273e8">
<span class="new-file">
+
testsuite/tests/interface-stability/ghc-prim-exports.stdout-mingw32
</span>
</a>
</li>
<li class="file-stats">
<a href="#a13eb8f8ae12d3aa66ebdb18c10ac1faa58e3244">
testsuite/tests/module/T11970A.stderr
</a>
</li>
<li class="file-stats">
<a href="#a5beef0f175cc1bee0a2d7dc843ff201c942c1ea">
testsuite/tests/module/mod176.stderr
</a>
</li>
<li class="file-stats">
<a href="#f65c47d6cb8bfcd5d72b4ec4eda69007db2bdf42">
testsuite/tests/overloadedrecflds/should_fail/overloadedrecfldsfail06.stderr
</a>
</li>
<li class="file-stats">
<a href="#09de9a4a037c35511dcc08a8d0fdb2b7a4eca84b">
testsuite/tests/rename/should_compile/T14881.stderr
</a>
</li>
<li class="file-stats">
<a href="#56974632e657d72a6a66eb8719ed14dd0b0c1c1d">
<span class="new-file">
+
testsuite/tests/rename/should_compile/T24035.hs
</span>
</a>
</li>
<li class="file-stats">
<a href="#f1adc31f43bfe0753ab723bf6f871cc9476ad632">
<span class="new-file">
+
testsuite/tests/rename/should_compile/T24035_aux.hs
</span>
</a>
</li>
<li class="file-stats">
<a href="#1ccc9646ac8d8e2cc346b3ef769938b7750f4d54">
<span class="new-file">
+
testsuite/tests/rename/should_compile/T24035b.hs
</span>
</a>
</li>
<li class="file-stats">
<a href="#9d0301d5403dc6db17b7f4bd11c39e69a47467d5">
<span class="new-file">
+
testsuite/tests/rename/should_compile/T24035b.stderr
</span>
</a>
</li>
<li class="file-stats">
<a href="#a4162a155076487da39ef091cacc50c633652a4d">
testsuite/tests/rename/should_compile/all.T
</a>
</li>
<li class="file-stats">
<a href="#586357a2c04f0362ee2cb86667775817c2aff155">
utils/dump-decls/Main.hs
</a>
</li>
<li class="file-stats">
<a href="#c076b696928328c9cd5824ee5867c5c390827167">
utils/haddock/haddock-api/src/Haddock/Types.hs
</a>
</li>
</ul>
<h5 style="margin-top: 10px; margin-bottom: 10px; font-size: .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: #626168;">

<br>
<a href="https://gitlab.haskell.org/ghc/ghc/-/compare/5346c9c653dc5a65f3f476956ac18ed21af3049c...c3b770390fee5cc9c170e745b6c513a4aa67868b">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>