<!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/559d4f846fb13cb0cb181c7882b9128e1d2bfdf4">559d4f84</a></strong>
<div>
<span> by Krzysztof Gogolewski </span> <i> at 2024-12-30T11:53:19-05:00 </i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 14px; color: #28272d; position: relative; font-family: "GitLab Mono","JetBrains Mono","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 tests for #23883
The issue has been fixed by commit f5d3e03c56ffc63.
Only T23883a is the actual regression test, the remaining ones are
tricky cases found during development of an independent fix !11313.
</pre>
</li>
<li>
<strong style="font-weight: 600;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/278a53ee698d961d97afb60be9db2d8bf60b4074">278a53ee</a></strong>
<div>
<span> by Sergey Vinokurov </span> <i> at 2024-12-30T11:53:59-05:00 </i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 14px; color: #28272d; position: relative; font-family: "GitLab Mono","JetBrains Mono","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;'>Update changelog for CLC proposal #107 (NonEmpty laziness)
</pre>
</li>
<li>
<strong style="font-weight: 600;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/0efb7900dbd4e3ffbe96247874a4fc2db102e83f">0efb7900</a></strong>
<div>
<span> by Mike Pilgrem </span> <i> at 2024-12-31T11:41:48+00:00 </i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 14px; color: #28272d; position: relative; font-family: "GitLab Mono","JetBrains Mono","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;'>Re CLC #300 - Specify fmap for NonEmpty as map
See:
* https://github.com/haskell/core-libraries-committee/issues/300
Seeks to:
* move existing instances for NonEmpty (except of Eq and Ord) out of GHC.Internal.Base into new GHC.Internal.Data.NonEmpty (to avoid otherwise unavoidable cycles in the module graph);
* move map out of Data.List.NonEmpty (base package) into GHC.Internal.Data.NonEmpty;
* define fmap as map for NonEmpty instance of Functor, avoiding code duplication;
* re-export map from existing GHC.Internal.Data.List.NonEmpty; and
* re-export map from Data.List.NonEmpty (base package);
without breaking anything in the GHC repository.
Various tests *.stdout and *.stderr files are amended also.
</pre>
</li>
<li>
<strong style="font-weight: 600;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/b17fc06ae971223c3b7ae6d058e95cb2584911f4">b17fc06a</a></strong>
<div>
<span> by Luite Stegeman </span> <i> at 2025-01-07T05:44:45-05:00 </i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 14px; color: #28272d; position: relative; font-family: "GitLab Mono","JetBrains Mono","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 flags for switching off speculative evaluation.
We found that speculative evaluation can increase the amount of
allocations in some circumstances. This patch adds new flags for
selectively disabling speculative evaluation, allowing us to
test the effect of the optimization.
The new flags are:
-fspec-eval
globally enable speculative evaluation
-fspec-eval-dictfun
enable speculative evaluation for dictionary functions (no effect
if speculative evaluation is globally disabled)
The new flags are on by default for all optimisation levels.
See #25284
</pre>
</li>
<li>
<strong style="font-weight: 600;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/06b68f59bc09a7b120ccd3a46dfb9f6ff8944e60">06b68f59</a></strong>
<div>
<span> by Matthew Pickering </span> <i> at 2025-01-07T05:44:46-05:00 </i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 14px; color: #28272d; position: relative; font-family: "GitLab Mono","JetBrains Mono","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;'>warnings: Find out if a qualified name is in the interactive scope directly
There were two ad-hoc mechanisms used to determine which modules were in
the interactive scope.
1. Look at everything in the GRE, to see what is imported qualified.
2. Look at the last loaded module in the HPT.
(1) Is very inefficient, GlobalRdrEnvs can be very big.
(2) is incorrect, there is no reason to assume the "last" thing added to
the HPT has any relevance to module loading order.
Happily, the same checks can be implemented directly by looking at the
interactive imports from the interactive context. This mirrors what
happens for normal imports.
Arguably, the error reporting code shouldn't be doing this kind of
processing and it should be an option is set when rendering the error
message. However, this just improves the situation and doesn't block
progress on that front in future.
See #14225 and #15611
Fixes #25600
</pre>
</li>
<li>
<strong style="font-weight: 600;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/78c441f0ddce190ddcbba94aa03104ea9859c8fa">78c441f0</a></strong>
<div>
<span> by Simon Peyton Jones </span> <i> at 2025-01-07T05:44:47-05:00 </i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 14px; color: #28272d; position: relative; font-family: "GitLab Mono","JetBrains Mono","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;'>Tidy up kcConDecls
Addresses #25630
In particular,
* Introduce ConArgKind and use it.
* Make kcConDecls and tcConDecls work the same way
concerning the kind of argument types
</pre>
</li>
</ul>
<h4 style="margin-top: 10px; margin-bottom: 10px;">
30 changed files:
</h4>
<ul>
<li class="file-stats">
<a href="#a5d27de4e3111a69f69902c65ecf7b3379f7c49a">
compiler/GHC/CoreToStg/Prep.hs
</a>
</li>
<li class="file-stats">
<a href="#515e45714efa1079dede946c7258fc0d66d9bd35">
compiler/GHC/Driver/Config/CoreToStg/Prep.hs
</a>
</li>
<li class="file-stats">
<a href="#e65e7bbfc24f8830a20082bfc50f6d16e613cbeb">
compiler/GHC/Driver/DynFlags.hs
</a>
</li>
<li class="file-stats">
<a href="#2e5692f568fd7b67a6b172e2a60469da8392508c">
compiler/GHC/Driver/Flags.hs
</a>
</li>
<li class="file-stats">
<a href="#774d88050336ef660c7a219fb06c480c2fc639bc">
compiler/GHC/Driver/Session.hs
</a>
</li>
<li class="file-stats">
<a href="#666fdec4f6f5adba7a23b6cb0a09a0b6c3fc51ed">
compiler/GHC/Rename/Unbound.hs
</a>
</li>
<li class="file-stats">
<a href="#83d23a46bb6cdc8b1edc16f1fd2c8f5c53e2c9ca">
compiler/GHC/Tc/TyCl.hs
</a>
</li>
<li class="file-stats">
<a href="#2e45f2cd303dd998950a7c8042e796a5b2abd64f">
docs/users_guide/using-optimisation.rst
</a>
</li>
<li class="file-stats">
<a href="#392e9dfd3417e267d708c5ab16536f2994d43745">
libraries/base/changelog.md
</a>
</li>
<li class="file-stats">
<a href="#bb99dcdd1145e72572944a803ab3b333da8a2489">
libraries/base/src/Data/List/NonEmpty.hs
</a>
</li>
<li class="file-stats">
<a href="#68d643353c591e76c6239dd2abb39123dbc1ad3c">
libraries/base/src/Data/Semigroup.hs
</a>
</li>
<li class="file-stats">
<a href="#658fa064028089d13fd5ed47614667aef36cd7a8">
libraries/base/src/GHC/Base.hs
</a>
</li>
<li class="file-stats">
<a href="#463c72332b99752eebac4f2f2744351289121f2d">
libraries/ghc-internal/ghc-internal.cabal.in
</a>
</li>
<li class="file-stats">
<a href="#ba249a32ecf4af1ebf439d603c59e49a4ff5d604">
libraries/ghc-internal/src/GHC/Internal/Base.hs
</a>
</li>
<li class="file-stats">
<a href="#a2dc3f40a1ee876db464c111a95d3b64583d9272">
libraries/ghc-internal/src/GHC/Internal/Control/Monad/Fix.hs
</a>
</li>
<li class="file-stats">
<a href="#b34aba3c50cb371d5ea0121337be127022149660">
libraries/ghc-internal/src/GHC/Internal/Control/Monad/Zip.hs
</a>
</li>
<li class="file-stats">
<a href="#fc3bd5253b4462a655967621fd36e0c897f9bff1">
libraries/ghc-internal/src/GHC/Internal/Data/Data.hs
</a>
</li>
<li class="file-stats">
<a href="#5deafdbd5900a62f8f5d3b24ccd1ff22a5edb1e6">
libraries/ghc-internal/src/GHC/Internal/Data/Foldable.hs
</a>
</li>
<li class="file-stats">
<a href="#798efe842aea4d8978cec65c4e5173aa30b77804">
libraries/ghc-internal/src/GHC/Internal/Data/List/NonEmpty.hs
</a>
</li>
<li class="file-stats">
<a href="#1af84773d6f1138b2cdfc756fd1da34cb14f50ce">
<span class="new-file">
+
libraries/ghc-internal/src/GHC/Internal/Data/NonEmpty.hs
</span>
</a>
</li>
<li class="file-stats">
<a href="#c2b95b2f8609a2f61babb238dafd995df8eb6d38">
libraries/ghc-internal/src/GHC/Internal/Data/Traversable.hs
</a>
</li>
<li class="file-stats">
<a href="#aa889b9768a5f02cf422645918b3aca165b8739a">
libraries/ghc-internal/src/GHC/Internal/Generics.hs
</a>
</li>
<li class="file-stats">
<a href="#000b1e763c4e401bf1b71920b9bb2a87a5f41be4">
libraries/ghc-internal/src/GHC/Internal/TH/Lib.hs
</a>
</li>
<li class="file-stats">
<a href="#7e5404c7d97337c31e50a084e8f7230c6f5eb4b5">
libraries/ghc-internal/src/GHC/Internal/TH/Lift.hs
</a>
</li>
<li class="file-stats">
<a href="#661b43655578566ae0a6ab55b6f670b1de666aa5">
libraries/ghc-internal/src/GHC/Internal/TH/Syntax.hs
</a>
</li>
<li class="file-stats">
<a href="#fdfc0f67fed47c4a09a83125fe925d928318a351">
libraries/ghc-internal/src/GHC/Internal/Text/ParserCombinators/ReadP.hs
</a>
</li>
<li class="file-stats">
<a href="#0ab52b6d9db4bc524557e8639c1437cfb93b2553">
<span class="new-file">
+
testsuite/tests/core-to-stg/T25284/A.hs
</span>
</a>
</li>
<li class="file-stats">
<a href="#51deabaa7f37c71be8b258ec3aa1e4bfabbffbc5">
<span class="new-file">
+
testsuite/tests/core-to-stg/T25284/B.hs
</span>
</a>
</li>
<li class="file-stats">
<a href="#02a2a0b205f8d829049dfd643ffd56c47ccc872e">
<span class="new-file">
+
testsuite/tests/core-to-stg/T25284/Cls.hs
</span>
</a>
</li>
<li class="file-stats">
<a href="#26d5530de9b6b0aa2f72ed1429e7f084cbd89765">
<span class="new-file">
+
testsuite/tests/core-to-stg/T25284/Main.hs
</span>
</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: #737278;">
—
<br>
<a href="https://gitlab.haskell.org/ghc/ghc/-/compare/32d0b8ca0f35f35b87403a4cdb1d9d836e46d715...78c441f0ddce190ddcbba94aa03104ea9859c8fa">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>