<!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/9c53489dfc7b47d97492064610d176a9140e9898">9c53489d</a></strong>
<div>
<span> by Andrei Borzenkov </span> <i> at 2024-12-12T15:06:42-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 GHCi :info type declaration printing (#24459)
- Do not print result's kind in type families
because we have full kind in SAKS and we display
invisible arity using @-binders
- Do not suppress significant invisible binders
An invisible binder is considered significant when it meets at least
one of the following two criteria:
- It visibly occurs in the declaration's body
- It is followed by a significant binder,
so it affects positioning
For non-generative type declarations (type synonyms and type families)
there is one additional criterion:
- It is not followed by a visible binder, so it
affects the arity of a type synonym
See Note [Print invisible binders in interface declarations]
for more information about what is "visibly occurs"
</pre>
</li>
<li>
<strong style="font-weight: 600;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/13fe48d40004d9cdf3c73300a18f144bdc5191d9">13fe48d4</a></strong>
<div>
<span> by Matthew Pickering </span> <i> at 2024-12-12T15:07: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;'>typechecker: Perform type family consistency checks in topological order
Consider a module M importing modules A, B and C.
We can waste a lot of work depending on the order that the modules are
checked for family consistency.
Consider that C imports A and B. When compiling C we must have already
checked A and B for consistency, therefore if C is processed first then
A and B will not need to be checked for consistency again.
If A and B are compared first, then the consistency checks will be
performed against (wasted as we already performed them for C).
At the moment the order which modules are checked is non-deterministic.
Clearly we should engineer that C is checked before B and A, but by what
scheme?
A simple one is to observe that if a module M is in the transitive
closure of X then the size of the consistent family set of M is less
than or equal to size of the consistent family set of X.
Therefore by sorting the imports by the size of the consistent family
set and processing the largest first, you make sure to process modules
in topological order.
In practice we have observed that this strategy has reduced the amount
of consistency checks performed.
One solution to #25554
</pre>
</li>
<li>
<strong style="font-weight: 600;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/b51d841fa21c833810af35c619fe90a735220da1">b51d841f</a></strong>
<div>
<span> by Sylvain Henry </span> <i> at 2024-12-13T20:20:49-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;'>TNTC: set CmmProc entry_label properly (#25565)
Before this patch we were renaming the entry label of a CmmProc late in
the CmmToAsm pass. It led to inconsistencies and to some labels being
used in info tables but not being emitted (#25565).
Now we set the CmmProc entry label earlier in the StgToCmm monad and we
don't renamed it afterwards.
</pre>
</li>
<li>
<strong style="font-weight: 600;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/d3089a2c537d586d3d21095f5320dfa9498a9ca7">d3089a2c</a></strong>
<div>
<span> by Simon Hengel </span> <i> at 2024-12-13T20:20:51-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;'>Make filter functionality for system tools line-based
This is more efficient as:
- All existing filter functions were line-based anyway. They broke up
the input into lines and then joined it back together.
- We already break up the output from system tools into lines when
processing it.
Splitting up the output of system tools once and then filtering and
processing it reduces both code and runtime complexity.
</pre>
</li>
<li>
<strong style="font-weight: 600;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/3c8fd6c74eb22e29f4f5397bf4deec1b6cded99f">3c8fd6c7</a></strong>
<div>
<span> by Simon Hengel </span> <i> at 2024-12-13T20:20:51-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;'>Refactoring: Don't use a `Chan` when parsing SysTools output
</pre>
</li>
</ul>
<h4 style="margin-top: 10px; margin-bottom: 10px;">
30 changed files:
</h4>
<ul>
<li class="file-stats">
<a href="#335d279236d65dcf13f2bab3891e515cb803203c">
compiler/GHC/CmmToAsm/X86/Ppr.hs
</a>
</li>
<li class="file-stats">
<a href="#4aad0050db1a8a20db8bbca149111de99cb299c9">
compiler/GHC/Core/TyCon.hs
</a>
</li>
<li class="file-stats">
<a href="#1de47350fb4bfcebb6862aa37c54887713e15847">
compiler/GHC/Driver/Config/Linker.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="#68974a530342b5613b0cb6d72fb716a25d8f031a">
compiler/GHC/Linker/Config.hs
</a>
</li>
<li class="file-stats">
<a href="#f117e9b1b1b9964c4d89aa403162f1c388114cda">
compiler/GHC/StgToCmm/Monad.hs
</a>
</li>
<li class="file-stats">
<a href="#7d3359a337486f9067d22455a38fdf75479921fb">
compiler/GHC/SysTools/Process.hs
</a>
</li>
<li class="file-stats">
<a href="#44b98437cdd35d6836caab46e32906e669708388">
compiler/GHC/SysTools/Tasks.hs
</a>
</li>
<li class="file-stats">
<a href="#07389a8f0516c26409d86f6bb651ed00759b5d4c">
compiler/GHC/Tc/Instance/Family.hs
</a>
</li>
<li class="file-stats">
<a href="#e65390fa5a32c453a81a1c9a3e1c4464d155ca4a">
compiler/GHC/Tc/Module.hs
</a>
</li>
<li class="file-stats">
<a href="#3000f72e31f633a1742a9c76be14862281166b11">
docs/users_guide/9.14.1-notes.rst
</a>
</li>
<li class="file-stats">
<a href="#b02c1c6109c60b8f685234b0dbaabf6c79fed2a2">
docs/users_guide/ghci.rst
</a>
</li>
<li class="file-stats">
<a href="#0eb86cba1aecaec6a26e2055f3f19c14a962b052">
testsuite/tests/backpack/should_fail/T19244a.stderr
</a>
</li>
<li class="file-stats">
<a href="#d1deb95b4e7f7bfdb3b9446463f87709fa49b482">
testsuite/tests/backpack/should_fail/T19244b.stderr
</a>
</li>
<li class="file-stats">
<a href="#4679d29be72526925068686f1b8bec666ece0ee8">
testsuite/tests/backpack/should_fail/bkpfail46.stderr
</a>
</li>
<li class="file-stats">
<a href="#ec1a4945ff609e17915d75839baaed893d646689">
testsuite/tests/ghci/T18060/T18060.stdout
</a>
</li>
<li class="file-stats">
<a href="#a609b75173f8eeaa8089e89da5cb58fcdda3a2ca">
testsuite/tests/ghci/scripts/ListTuplePunsPpr.stdout
</a>
</li>
<li class="file-stats">
<a href="#21dd0e65506192b650c3c66fabf14e04384763cd">
testsuite/tests/ghci/scripts/T15941.stdout
</a>
</li>
<li class="file-stats">
<a href="#b780a01d3ad424dd993edbc1b52f982d72f08f86">
testsuite/tests/ghci/scripts/T19310.stdout
</a>
</li>
<li class="file-stats">
<a href="#4d465ea31e5a21f525a0c7c65d9732e37f4c677e">
testsuite/tests/ghci/scripts/T21294a.stdout
</a>
</li>
<li class="file-stats">
<a href="#6d1eea5fc5d1a2836c14c0d953508d33894f1043">
<span class="new-file">
+
testsuite/tests/ghci/scripts/T24459.script
</span>
</a>
</li>
<li class="file-stats">
<a href="#f09a934dd56be61212000a1fef5c409cf3cc3f38">
<span class="new-file">
+
testsuite/tests/ghci/scripts/T24459.stdout
</span>
</a>
</li>
<li class="file-stats">
<a href="#cc0d49dd06082ebd3a26d4b9608ea3f7e32b5af1">
testsuite/tests/ghci/scripts/T8535.stdout
</a>
</li>
<li class="file-stats">
<a href="#591ccaad6cc5f2544a9a61bad46cb0dde9ef998c">
testsuite/tests/ghci/scripts/T9181.stdout
</a>
</li>
<li class="file-stats">
<a href="#080fb38cc741d3f1a476696b3373ab7cf48c2aaa">
testsuite/tests/ghci/scripts/all.T
</a>
</li>
<li class="file-stats">
<a href="#f52fc15931034d67c989ee2984c8c6f042978bd2">
testsuite/tests/ghci/scripts/ghci020.stdout
</a>
</li>
<li class="file-stats">
<a href="#9b33d42a56362047b81cf7b4543b764a06b0c758">
testsuite/tests/ghci/should_run/T10145.stdout
</a>
</li>
<li class="file-stats">
<a href="#521c51a3dce743bc57374150d00df600616a2db5">
testsuite/tests/ghci/should_run/T18594.stdout
</a>
</li>
<li class="file-stats">
<a href="#2ca7b1d6bb24cd05ca30a428efb924268c8dbc51">
testsuite/tests/interface-stability/base-exports.stdout
</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/7698a505889cd590af93a18956188e339e3199c5...3c8fd6c74eb22e29f4f5397bf4deec1b6cded99f">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>