<!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/fix-in-scope-simple-opt-expr 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/3b78e139033ab07232313888cc503712799fa76c">3b78e139</a></strong>
<div>
<span> by John Ericson </span> <i> at 2025-03-03T15:27:39-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;'>Remove most of `GHC.Internal.Pack`

Since bd82ac9f4716e28b185758ae514691d5a50c003f when `GHC.Pack` was
deleted, it is no longer used except for one function by the RTS.
</pre>
</li>
<li>
<strong style="font-weight: 600;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/b4fe0850d8d8faa1dc9183a64fbeba483ef22c7e">b4fe0850</a></strong>
<div>
<span> by Rodrigo Mesquita </span> <i> at 2025-03-03T15:28:16-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: Don't set virtualCWD on every iteration

The calls to withVirtualCWD were introduced to fix #2973, but this bug
is no longer reproducible, even when `withVirtualCWD` is dropped.

This cleanup was originally motivated by the performance of :steplocal,
but the performance problem has now been fixed at its root in the next
commit.

Even then, `withVirtualCWD` seems to now be an unnecessary artifact, and
removing it simplifies the interpreter with no apparent drawbacks (testsuite is
also happy with this change)
</pre>
</li>
<li>
<strong style="font-weight: 600;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/73ba1e6ec811c19baaf77abc72ba886a80fef5b4">73ba1e6e</a></strong>
<div>
<span> by Rodrigo Mesquita </span> <i> at 2025-03-03T15:28:16-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 debugger: improve break/resume control flow

After interpreting bytecode (`evalStmt`), we may want to hand off
control to "GHCi.UI" in order to display an interactive break prompt:

1. When an /active/ breakpoint (one set with :break ...) is hit
2. At any breakpoint, when using :step from a breakpoint
3. At any breakpoint in the same function f, when :steplocal is called
  from a breakpoint in f
4. At any breakpoint in the same module, when :stepmodule is used

Whether to pass control to the UI is now fully determined by
`handleRunStatus` which transforms an `EvalStatus_` into an
`ExecResult`. When `ExecBreak` is returned from `handleRunStatus` to
GHCi, it always means GHCi breaks.

`handleRunStatus` determines whether to loop and resume evaluation right away, or
when to return to GHCi (by returning `ExecBreak` or `ExecComplete`).
- (1) is queried using the `BreakpointStatus` message (the
  `breakpointStatus` call)
- (2,3,4) are determined by the predicate `breakHere step span`, which
  inspects the improved `SingleStep` type to determine whether we care
  about this breakpoint even if it is not active.

This refactor solves two big performance problems with the previous control flow:
- We no longer call `withArgs/withProgram` repeatedly in the
  break/resume loop, but rather just once "at the top".
- We now avoid computing the expensive `bindLocalsAtBreakpoint` for
  breakpoints we'd never inspect.

In the interpreter_steplocal test added, calling `:steplocal` after breaking on `main = fib 25`
now takes 12 seconds rather than 49 seconds on my machine.

```
interpreter_steplocal(ghci) ghc/alloc  6,124,821,176    540,181,392 -91.2% GOOD
```

Fixes #25779

-------------------------
Metric Decrease:
    interpreter_steplocal
-------------------------
</pre>
</li>
<li>
<strong style="font-weight: 600;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/c78d8f55afacfd559b1602bc2fbc35b1f326f1c1">c78d8f55</a></strong>
<div>
<span> by Cheng Shao </span> <i> at 2025-03-03T20:54:41+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;'>rts: fix top handler closure type signatures

This commit fixes the runIO/runNonIO closure type signatures in the
RTS which should be extern StgClosure. This allows us to remove an
unnecessary type cast in the C foreign desugaring logic, as well as
unneeded complications of JSFFI desugaring logic that also needs to
generate C stubs that may refer to those top handler closures.
Otherwise, we'll have to take special care to avoid generating "extern
StgClosure" declarations for them as we would for other closures, just
to avoid conflicting type signature error at stub compile time.
</pre>
</li>
<li>
<strong style="font-weight: 600;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/a204df3aa5a7be00c67aa7c92c5091ab32522226">a204df3a</a></strong>
<div>
<span> by Cheng Shao </span> <i> at 2025-03-03T20:54:41+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;'>compiler: allow arbitrary label string for JSFFI exports

This commit allows arbitrary label string to appear in a foreign
export declaration, as long as the calling convention is javascript.
Well, doesn't make sense to enforce it's a C function symbol for a
JSFFI declaration anyway, and it gets in the way of implementing the
"sync" flavour of exports.
</pre>
</li>
<li>
<strong style="font-weight: 600;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/03ebab52bd00d4726735829cf6a24e5c9d3ac0c1">03ebab52</a></strong>
<div>
<span> by Cheng Shao </span> <i> at 2025-03-03T20:54:41+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;'>compiler: wasm backend JSFFI sync exports

This commit implements the synchronous flavour of the wasm backend
JSFFI exports:

- `foreign export javascript "foo sync"` exports a top-level Haskell
  binding as a synchronous JS function
- `foreign import javascript "wrapper sync"` dynamically exports a
  Haskell function closure as a synchronous JS function
- `foreign import javascript unsafe` is now re-entrant by lowering to
  a safe ccall
- Also fix the issue that JSFFI dynamic exports didn't really work in
  TH & ghci (#25473)
</pre>
</li>
<li>
<strong style="font-weight: 600;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/b6ae908bd3ae7b75b79925e56c3e11ba5c40b5ec">b6ae908b</a></strong>
<div>
<span> by Cheng Shao </span> <i> at 2025-03-03T20:54:41+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;'>testsuite: test wasm backend JSFFI sync exports

This commit repurposes some existing JSFFI test cases to make them
cover JSFFI sync exports as well.
</pre>
</li>
<li>
<strong style="font-weight: 600;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/edae287402792c09fa92b655e0cbd01100db9856">edae2874</a></strong>
<div>
<span> by Cheng Shao </span> <i> at 2025-03-03T20:54:41+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;'>docs: document wasm backend JSFFI sync exports

This commit updates wasm backend documentation to reflect the new
JSFFI sync exports feature.
</pre>
</li>
<li>
<strong style="font-weight: 600;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/9b54eecbee7329543e5016cec1574831bfb788c2">9b54eecb</a></strong>
<div>
<span> by Cheng Shao </span> <i> at 2025-03-03T20:56:21+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;'>wasm: add error message to WouldBlockException

This commit attaches an error message to WouldBlockException, for now
the error message consists of the JS async import code snippet that
thunk is trying to block for. This is useful for debugging synchronous
callbacks that accidentally call an async JS function.
</pre>
</li>
<li>
<strong style="font-weight: 600;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/c331eebf575221ed8c67ca232bac4ae047b794a3">c331eebf</a></strong>
<div>
<span> by Cheng Shao </span> <i> at 2025-03-04T09:11:45-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;'>compiler: avoid overwriting existing writers in putWithTables

This patch makes `putWithTables` avoid overwriting all existing
UserData writers in the handle. This is crucial for GHC API users that
use putWithUserData/getWithUserData for serialization logic that
involve Names.
</pre>
</li>
<li>
<strong style="font-weight: 600;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/e9b7802b83d558985b570a6e2fbf41108e047b7c">e9b7802b</a></strong>
<div>
<span> by Matthew Pickering </span> <i> at 2025-03-04T09:12:21-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: Serialise mi_top_env

When loading core from interface files (or from a bytecode object in
future) it's important to store what the top-level context of a module
is.
Otherwise, when you load the module into GHCi from the interface files,
only exported identifiers from the top-level module are in scope on the
repl.

See the added test which demonstrates what this enables.

The context at the GHCi prompt is everything that's in-scope in the
TopEnvIface module. Since TopEnvIface imports identifier "a", we can
evaluate "a" in the repl.

In addition to all this, we can use this information in order to
implement reifyModule in a more principled manner.

This becomes even more important when you're debugging and what to set
break-points on functions which are not imported.
</pre>
</li>
<li>
<strong style="font-weight: 600;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/73e0206819d9367a7a91a865adceee45ecbd54d6">73e02068</a></strong>
<div>
<span> by Matthew Pickering </span> <i> at 2025-03-04T09:12:21-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;'>Implement reifyModule in terms of mi_top_env

mi_top_env provides precisely the information that reifyModule needs,
the user written imports.

This is important as it unblocks !9604 and #22188

Fixes #8489
</pre>
</li>
<li>
<strong style="font-weight: 600;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/0a99825d7ac0590db6c3f8867b33c40b2d1cc644">0a99825d</a></strong>
<div>
<span> by Ben Gamari </span> <i> at 2025-03-04T09:12:57-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: Refactor handling of test suite environment

Previously we would set the environment variables used to run the
testsuite driver using `setEnv` to set them in the Hadrian process.
While looking into failures of a fix to #25752 I noticed this and took
the opportunity to refactor.
</pre>
</li>
<li>
<strong style="font-weight: 600;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/7ca72844337a68423e651a4b5f11fe55fc24e302">7ca72844</a></strong>
<div>
<span> by Alan Zimmerman </span> <i> at 2025-03-04T09:13:34-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;'>[EPA] Sync with the ghc-exactprint repo

This brings it into line with the changes in
https://hackage.haskell.org/package/ghc-exactprint-1.12.0.0

But also keeps the latest changes from master.
</pre>
</li>
<li>
<strong style="font-weight: 600;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/35f6403c32f031cc297fb22503afccedfb683cd8">35f6403c</a></strong>
<div>
<span> by Matthew Pickering </span> <i> at 2025-03-04T14:21:12+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;'>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;">
43 changed files:
</h4>
<ul>
<li class="file-stats">
<a href="#11ffe98a94d798427bc600e4fcfe899407536346">
compiler/GHC/Core/SimpleOpt.hs
</a>
</li>
<li class="file-stats">
<a href="#72e14c3befeaebb85803171795d8fc797521568f">
compiler/GHC/HsToCore/Foreign/C.hs
</a>
</li>
<li class="file-stats">
<a href="#204da6b1b12bcfa4ccbef04a1e58b7554a915eac">
compiler/GHC/HsToCore/Foreign/Wasm.hs
</a>
</li>
<li class="file-stats">
<a href="#9f11c1c113f11a416be9e556904531050cbb5b2e">
compiler/GHC/Iface/Binary.hs
</a>
</li>
<li class="file-stats">
<a href="#4ed0dc87b8bdd9324e8a181cff15caa104b9e58c">
compiler/GHC/Iface/Make.hs
</a>
</li>
<li class="file-stats">
<a href="#079d6b28856775716c78fdd4a4b35bb45a59002c">
compiler/GHC/Iface/Syntax.hs
</a>
</li>
<li class="file-stats">
<a href="#06ff7bac58fd8cfe0c17b81963b03f4cce86a065">
compiler/GHC/IfaceToCore.hs
</a>
</li>
<li class="file-stats">
<a href="#86d694037d496c511e28b2c09c8410f67dc19596">
compiler/GHC/Rename/Env.hs
</a>
</li>
<li class="file-stats">
<a href="#e05ee69330b0f7088f11a5f3567137547489664d">
compiler/GHC/Rename/Names.hs
</a>
</li>
<li class="file-stats">
<a href="#173c7eb846a4e9b5fee79688a72cbf6a326e4e1e">
compiler/GHC/Runtime/Eval.hs
</a>
</li>
<li class="file-stats">
<a href="#55800b37c2c745f23532224c5a433bd1ddf3113d">
compiler/GHC/Runtime/Eval/Types.hs
</a>
</li>
<li class="file-stats">
<a href="#08a3d553a8ca7a753d77697815b63cd85e7dfbd6">
compiler/GHC/Tc/Gen/Foreign.hs
</a>
</li>
<li class="file-stats">
<a href="#9ea832ccdb4b5f7508a1efd6caedeafa16b269e7">
compiler/GHC/Tc/Gen/Splice.hs
</a>
</li>
<li class="file-stats">
<a href="#7dcf5b567a6cd3c9d98cf8d57323fbca1b1536e9">
compiler/GHC/Tc/Types.hs
</a>
</li>
<li class="file-stats">
<a href="#1db76eadc6853599cb7bf4da7af905d641d3443a">
compiler/GHC/Types/Avail.hs
</a>
</li>
<li class="file-stats">
<a href="#03e77c5a7f093768fb8c3be51f8c4ece06b78463">
compiler/GHC/Types/Name/Reader.hs
</a>
</li>
<li class="file-stats">
<a href="#8422a23d78e2470bc2f58d923525570a7c7385e9">
compiler/GHC/Types/PkgQual.hs
</a>
</li>
<li class="file-stats">
<a href="#1b4da42c16b46d6c6cc2c2962072b1e91f519f4a">
compiler/GHC/Unit/Module/ModIface.hs
</a>
</li>
<li class="file-stats">
<a href="#f326be1cfd2ea1d4e6c641020338d0aac9e70f88">
docs/users_guide/wasm.rst
</a>
</li>
<li class="file-stats">
<a href="#c30f4ac98f08779ad1bd5a02a27802862c1e9521">
ghc/GHCi/UI.hs
</a>
</li>
<li class="file-stats">
<a href="#57d22eb49f269b51f07e23c509834d85e25f691e">
ghc/GHCi/UI/Monad.hs
</a>
</li>
<li class="file-stats">
<a href="#4b733eb61cfe8a0a7189e1f5fcf412fdb852c3a6">
hadrian/src/Rules/Test.hs
</a>
</li>
<li class="file-stats">
<a href="#64986ea8b3be4272c20b8a7ea27c9861950060db">
libraries/ghc-internal/src/GHC/Internal/Pack.hs
</a>
</li>
<li class="file-stats">
<a href="#06e56ddc7a3ae336a0e60d630af4ac89e68c6903">
libraries/ghc-internal/src/GHC/Internal/Wasm/Prim/Imports.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="#a442fd7ecae5d24fd03869652f2abedfa2721207">
rts/include/RtsAPI.h
</a>
</li>
<li class="file-stats">
<a href="#5d816e20872e4770a7dbe3f77d5683e0bd00a50d">
testsuite/tests/ghci/should_run/Makefile
</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="#e3879079afa32ec6b17e3ec0467dc56e0f6e2a1e">
<span class="new-file">
+
testsuite/tests/ghci/should_run/TopEnvIface.hs
</span>
</a>
</li>
<li class="file-stats">
<a href="#ecf4f403d61d19a8d84e390f57d32875e2aecdee">
<span class="new-file">
+
testsuite/tests/ghci/should_run/TopEnvIface.stdout
</span>
</a>
</li>
<li class="file-stats">
<a href="#e3ec196b4d51de46a9d43a05f940f89634edcfcc">
<span class="new-file">
+
testsuite/tests/ghci/should_run/TopEnvIface2.hs
</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="#a2b7cae4aec791aa039150be608dbfa0c1dcf25e">
testsuite/tests/jsffi/jsffigc.hs
</a>
</li>
<li class="file-stats">
<a href="#2e84c32764b31a3fe35772ed36720993c7401237">
testsuite/tests/jsffi/jsffigc.mjs
</a>
</li>
<li class="file-stats">
<a href="#7bcd84be2b12c98ad2eab5db292374f7c49f1f4a">
testsuite/tests/jsffi/jsffisleep.hs
</a>
</li>
<li class="file-stats">
<a href="#439bfdae1c812e7b2a29141149ee72e6b21640a7">
testsuite/tests/jsffi/jsffisleep.stdout
</a>
</li>
<li class="file-stats">
<a href="#53ec544bf16342ce6399801f0c6e2dbcd18dea2f">
testsuite/tests/jsffi/textconv.hs
</a>
</li>
<li class="file-stats">
<a href="#a5a4286c58acf6a6b45c01affd83b814cf13e67d">
testsuite/tests/jsffi/textconv.mjs
</a>
</li>
<li class="file-stats">
<a href="#c5662bedafa6a48ec7062b131d94b70f514207d9">
utils/check-exact/ExactPrint.hs
</a>
</li>
<li class="file-stats">
<a href="#a01c7c8d6870e84e6f69c9daf633c0cc2adbb1bf">
utils/check-exact/Main.hs
</a>
</li>
<li class="file-stats">
<a href="#5a3935220a12511953a752af2c9b7d29d0a1b3fa">
utils/check-exact/Transform.hs
</a>
</li>
<li class="file-stats">
<a href="#3257d9454efdfaae92dd011e55e59bba45faf514">
utils/check-exact/Utils.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/b7ab4fcf85cf04b286833d1de49dc37b4346f39a...35f6403c32f031cc297fb22503afccedfb683cd8">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>