<!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;">
Matthew Pickering pushed to branch wip/specialise-assembler 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/db19c8a95a187fa6fcfbcc9c96961044786cc945">db19c8a9</a></strong>
<div>
<span> by Matthew Pickering </span> <i> at 2025-02-05T23:16:50-05: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;'>perf: Replace uses of genericLength with strictGenericLength
genericLength is a recursive function and marked NOINLINE. It is not
going to specialise. In profiles, it can be seen that 3% of total compilation
time when computing bytecode is spend calling this non-specialised
function.
In addition, we can simplify `addListToSS` to avoid traversing the input
list twice and also allocating an intermediate list (after the call to
reverse).
Overall these changes reduce the time spend in 'assembleBCOs' from 5.61s
to 3.88s. Allocations drop from 8GB to 5.3G.
Fixes #25706
</pre>
</li>
<li>
<strong style="font-weight: 600;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/5622a14a7a036ab36e28963a4fba826a5ac798a7">5622a14a</a></strong>
<div>
<span> by Matthew Pickering </span> <i> at 2025-02-05T23:17:27-05: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;'>perf: nameToCLabel: Directly manipulate ByteString rather than going via strings
`nameToCLabel` is called from `lookupHsSymbol` many times during
bytecode linking. We can save a lot of allocations and time by directly
manipulating the bytestrings rather than going via intermediate lists.
Before: 2GB allocation, 1.11s
After: 260MB allocation, 375ms
Fixes #25719
-------------------------
Metric Decrease:
MultiLayerModulesTH_OneShot
-------------------------
</pre>
</li>
<li>
<strong style="font-weight: 600;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/66c7f65676801367f440a6a644f87d71157d2f3f">66c7f656</a></strong>
<div>
<span> by Matthew Pickering </span> <i> at 2025-02-06T17:15:25-05: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;'>interpreter: Fix INTERP_STATS profiling code
The profiling code had slightly bitrotted since the last time it was
used. This just fixes things so that if you toggle the INTERP_STATS
macro then it just works and prints out the stats.
Fixes #25695
</pre>
</li>
<li>
<strong style="font-weight: 600;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/f71c2835bfacac879b294bbcd475d7acfac4adfb">f71c2835</a></strong>
<div>
<span> by Matthew Pickering </span> <i> at 2025-02-06T17:16:02-05: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;'>perf: Key the interpreter symbol cache by Name rather than FastString
Profiles showed that about 0.2s was being spend constructing the keys
before looking up values in the old symbol cache.
The performance of this codepath is critical as it translates directly
to a delay when a user evaluates a function like `main` in the
interpreter.
Therefore we implement a solution which keys the cache(s) by `Name`
rather than the symbol directly, so the cache can be consulted before
the symbol is constructed.
Fixes #25731
</pre>
</li>
<li>
<strong style="font-weight: 600;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/8f8d3a90e8a754cfccd7c8e0c793a23ce58a6de5">8f8d3a90</a></strong>
<div>
<span> by Ben Gamari </span> <i> at 2025-02-08T01:17:28-05: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;'>base: Label threads forked by IO operations
Addresses part of #25452.
Addresses core-libraries-committee#305.
</pre>
</li>
<li>
<strong style="font-weight: 600;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/28600825dd47154f4ed448eaacb6401a26084d79">28600825</a></strong>
<div>
<span> by Ben Gamari </span> <i> at 2025-02-08T01:17:28-05: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;'>base: Label threads forked by System.Timeout
Addresses part of #25452.
Addresses core-libraries-committee#305.
</pre>
</li>
<li>
<strong style="font-weight: 600;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/8a2498279bb2bd43ba0d969486595c5d246f7e91">8a249827</a></strong>
<div>
<span> by Ben Gamari </span> <i> at 2025-02-08T01:17:28-05: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;'>base: Label signal handling threads
Addresses part of #25452.
Addresses core-libraries-committee#305.
</pre>
</li>
<li>
<strong style="font-weight: 600;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/26af26f0160a51ace57e643b588bbd43cdb3ddaa">26af26f0</a></strong>
<div>
<span> by Ben Gamari </span> <i> at 2025-02-08T01:17:28-05: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;'>base: Label Windows console event handling threads
Addresses part of #25452.
Addresses core-libraries-committee#305.
</pre>
</li>
<li>
<strong style="font-weight: 600;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/bf9c3d4f8c9e569123a4a6987605f085aa068ff5">bf9c3d4f</a></strong>
<div>
<span> by Ben Gamari </span> <i> at 2025-02-08T01:17:28-05: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;'>ghci: Label evaluation sandbox thread
Addresses part of #25452.
Addresses core-libraries-committee#305.
</pre>
</li>
<li>
<strong style="font-weight: 600;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/38f78ce54ffa18187bb5ebaee992829d609db4ef">38f78ce5</a></strong>
<div>
<span> by Ben Gamari </span> <i> at 2025-02-08T01:17:28-05: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;'>base: Add changelog entry for addition of thread labels
Addresses #25452.
Addresses core-libraries-committee#305.
</pre>
</li>
<li>
<strong style="font-weight: 600;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/c100deb56d30ee0a38b29c8433051603816fbfdf">c100deb5</a></strong>
<div>
<span> by Ben Gamari </span> <i> at 2025-02-08T01:18:05-05: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;'>gen-ci: Clean up style
This cleans up a number of stylistic inconsistencies although it's still
far from perfect.
</pre>
</li>
<li>
<strong style="font-weight: 600;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/c4a7680afc5a374c668dc80a8abdb3641ab115a2">c4a7680a</a></strong>
<div>
<span> by Ben Gamari </span> <i> at 2025-02-08T01:18:05-05: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;'>gen-ci: Properly encapsulate GitLab predicates
</pre>
</li>
<li>
<strong style="font-weight: 600;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/52b6539b5fbce27e0e8b4181bea333895e42128c">52b6539b</a></strong>
<div>
<span> by M Farkas-Dyck </span> <i> at 2025-02-08T11:34:51-08: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;'>Avoid partiality in `Language.Haskell.Syntax.Expr`, `GHC.Hs.Expr`, `GHC.Rename.Expr`, etc.
In particular, use `NonEmpty` where appropriate:
- the argument of `FieldLabelString`
- the argument of `HsMultiIf`
- `grhssGRHSs`
Decreases overall compile-time allocation by about 0.1% in the benchmark suite (min -0.8%, max +0.3%).
Metric Decrease:
T3294
</pre>
</li>
<li>
<strong style="font-weight: 600;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/a566da926e6929d7c7f0f77b0fe519e5fe8250a7">a566da92</a></strong>
<div>
<span> by Ben Gamari </span> <i> at 2025-02-10T03:21:49-05: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;'>gitlab-ci: Bump docker images
Closes #25693.
</pre>
</li>
<li>
<strong style="font-weight: 600;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/a7e23f01226fb690e0951edfe3c26d0cd96a3843">a7e23f01</a></strong>
<div>
<span> by Ben Gamari </span> <i> at 2025-02-10T03:21:49-05: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;'>hadrian: Drop uses of head/tail
To silence warnings with GHC 9.10
</pre>
</li>
<li>
<strong style="font-weight: 600;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/12752f0cfd8072cd6235f011bb22a5d3d6bc7dc6">12752f0c</a></strong>
<div>
<span> by Ben Gamari </span> <i> at 2025-02-10T03:21:49-05: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;'>hadrian: Disable x-data-list-nonempty-unzip warning
</pre>
</li>
<li>
<strong style="font-weight: 600;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/151fc8eaccc81b93a472b19ef099d1fcc9824696">151fc8ea</a></strong>
<div>
<span> by Sven Tennie </span> <i> at 2025-02-10T10:50:30+00: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;'>Do not deallocate stack for jump/switch table jumps
Though the name is misleading, we consider them to be branching. For
branch instructions we do not deallocate (parts of) the stack, but keep
the stack pointer (sp) intact.
</pre>
</li>
<li>
<strong style="font-weight: 600;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/02a0298369636c1a90e1d5199a58c51abc0df63d">02a02983</a></strong>
<div>
<span> by Matthew Pickering </span> <i> at 2025-02-10T10:50:30+00: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;'>perf: Speed up the bytecode assembler
This commit contains a number of optimisations to the bytecode
assembler. In programs which generate a large amount of bytecode, the
assembler is called a lot of times on many instructions.
1. Specialise the assembleI function for the two intepreters to avoid
having to materialise the intermediate free-monad like structure.
2. Directly compute the UArray and SmallArray needed rather than going
via the intermediate SizedSeq
3. Use optimised monads
4. Define unrolled "any" and "mapM6" functions which can be inlined
and avoid calling recursive functions.
The resulting generated code is much more direct.
Before:
./ByteCodeAsm /home/matt/ghc-profiling-light/_build/stage1/lib/ +RTS -s
48,923,125,664 bytes allocated in the heap
678,221,152 bytes copied during GC
395,648 bytes maximum residency (2 sample(s))
50,040 bytes maximum slop
6 MiB total memory in use (0 MiB lost due to fragmentation)
Tot time (elapsed) Avg pause Max pause
Gen 0 11731 colls, 0 par 0.419s 0.425s 0.0000s 0.0004s
Gen 1 2 colls, 0 par 0.001s 0.001s 0.0007s 0.0012s
INIT time 0.000s ( 0.000s elapsed)
MUT time 6.466s ( 6.484s elapsed)
GC time 0.421s ( 0.426s elapsed)
EXIT time 0.000s ( 0.000s elapsed)
Total time 6.887s ( 6.910s elapsed)
After:
1,518,321,200 bytes allocated in the heap
4,299,552 bytes copied during GC
322,288 bytes maximum residency (2 sample(s))
50,280 bytes maximum slop
6 MiB total memory in use (0 MiB lost due to fragmentation)
Tot time (elapsed) Avg pause Max pause
Gen 0 369 colls, 0 par 0.003s 0.003s 0.0000s 0.0002s
Gen 1 2 colls, 0 par 0.001s 0.001s 0.0007s 0.0012s
INIT time 0.001s ( 0.001s elapsed)
MUT time 0.465s ( 0.466s elapsed)
GC time 0.004s ( 0.004s elapsed)
EXIT time 0.000s ( 0.000s elapsed)
Total time 0.470s ( 0.471s elapsed)
</pre>
</li>
</ul>
<h4 style="margin-top: 10px; margin-bottom: 10px;">
84 changed files:
</h4>
<ul>
<li class="file-stats">
<a href="#587d266bb27a4dc3022bbed44dfa19849df3044c">
.gitlab-ci.yml
</a>
</li>
<li class="file-stats">
<a href="#22c3eac1f084ce55ce48b857bce882e5c7e553a9">
.gitlab/generate-ci/gen_ci.hs
</a>
</li>
<li class="file-stats">
<a href="#d0d96a6d03668aeab20ebe05e2c4ccb798c7e64c">
compiler/GHC.hs
</a>
</li>
<li class="file-stats">
<a href="#2f6f8d6d05acc04b08fff94df4b3996c65b87892">
compiler/GHC/ByteCode/Asm.hs
</a>
</li>
<li class="file-stats">
<a href="#073b107caa98ea426694eacd6c08b492801a51a0">
compiler/GHC/ByteCode/Instr.hs
</a>
</li>
<li class="file-stats">
<a href="#11e6f6a348be9920cecad0893a25350137524b4f">
compiler/GHC/ByteCode/Linker.hs
</a>
</li>
<li class="file-stats">
<a href="#5c66928780aaad0eb5888511dc4b0b08492c69fa">
compiler/GHC/ByteCode/Types.hs
</a>
</li>
<li class="file-stats">
<a href="#807babf5b215890881c92043bcd08486141a405c">
compiler/GHC/CmmToAsm/AArch64/Instr.hs
</a>
</li>
<li class="file-stats">
<a href="#f157d5c316465070f94641e4c9ab0248311588cd">
compiler/GHC/Core/UsageEnv.hs
</a>
</li>
<li class="file-stats">
<a href="#c32949e027a95728c75ee9f7481dfcff660b12a5">
compiler/GHC/Data/FlatBag.hs
</a>
</li>
<li class="file-stats">
<a href="#6ec701430cdc4f89977822eb47ce98ebff95ee88">
<span class="new-file">
+
compiler/GHC/Data/List/NonEmpty.hs
</span>
</a>
</li>
<li class="file-stats">
<a href="#332ec0b9393644a23e8f46b4d3be8f4c516597f2">
compiler/GHC/Data/SmallArray.hs
</a>
</li>
<li class="file-stats">
<a href="#9a679a2680ef6061397f1987091ea9f96ffe095d">
compiler/GHC/Driver/Main.hs
</a>
</li>
<li class="file-stats">
<a href="#cc97d81e7223ad4a3a5e801156ca632f9fa75654">
compiler/GHC/Hs/Expr.hs
</a>
</li>
<li class="file-stats">
<a href="#7a1af22e4c32b9aa6ec708d9d3788e1c4db5da9a">
compiler/GHC/Hs/Utils.hs
</a>
</li>
<li class="file-stats">
<a href="#5855ff1d64fcadf28e7984964e69e35ff4de7f0a">
compiler/GHC/HsToCore/Arrows.hs
</a>
</li>
<li class="file-stats">
<a href="#6bdd5abc649727f2a802bc96ce5c276de19d3726">
compiler/GHC/HsToCore/Expr.hs
</a>
</li>
<li class="file-stats">
<a href="#83f0b13548ac43fe13b1813fb407249ff9b825f7">
compiler/GHC/HsToCore/GuardedRHSs.hs
</a>
</li>
<li class="file-stats">
<a href="#36e7b8d61b4fae8f65fca3984d01eb4076712f2b">
compiler/GHC/HsToCore/Pmc.hs
</a>
</li>
<li class="file-stats">
<a href="#950eaa7de202a2e915b5ff68a4cfd16e972ad359">
compiler/GHC/HsToCore/Pmc/Desugar.hs
</a>
</li>
<li class="file-stats">
<a href="#3c19c0be465f9a28d7b69f89c55648080fcc37eb">
compiler/GHC/HsToCore/Quote.hs
</a>
</li>
<li class="file-stats">
<a href="#aa160d2e15ce4b9872864040e449a60d09ad648f">
compiler/GHC/HsToCore/Ticks.hs
</a>
</li>
<li class="file-stats">
<a href="#649144a78135a23cabfc90dd83c4aabf448eb6ab">
compiler/GHC/Iface/Ext/Ast.hs
</a>
</li>
<li class="file-stats">
<a href="#5aa3321b0f5c08d7ebfa1a4a3340d4451258988b">
compiler/GHC/Linker/Loader.hs
</a>
</li>
<li class="file-stats">
<a href="#bf951467d4a9aa443cb109cb4c84a2891945649b">
compiler/GHC/Parser.y
</a>
</li>
<li class="file-stats">
<a href="#446cb12ca6cefaf1c6eb79b7db643632744263c7">
compiler/GHC/Parser/PostProcess.hs
</a>
</li>
<li class="file-stats">
<a href="#4d8273ba28c075a67472025c43e27991bd8f25f6">
compiler/GHC/Prelude/Basic.hs
</a>
</li>
<li class="file-stats">
<a href="#b47ece2bbb8303a5792c2fdc52394c8ed336e8a2">
compiler/GHC/Rename/Expr.hs
</a>
</li>
<li class="file-stats">
<a href="#7dd1cd0f6f2164a14c83d9aa564dd32bc30e447a">
compiler/GHC/Rename/Module.hs
</a>
</li>
<li class="file-stats">
<a href="#939d24c1002dc322659c1f67c9f3d2db2ae31dd4">
compiler/GHC/Rename/Utils.hs
</a>
</li>
<li class="file-stats">
<a href="#efe7444c09eed0fdaa83e6904e6328fb435620bf">
compiler/GHC/Runtime/Interpreter.hs
</a>
</li>
<li class="file-stats">
<a href="#6b29c1575b27588edcc0f976faedbffeb8343176">
compiler/GHC/Runtime/Interpreter/Types.hs
</a>
</li>
<li class="file-stats">
<a href="#873854c907f73084315fd0a79f442a5125c1d9d7">
<span class="new-file">
+
compiler/GHC/Runtime/Interpreter/Types/SymbolCache.hs
</span>
</a>
</li>
<li class="file-stats">
<a href="#1522139eef391430974e254694d2feec1d43d85a">
compiler/GHC/StgToByteCode.hs
</a>
</li>
<li class="file-stats">
<a href="#1dd9c7a6bbc222c976a6ec1c4b772232ae60f7e5">
compiler/GHC/Tc/Errors/Ppr.hs
</a>
</li>
<li class="file-stats">
<a href="#cdba811872892f235fe7059df1a6c538fba60816">
compiler/GHC/Tc/Errors/Types.hs
</a>
</li>
<li class="file-stats">
<a href="#902811828741e6bcd64702935bbb54edbbd070ef">
compiler/GHC/Tc/Gen/Expr.hs
</a>
</li>
<li class="file-stats">
<a href="#3377164bfe9a1f1a8cfd588703ae1e0ea1e91cf9">
compiler/GHC/Tc/Gen/Match.hs
</a>
</li>
<li class="file-stats">
<a href="#93bba9b9e0195db135fec54160523a427ea042fd">
compiler/GHC/Tc/Types/Origin.hs
</a>
</li>
<li class="file-stats">
<a href="#2eac51f9871ca0c0698aa1fc7f79c05ef8fc4a49">
compiler/GHC/ThToHs.hs
</a>
</li>
<li class="file-stats">
<a href="#e2c828ee9e003df518a07b05beaa6971e5c62eb0">
compiler/GHC/Types/Error/Codes.hs
</a>
</li>
<li class="file-stats">
<a href="#a36a7299626a1a6ae3cf89e37bdd10e9bba4f852">
compiler/Language/Haskell/Syntax/Expr.hs
</a>
</li>
<li class="file-stats">
<a href="#0f33fd88c617246c7f89c4477d2d1d24f942df23">
compiler/ghc.cabal.in
</a>
</li>
<li class="file-stats">
<a href="#b71856f5728e262c6f67455997507c6fa2ede3b9">
hadrian/src/Hadrian/Utilities.hs
</a>
</li>
<li class="file-stats">
<a href="#a8644672423544bdb823fa0352a1cf9c022a6b70">
hadrian/src/Oracles/ModuleFiles.hs
</a>
</li>
<li class="file-stats">
<a href="#17c01d691132c419a2414c11163cd3681c102fc5">
hadrian/src/Rules/Dependencies.hs
</a>
</li>
<li class="file-stats">
<a href="#9e38f1a7c62084cdd5aac33e5041debe0efc7533">
hadrian/src/Settings/Parser.hs
</a>
</li>
<li class="file-stats">
<a href="#392e9dfd3417e267d708c5ab16536f2994d43745">
libraries/base/changelog.md
</a>
</li>
<li class="file-stats">
<a href="#2e0f17331daaae33659159abd77d62332dfa8a9d">
libraries/base/src/Control/Concurrent.hs
</a>
</li>
<li class="file-stats">
<a href="#a25881626cb756bf5eb69bfee5eaba4004f3cdfb">
libraries/base/src/System/Timeout.hs
</a>
</li>
<li class="file-stats">
<a href="#b582cf9b9f8f92ebee03c775ba017b6c3f584bdf">
libraries/ghc-boot/GHC/Data/SizedSeq.hs
</a>
</li>
<li class="file-stats">
<a href="#edbc08c16613b16134f3ed604e3e999a895b4e76">
libraries/ghc-internal/src/GHC/Internal/Conc/Signal.hs
</a>
</li>
<li class="file-stats">
<a href="#a3f9edd0aacf10f399c237f2fe14ce674366f549">
libraries/ghc-internal/src/GHC/Internal/Event/Windows/ConsoleEvent.hsc
</a>
</li>
<li class="file-stats">
<a href="#fdd34ceb84d7b95dccbd9172ce507eaea9b5abd4">
libraries/ghci/GHCi/Run.hs
</a>
</li>
<li class="file-stats">
<a href="#539d43389593f2626a387f2c904f03c215c7c802">
rts/Interpreter.c
</a>
</li>
<li class="file-stats">
<a href="#921cf46a2036d96b67f004f8d83bb6d7b520f5e9">
rts/Interpreter.h
</a>
</li>
<li class="file-stats">
<a href="#426e9adbed6046eecf94d591c3bf3542ca040a80">
rts/RtsMain.c
</a>
</li>
<li class="file-stats">
<a href="#f227a38797c18ee429e783e5132ca39e5a4cc7e7">
testsuite/tests/count-deps/CountDepsAst.stdout
</a>
</li>
<li class="file-stats">
<a href="#2dcdf7aadcff5b41822596f22b49b2851374d0cd">
testsuite/tests/count-deps/CountDepsParser.stdout
</a>
</li>
<li class="file-stats">
<a href="#ebc0f6e3733fe075348f9485435df1d0ada36c5b">
testsuite/tests/ghc-api/exactprint/T22919.stderr
</a>
</li>
<li class="file-stats">
<a href="#a408de4f7dee511726d0f2f37a8d1f8ccff33307">
testsuite/tests/ghc-api/exactprint/ZeroWidthSemi.stderr
</a>
</li>
<li class="file-stats">
<a href="#2ca7b1d6bb24cd05ca30a428efb924268c8dbc51">
testsuite/tests/interface-stability/base-exports.stdout
</a>
</li>
<li class="file-stats">
<a href="#482ce10224feee28cb25df69f2be2fd845ccb44d">
testsuite/tests/interface-stability/base-exports.stdout-javascript-unknown-ghcjs
</a>
</li>
<li class="file-stats">
<a href="#0c9107f6ffbb0ee70fe83374d94d1734a3bac3cb">
testsuite/tests/interface-stability/base-exports.stdout-mingw32
</a>
</li>
<li class="file-stats">
<a href="#e9c4dd54adbea818aa90a241f5325670bb349d53">
testsuite/tests/interface-stability/base-exports.stdout-ws-32
</a>
</li>
<li class="file-stats">
<a href="#25f68703f1d1ef244aacacbbc84228236161761c">
testsuite/tests/module/mod185.stderr
</a>
</li>
<li class="file-stats">
<a href="#e6a699bed61e0c8d8109f383d714115200dd37b4">
testsuite/tests/parser/should_compile/DumpParsedAst.stderr
</a>
</li>
<li class="file-stats">
<a href="#9482c0bcbf68d452f1bc906433629045ac39c94b">
testsuite/tests/parser/should_compile/DumpParsedAstComments.stderr
</a>
</li>
<li class="file-stats">
<a href="#338eb1c1a80bcdbcecf4018a1808183f4305c65b">
testsuite/tests/parser/should_compile/DumpRenamedAst.stderr
</a>
</li>
<li class="file-stats">
<a href="#4afdc3da79634c15b8fbfb6e765dc12ea54bece7">
testsuite/tests/parser/should_compile/DumpSemis.stderr
</a>
</li>
<li class="file-stats">
<a href="#d22f77fc8c4cf5de6acf34f8a183080973f0688d">
testsuite/tests/parser/should_compile/DumpTypecheckedAst.stderr
</a>
</li>
<li class="file-stats">
<a href="#ee24e3a743c7969d4a3cfdec1d00511d39dad123">
testsuite/tests/parser/should_compile/KindSigs.stderr
</a>
</li>
<li class="file-stats">
<a href="#f8e32e71e2a9ee82c7fa55a4e9dacb1cd355c1fd">
testsuite/tests/parser/should_compile/T20718.stderr
</a>
</li>
<li class="file-stats">
<a href="#108eaa976022091002f53fefb163966e163e35b6">
testsuite/tests/parser/should_compile/T20846.stderr
</a>
</li>
<li class="file-stats">
<a href="#068e4a3bdf83186f19bb7c7687aa9db84436e8c2">
testsuite/tests/perf/compiler/hard_hole_fits.stderr
</a>
</li>
<li class="file-stats">
<a href="#413c3b68dbb158cc56a29e6538aa6a38bff73139">
<span class="new-file">
+
testsuite/tests/perf/should_run/ByteCodeAsm.hs
</span>
</a>
</li>
<li class="file-stats">
<a href="#f41ec90131956922871428d1f65574b7c372b5af">
testsuite/tests/perf/should_run/all.T
</a>
</li>
<li class="file-stats">
<a href="#2f973f9f6cf3dfea58a13a007bd625e286c375ec">
testsuite/tests/printer/Test20297.stdout
</a>
</li>
<li class="file-stats">
<a href="#8cb35be8f13ce47421a8f834d7262e0459fb7e5a">
testsuite/tests/printer/Test24533.stdout
</a>
</li>
<li class="file-stats">
<a href="#bd5577c69b905a51480ab18ecfdf18f58d8bac88">
<span class="new-file">
+
testsuite/tests/th/EmptyGuard.hs
</span>
</a>
</li>
<li class="file-stats">
<a href="#3d5d60f8bc20454e02a1114f4f25d244bab74ae1">
<span class="new-file">
+
testsuite/tests/th/EmptyGuard.stderr
</span>
</a>
</li>
<li class="file-stats">
<a href="#6f885f60b8c0fea6b94dd73a67d02212eedb4498">
testsuite/tests/th/all.T
</a>
</li>
<li class="file-stats">
<a href="#c5662bedafa6a48ec7062b131d94b70f514207d9">
utils/check-exact/ExactPrint.hs
</a>
</li>
<li class="file-stats">
<a href="#5a3935220a12511953a752af2c9b7d29d0a1b3fa">
utils/check-exact/Transform.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/2ec5a1a6079a96472af98d56d3bffaef85eabebf...02a0298369636c1a90e1d5199a58c51abc0df63d">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>