<!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;
}
body {
font-size: 0.875rem;
}
body {
-webkit-text-shadow: rgba(255,255,255,0.01) 0 0 1px;
}
body {
font-family: -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: -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;">
Ben Gamari pushed to branch ghc-9.4
at <a href="https://gitlab.haskell.org/ghc/ghc" style="color: #1068bf; text-decoration: none;">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/edfa9f4653b10cb0a897ace15b25b3b52cde5c39" style="color: #1068bf; text-decoration: none;">edfa9f46</a></strong>
<div>
<span>by Matthew Pickering</span>
<i>at 2022-11-01T17:46:56-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "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: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>Fix nested type splices in hie files
The issue is that when we compile a typed bracket we replace the splice
with HsSpliced (unTypeCode ...).
Then when computing types for
> [|| T $$(...) ||]
GHC is asked to compute the type of `T $$(..)`, which panics because
of the bogus type of T applied to `HsSpliced`, which is not type
correct.
The fix is to not attempt to compute the type for `HsSpliceE`
constructors if we come across them as they should have either been
already evaluated or lifted into a splice environment.
As part of the patch I made hie files traverse into the splice
environments so now we also get type information for things used inside
nested splices.
Fixes #21619
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/27f5c67e5435e68710306435cffcc83ac32087e6" style="color: #1068bf; text-decoration: none;">27f5c67e</a></strong>
<div>
<span>by Alan Zimmerman</span>
<i>at 2022-11-01T17:46:56-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "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: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>EPA: DotFieldOcc does not have exact print annotations
For the code
{-# LANGUAGE OverloadedRecordUpdate #-}
operatorUpdate f = f{(+) = 1}
There are no exact print annotations for the parens around the +
symbol, nor does normal ppr print them.
This MR fixes that.
Closes #21805
(cherry picked from commit 792ef44d455c6e987f342fb61515464322a9fa77)
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/0633665fae71b7986654f91887f481f653265dd4" style="color: #1068bf; text-decoration: none;">0633665f</a></strong>
<div>
<span>by Simon Peyton Jones</span>
<i>at 2022-11-01T17:46:56-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "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: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>Fix arityType: -fpedantic-bottoms, join points, etc
This MR fixes #21694 and #21755
* For #21694 the underlying problem was that we were calling arityType
on an expression that had free join points. This is a Bad Bad Idea.
See Note [No free join points in arityType].
* I also made andArityType work correctly with -fpedantic-bottoms;
see Note [Combining case branches: andWithTail].
* I realised that, now we have ae_sigs giving the ArityType for
let-bound Ids, we don't need the (pre-dating) special code in
arityType for join points. But instead we need to extend the env for
Rec bindings, which weren't doing before. More uniform now. See
Note [arityType for let-bindings].
This meant we could get rid of ae_joins, and in fact get rid of
EtaExpandArity altogether. Simpler.
And finally, it was the strange treatment of join-point Ids (involving
a fake ABot type) that led to a serious bug: #21755. Fixed by this
refactoring
* Rewrote Note [Combining case branches: optimistic one-shot-ness]
Compile time improves slightly on average:
Metrics: compile_time/bytes allocated
---------------------------------------------------------------------------------------
CoOpt_Read(normal) ghc/alloc 803,788,056 747,832,680 -7.1% GOOD
T18223(normal) ghc/alloc 928,207,320 959,424,016 +3.1% BAD
geo. mean -0.3%
minimum -7.1%
maximum +3.1%
On Windows it's a bit better: geo mean is -0.6%, and three more
benchmarks trip their compile-time bytes-allocated threshold (they
were all close on the other build):
T18698b(normal) ghc/alloc 235,619,776 233,219,008 -1.0% GOOD
T6048(optasm) ghc/alloc 112,208,192 109,704,936 -2.2% GOOD
T18140(normal) ghc/alloc 85,064,192 83,168,360 -2.2% GOOD
I had a quick look at T18223 but it is knee deep in coercions and
the size of everything looks similar before and after. I decided
to accept that 3.4% increase in exchange for goodness elsewhere.
Metric Decrease:
CoOpt_Read
LargeRecord
ManyAlternatives
ManyConstructors
MultiComponentModules
MultiComponentModulesRecomp
T10421
T12425
T12707
T13035
T13253
T13379
T14683
T15703
T18698a
T1969
T3064
T3294
T4801
T5321FD
T5321Fun
T5631
T783
T9020
T9198
T9233
T9872b
T9872c
T9961
parsing001
Metric Increase:
T18223
(cherry picked from commit 5e282da37e19a1ab24ae167daf32276a64ed2842)
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/f4200e2219606e73d051f0e2de98cf75d72bd683" style="color: #1068bf; text-decoration: none;">f4200e22</a></strong>
<div>
<span>by Ben Gamari</span>
<i>at 2022-11-01T17:49:13-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "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: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>Bump process submodule to v1.6.16.0
</pre>
</li>
</ul>
<h4 style="margin-top: 10px; margin-bottom: 10px;">30 changed files:</h4>
<ul>
<li class="file-stats">
<a href="#182d6a315e784018aa9c8b2ad736036b97bd5d48" style="color: #1068bf; text-decoration: none;">
compiler/GHC/Core.hs
</a>
</li>
<li class="file-stats">
<a href="#c3967bb9d3e8f5aae2dd111b5a335b48c21c1999" style="color: #1068bf; text-decoration: none;">
compiler/GHC/Core/Opt/Arity.hs
</a>
</li>
<li class="file-stats">
<a href="#f168a93cde5e2aec2441d6331dfe500172df4af3" style="color: #1068bf; text-decoration: none;">
compiler/GHC/Core/Opt/Simplify.hs
</a>
</li>
<li class="file-stats">
<a href="#48fbb5cdea308650de5756521feb28ec68819b9b" style="color: #1068bf; text-decoration: none;">
compiler/GHC/Core/Opt/Simplify/Utils.hs
</a>
</li>
<li class="file-stats">
<a href="#cc97d81e7223ad4a3a5e801156ca632f9fa75654" style="color: #1068bf; text-decoration: none;">
compiler/GHC/Hs/Expr.hs
</a>
</li>
<li class="file-stats">
<a href="#f5160f63851d2edcbf12e12247c1b078cf40f20a" style="color: #1068bf; text-decoration: none;">
compiler/GHC/Hs/Syn/Type.hs
</a>
</li>
<li class="file-stats">
<a href="#649144a78135a23cabfc90dd83c4aabf448eb6ab" style="color: #1068bf; text-decoration: none;">
compiler/GHC/Iface/Ext/Ast.hs
</a>
</li>
<li class="file-stats">
<a href="#446cb12ca6cefaf1c6eb79b7db643632744263c7" style="color: #1068bf; text-decoration: none;">
compiler/GHC/Parser/PostProcess.hs
</a>
</li>
<li class="file-stats">
<a href="#a36a7299626a1a6ae3cf89e37bdd10e9bba4f852" style="color: #1068bf; text-decoration: none;">
compiler/Language/Haskell/Syntax/Expr.hs
</a>
</li>
<li class="file-stats">
<a href="#f67cc2e98b7648e8223021d15db39fab317444b3" style="color: #1068bf; text-decoration: none;">
libraries/process
</a>
</li>
<li class="file-stats">
<a href="#39817cf3a8c3fe5709e3fbe8569012164193de48" style="color: #1068bf; text-decoration: none;">
<span class="new-file">
+
testsuite/tests/arityanal/should_compile/Arity17.hs
</span>
</a>
</li>
<li class="file-stats">
<a href="#96503bd50e628de9da0242ab177c86eba5b64474" style="color: #1068bf; text-decoration: none;">
<span class="new-file">
+
testsuite/tests/arityanal/should_compile/T21755.hs
</span>
</a>
</li>
<li class="file-stats">
<a href="#576f5279ea2bb5d954894efc95d573c89a3cfb62" style="color: #1068bf; text-decoration: none;">
<span class="new-file">
+
testsuite/tests/arityanal/should_compile/T21755.stderr
</span>
</a>
</li>
<li class="file-stats">
<a href="#d67c329c07c6c486d54ae87ffc8be9188c198bcc" style="color: #1068bf; text-decoration: none;">
testsuite/tests/arityanal/should_compile/all.T
</a>
</li>
<li class="file-stats">
<a href="#bfbd7bb39280d6fdd92a45de80df4da108a794fe" style="color: #1068bf; text-decoration: none;">
<span class="new-file">
+
testsuite/tests/callarity/should_compile/T21694a.hs
</span>
</a>
</li>
<li class="file-stats">
<a href="#c2deb14168c7b43a93523c3ab4c2dd0ca7c3bb90" style="color: #1068bf; text-decoration: none;">
<span class="new-file">
+
testsuite/tests/callarity/should_compile/T21694a.stderr
</span>
</a>
</li>
<li class="file-stats">
<a href="#13262696020403da36eeb3cf4505a6c24e8f224d" style="color: #1068bf; text-decoration: none;">
testsuite/tests/hiefile/should_compile/all.T
</a>
</li>
<li class="file-stats">
<a href="#18c3353e834f265baca756581e4b78b6b79cb017" style="color: #1068bf; text-decoration: none;">
<span class="new-file">
+
testsuite/tests/hiefile/should_compile/hie011.hs
</span>
</a>
</li>
<li class="file-stats">
<a href="#5a033222bba1b508e9f67b85976aca802ee3722d" style="color: #1068bf; text-decoration: none;">
<span class="new-file">
+
testsuite/tests/hiefile/should_compile/hie011.stderr
</span>
</a>
</li>
<li class="file-stats">
<a href="#94265a1b42d0b30153d514825215b4fb514d8c00" style="color: #1068bf; text-decoration: none;">
<span class="new-file">
+
testsuite/tests/hiefile/should_run/SpliceTypes.hs
</span>
</a>
</li>
<li class="file-stats">
<a href="#ae79023f50da8ac19d9f0bdf63015eb33870129d" style="color: #1068bf; text-decoration: none;">
<span class="new-file">
+
testsuite/tests/hiefile/should_run/SpliceTypes.stdout
</span>
</a>
</li>
<li class="file-stats">
<a href="#e371036e3183079f32065d845f624d0b7572cbcf" style="color: #1068bf; text-decoration: none;">
testsuite/tests/hiefile/should_run/all.T
</a>
</li>
<li class="file-stats">
<a href="#42eff8ba3197e9f7d632174def99c179e8678c83" style="color: #1068bf; text-decoration: none;">
testsuite/tests/linters/notes.stdout
</a>
</li>
<li class="file-stats">
<a href="#8465ee0589acb77b7361deb499153b8394526c76" style="color: #1068bf; text-decoration: none;">
testsuite/tests/printer/Makefile
</a>
</li>
<li class="file-stats">
<a href="#2e91b897d5c2635328e3b9410ac11bee75768530" style="color: #1068bf; text-decoration: none;">
<span class="new-file">
+
testsuite/tests/printer/Test21805.hs
</span>
</a>
</li>
<li class="file-stats">
<a href="#35bfc07528b480db3a1cbcd8fb7c7ce5eb6868b0" style="color: #1068bf; text-decoration: none;">
testsuite/tests/printer/all.T
</a>
</li>
<li class="file-stats">
<a href="#db96e68392030bcad7b2d68e5b5445c587a3305e" style="color: #1068bf; text-decoration: none;">
<span class="new-file">
+
testsuite/tests/simplCore/should_compile/T21694b.hs
</span>
</a>
</li>
<li class="file-stats">
<a href="#fdbbd1c56a6e4c0ee25b66b4638546534d407f6c" style="color: #1068bf; text-decoration: none;">
<span class="new-file">
+
testsuite/tests/simplCore/should_compile/T21694b.stderr
</span>
</a>
</li>
<li class="file-stats">
<a href="#c5662bedafa6a48ec7062b131d94b70f514207d9" style="color: #1068bf; text-decoration: none;">
utils/check-exact/ExactPrint.hs
</a>
</li>
<li class="file-stats">
<a href="#a01c7c8d6870e84e6f69c9daf633c0cc2adbb1bf" style="color: #1068bf; text-decoration: none;">
utils/check-exact/Main.hs
</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: #666;">
—
<br>
<a href="https://gitlab.haskell.org/ghc/ghc/-/compare/9c08d9a1b40c8c66a5fdcd6cb1b02b20121c93c4...f4200e2219606e73d051f0e2de98cf75d72bd683" style="color: #1068bf; text-decoration: none;">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>