<!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/f8b4ade2290c72c1e72be7c25e478fff19a917f2">f8b4ade2</a></strong>
<div>
<span> by Matthew Pickering </span> <i> at 2025-03-04T17:27:00-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: 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>
<li>
<strong style="font-weight: 600;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/f2c16da6f581a5df53962985bf8b7da3ee069c5c">f2c16da6</a></strong>
<div>
<span> by Ben Gamari </span> <i> at 2025-03-04T17:27:00-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;'>testsuite: Add testcase for #25577
</pre>
</li>
<li>
<strong style="font-weight: 600;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/0061d3f51c09a17c87c9b543686673c237d2c677">0061d3f5</a></strong>
<div>
<span> by Ben Gamari </span> <i> at 2025-03-04T17:27:00-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;'>testsuite/ghc-api: Eliminate Makefile usage from  various GHC API tests

These tests can be expressed perfectly well using the testsuite driver
itself.
</pre>
</li>
<li>
<strong style="font-weight: 600;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/aa34fda5e441a76869e04cd5e178d2bd0e505ff8">aa34fda5</a></strong>
<div>
<span> by Ben Gamari </span> <i> at 2025-03-04T17:27:00-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;'>rts/linker/MachO: Assert that GOT relocations have GOT entries

In #25577 we found that some GOT relocation types were not being given
relocation entries. Add assertions to catch this sort of failure in the
future.
</pre>
</li>
<li>
<strong style="font-weight: 600;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/c9ed22aa15a829fa47d08433d3d0247551e66669">c9ed22aa</a></strong>
<div>
<span> by Ben Gamari </span> <i> at 2025-03-04T17:27:00-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;'>rts/linker/MachO: Account for internal GOT references in GOT construction

Previously we failed to give GOT slots to symbols which were referred to
by GOT relocations in the same module. This lead to #25577.

Fix this by explicitly traversing relocation lists and maintaining a
`needs_got` flag for each symbol.

Fixes #25577.
</pre>
</li>
<li>
<strong style="font-weight: 600;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/5c89d2bffb82000cfd800a0376542a1b064890ab">5c89d2bf</a></strong>
<div>
<span> by Teo Camarasu </span> <i> at 2025-03-04T17:27:01-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;'>ghc-boot-th: expose all TH packages from proper GHC.Boot.* modules

Previously we defined some modules here in the GHC.Internal namespace.
Others were merely re-exposed from GHC.Internal.

Re-exposed modules weren't handled correctly by Haddock, so the
Haddocks for the `template-haskell` library couldn't see them.
This change also makes the home package of these modules a bit clearer.

Work towards #25705
</pre>
</li>
<li>
<strong style="font-weight: 600;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/5ad28381c7b1d5ff276c66f37697a9c9665f6f5a">5ad28381</a></strong>
<div>
<span> by Teo Camarasu </span> <i> at 2025-03-04T17:27:01-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;'>ghc-boot-th: fix synopsis formatting

`@...@` syntax doesn't seem to work in synposes and is just kept by
Haddock verbatim.
</pre>
</li>
<li>
<strong style="font-weight: 600;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/7d09d27af5341a6010440bc98741eedca472fb2b">7d09d27a</a></strong>
<div>
<span> by Brandon Chinn </span> <i> at 2025-03-04T17:27:03-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;'>Collapse string gaps as \& (#25784)

In 9.10, "\65\ \0" would result in "A0", but in 9.12, it results in
"\650", due to the string refactoring I did in !13128. Previously, we
were resolving escape codes and collapsing string gaps as we come across
them, but after the refactor, string processing is broken out into
phases, which is both more readable and useful for multiline strings.
</pre>
</li>
<li>
<strong style="font-weight: 600;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/36fb03e2c29176c195dd6a1609e9bbe8bd8382bd">36fb03e2</a></strong>
<div>
<span> by Cheng Shao </span> <i> at 2025-03-04T17:27:04-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;'>ghc-experimental: make JSVal abstract in GHC.Wasm.Prim

This commit makes JSVal an abstract type in the export list of
GHC.Wasm.Prim. JSVal's internal representation is supposed to be a non
user facing implementation detail subject to change at any time. We
should only expose things that are newtypes of JSVal, not JSVal
itself.
</pre>
</li>
<li>
<strong style="font-weight: 600;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/8998ad8c18711be4fd292ce678d2d798a48913ba">8998ad8c</a></strong>
<div>
<span> by Cheng Shao </span> <i> at 2025-03-04T17:27:04-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;'>wasm: make JSVal internal Weak# point to lifted JSVal

JSVal has an internal Weak# with the unlifted JSVal# object as key to
arrange its builtin finalization logic. The Weak# used to designate
Unit_closure as a dummy value; now this commit designates the lifted
JSVal closure as the Weak# value. This allows the implementation of
mkWeakJSVal which can be used to observe the liveliness of a JSVal and
attach a user-specified finalizer.
</pre>
</li>
<li>
<strong style="font-weight: 600;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/584c54ee758f653f4aac4f31a1bbdd2b9abbd94c">584c54ee</a></strong>
<div>
<span> by Cheng Shao </span> <i> at 2025-03-04T17:27:04-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;'>ghc-experimental: add mkWeakJSVal

This commit adds a mkWeakJSVal function that can be used to set up a
Weak pointer with a JSVal key to observe the key's lifetime and
optionally attach a finalizer.
</pre>
</li>
<li>
<strong style="font-weight: 600;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/fe95b4c6e630e4307600cbb249aac52fb2dc3def">fe95b4c6</a></strong>
<div>
<span> by Matthew Pickering </span> <i> at 2025-03-04T17:27:04-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;'>simplifier: Zap Id unfoldings before constructing InScopeSet in simpleOptExpr

Care must be taken to remove unfoldings from `Var`s collected by exprFreeVars
before using them to construct an in-scope set hence `zapIdUnfolding` in `init_subst`.
Consider calling `simpleOptExpr` on an expression like

```
 case x of (a,b) -> (x,a)
```

* One of those two occurrences of x has an unfolding (the one in (x,a), with
unfolding x = (a,b)) and the other does not. (Inside a case GHC adds
unfolding-info to the scrutinee's Id.)
* But exprFreeVars just builds a set, so it's a bit random which occurrence is collected.
* Then simpleOptExpr replaces each occurrence of x with the one in the in-scope set.
* Bad bad bad: then the x in  case x of ... may be replaced with a version that has an unfolding.

Fixes #25790
</pre>
</li>
</ul>
<h4 style="margin-top: 10px; margin-bottom: 10px;">
59 changed files:
</h4>
<ul>
<li class="file-stats">
<a href="#aedbdc3562245e84f486c486c7a86a146d3bada3">
.gitlab/rel_eng/upload_ghc_libs.py
</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="#5c66928780aaad0eb5888511dc4b0b08492c69fa">
compiler/GHC/ByteCode/Types.hs
</a>
</li>
<li class="file-stats">
<a href="#11ffe98a94d798427bc600e4fcfe899407536346">
compiler/GHC/Core/SimpleOpt.hs
</a>
</li>
<li class="file-stats">
<a href="#c32949e027a95728c75ee9f7481dfcff660b12a5">
compiler/GHC/Data/FlatBag.hs
</a>
</li>
<li class="file-stats">
<a href="#332ec0b9393644a23e8f46b4d3be8f4c516597f2">
compiler/GHC/Data/SmallArray.hs
</a>
</li>
<li class="file-stats">
<a href="#cc97d81e7223ad4a3a5e801156ca632f9fa75654">
compiler/GHC/Hs/Expr.hs
</a>
</li>
<li class="file-stats">
<a href="#3c19c0be465f9a28d7b69f89c55648080fcc37eb">
compiler/GHC/HsToCore/Quote.hs
</a>
</li>
<li class="file-stats">
<a href="#2d927b15feeb94a2556774ef2af632542c2e972e">
compiler/GHC/Parser/String.hs
</a>
</li>
<li class="file-stats">
<a href="#4a238b7fd965f958b107d110c96d07962d7a83ec">
compiler/GHC/Plugins.hs
</a>
</li>
<li class="file-stats">
<a href="#16b273b96a1c03d4261e2ac6de4cc456ba2dd014">
compiler/GHC/Rename/Splice.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="#9ea832ccdb4b5f7508a1efd6caedeafa16b269e7">
compiler/GHC/Tc/Gen/Splice.hs
</a>
</li>
<li class="file-stats">
<a href="#f2129065036d0a54cc42c4f4dd88ab259d693f5a">
compiler/GHC/Tc/Gen/Splice.hs-boot
</a>
</li>
<li class="file-stats">
<a href="#f5efba4115c6981cb7f758f67b351e37479ae329">
compiler/GHC/Tc/Plugin.hs
</a>
</li>
<li class="file-stats">
<a href="#8e4c150e34df130fcdba7acc9d3412c7b5145520">
compiler/GHC/Tc/Types/ErrCtxt.hs
</a>
</li>
<li class="file-stats">
<a href="#77b2fcc8c5b85a6acc396771a56802f2b47a6dc9">
compiler/GHC/Tc/Types/TH.hs
</a>
</li>
<li class="file-stats">
<a href="#2eac51f9871ca0c0698aa1fc7f79c05ef8fc4a49">
compiler/GHC/ThToHs.hs
</a>
</li>
<li class="file-stats">
<a href="#30c84527f3ec56237474c51e5a42000c40846aca">
<span class="new-file">
+
libraries/ghc-boot-th/GHC/Boot/TH/Lib.hs
</span>
</a>
</li>
<li class="file-stats">
<a href="#74637f7b9d41c4dca5f06206fbebb936a7bd3bc9">
libraries/ghc-boot-th/GHC/Internal/TH/Lib/Map.hs

libraries/ghc-boot-th/GHC/Boot/TH/Lib/Map.hs
</a>
</li>
<li class="file-stats">
<a href="#a2a29170f423ec359c9af8de5ff9229b072c7e27">
<span class="new-file">
+
libraries/ghc-boot-th/GHC/Boot/TH/Lift.hs
</span>
</a>
</li>
<li class="file-stats">
<a href="#0c93613dd02d444897693a16171ac20e2d999735">
libraries/ghc-boot-th/GHC/Internal/TH/Ppr.hs

libraries/ghc-boot-th/GHC/Boot/TH/Ppr.hs
</a>
</li>
<li class="file-stats">
<a href="#e73ea4f7e37e68642490f6ffb9bb797555162325">
libraries/ghc-boot-th/GHC/Internal/TH/PprLib.hs

libraries/ghc-boot-th/GHC/Boot/TH/PprLib.hs
</a>
</li>
<li class="file-stats">
<a href="#1c6a454e87f2b1d29ae01b8857bd9b1d47593743">
<span class="new-file">
+
libraries/ghc-boot-th/GHC/Boot/TH/Quote.hs
</span>
</a>
</li>
<li class="file-stats">
<a href="#2ae94b0cf2fb8bf24a07640a6f5e1f02b58a54dd">
<span class="new-file">
+
libraries/ghc-boot-th/GHC/Boot/TH/Syntax.hs
</span>
</a>
</li>
<li class="file-stats">
<a href="#250037ded7e5c4810bdfaae1e241ff5dd4845713">
libraries/ghc-boot-th/ghc-boot-th.cabal.in
</a>
</li>
<li class="file-stats">
<a href="#82b5a034883a3ede9540d6423738da627660f860">
libraries/ghc-experimental/src/GHC/Wasm/Prim.hs
</a>
</li>
<li class="file-stats">
<a href="#d43ae8a495a3b516ba2b592dc97255fa5de6a4c0">
libraries/ghc-internal/src/GHC/Internal/Wasm/Prim.hs
</a>
</li>
<li class="file-stats">
<a href="#03654085b556c3453ef191d194b2ab0c41bc5562">
libraries/ghc-internal/src/GHC/Internal/Wasm/Prim/Types.hs
</a>
</li>
<li class="file-stats">
<a href="#ed5b77135b8d6077d6f77541d166d7b8fe93f9de">
libraries/ghci/GHCi/Message.hs
</a>
</li>
<li class="file-stats">
<a href="#064db86e2ece7ebdb10fc3cde509b748c2792700">
libraries/ghci/GHCi/TH.hs
</a>
</li>
<li class="file-stats">
<a href="#f2be3722dbfecb9150fcd7084cce2a871fb32d94">
libraries/ghci/GHCi/TH/Binary.hs
</a>
</li>
<li class="file-stats">
<a href="#556b3bb7c75dfe37155d079195cb9671e3061783">
libraries/template-haskell/Language/Haskell/TH/Lib.hs
</a>
</li>
<li class="file-stats">
<a href="#97b63f699307e7a6d92425265508cfc9e963c336">
libraries/template-haskell/Language/Haskell/TH/Lib/Internal.hs
</a>
</li>
<li class="file-stats">
<a href="#8e584d18427a4bfabb2a7d6fce6efcbc2afb0954">
libraries/template-haskell/Language/Haskell/TH/Ppr.hs
</a>
</li>
<li class="file-stats">
<a href="#69ef85a6e7ab6d9c208fe739eb45e851efa03461">
libraries/template-haskell/Language/Haskell/TH/PprLib.hs
</a>
</li>
<li class="file-stats">
<a href="#589a49237c73ceddc6791f9c5e5ab1a436236551">
libraries/template-haskell/Language/Haskell/TH/Quote.hs
</a>
</li>
<li class="file-stats">
<a href="#ed3c6537b674490396f9cab5cbb014ee54e71168">
libraries/template-haskell/Language/Haskell/TH/Syntax.hs
</a>
</li>
<li class="file-stats">
<a href="#f4db9593d88d3c951505379e54f3db74f49ae142">
rts/linker/MachO.c
</a>
</li>
<li class="file-stats">
<a href="#14975ea9a5656755bfc9e56bab742db9719ca69f">
rts/linker/MachOTypes.h
</a>
</li>
<li class="file-stats">
<a href="#1ac438b4f08a26b00d040b669f685e08489ea14e">
rts/wasm/JSFFI.c
</a>
</li>
<li class="file-stats">
<a href="#1857d5c502dd790de97bc606ae7f6a93ae3655d1">
testsuite/tests/ghc-api/Makefile
</a>
</li>
<li class="file-stats">
<a href="#3cee726fa36ebb860b6892c4c2f7eef4b556ae92">
<span class="new-file">
+
testsuite/tests/ghc-api/T25577.hs
</span>
</a>
</li>
<li class="file-stats">
<a href="#6d92d90388a97d8ff12e9d812f64e3a5f296df09">
testsuite/tests/ghc-api/all.T
</a>
</li>
<li class="file-stats">
<a href="#19674155fe7749cb83184f023e95ff29c1e55c3e">
<span class="new-file">
+
testsuite/tests/ghci/should_run/T25790.hs
</span>
</a>
</li>
<li class="file-stats">
<a href="#62918f01b19e48a786969b32059e9ca83f468767">
<span class="new-file">
+
testsuite/tests/ghci/should_run/T25790.script
</span>
</a>
</li>
<li class="file-stats">
<a href="#2adf5bbfc798c2d682060f7e514e2417532c2eab">
testsuite/tests/ghci/should_run/all.T
</a>
</li>
<li class="file-stats">
<a href="#2576d273556f3c6af6a44c20f26fdce3e3bbc9ec">
testsuite/tests/interface-stability/template-haskell-exports.stdout
</a>
</li>
<li class="file-stats">
<a href="#a2b7cae4aec791aa039150be608dbfa0c1dcf25e">
testsuite/tests/jsffi/jsffigc.hs
</a>
</li>
<li class="file-stats">
<a href="#68eed1fc2701a47bf7371530f542dee7f4ea9b7c">
<span class="new-file">
+
testsuite/tests/parser/should_run/T25784.hs
</span>
</a>
</li>
<li class="file-stats">
<a href="#d9f91661063ceae61a990b523bd142379b77658d">
<span class="new-file">
+
testsuite/tests/parser/should_run/T25784.stdout
</span>
</a>
</li>
<li class="file-stats">
<a href="#23b02b5c77944d9957120841eb78b343a4e50e68">
testsuite/tests/parser/should_run/all.T
</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="#bc7f4bcd1f6efc3ab884fe6f8ce70443ce944826">
utils/haddock/html-test/ref/QuasiExpr.html
</a>
</li>
<li class="file-stats">
<a href="#798117fb1c7c0632c3d330023449695a97c6bb7c">
utils/haddock/html-test/ref/TH.html
</a>
</li>
<li class="file-stats">
<a href="#8e2f653f03346459856ffbc418a8a8e38813a4ad">
utils/haddock/html-test/ref/Threaded_TH.html
</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/94f008346075970901359d5fb713958ea4006ede...fe95b4c6e630e4307600cbb249aac52fb2dc3def">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>