<!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: 0.875rem;
}
body {
-webkit-text-shadow: rgba(255,255,255,0.01) 0 0 1px;
}
body {
font-family: var(--default-regular-font, "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,0.01) 0 0 1px; font-family: var(--default-regular-font, "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: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/0dfb1fa799af254c8a1e1045fc3996af2d57a613">0dfb1fa7</a></strong>
<div>
<span> by Vladislav Zavialov </span> <i> at 2023-11-03T14:08:41-04:00 </i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 14px; color: #333238; position: relative; font-family: var(--default-mono-font, "GitLab Mono"),"JetBrains Mono","Menlo","DejaVu Sans Mono","Liberation Mono","Consolas","Ubuntu Mono","Courier New","andale mono","lucida console",monospace; word-break: break-all; word-wrap: break-word; background-color: #fbfafd; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dcdcde;'>T2T in Expressions (#23738)

This patch implements the T2T (term-to-type) transformation in
expressions. Given a function with a required type argument
        vfun :: forall a -> ...

the user can now call it as
        vfun (Maybe Int)

instead of
        vfun (type (Maybe Int))

The Maybe Int argument is parsed and renamed as a term (HsExpr), but then
undergoes a conversion to a type (HsType).
See the new function expr_to_type in compiler/GHC/Tc/Gen/App.hs
and Note [RequiredTypeArguments and the T2T mapping]

Left as future work: checking for puns.
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/7933733ae28de72a49a7067e78e13767afbcb7d1">7933733a</a></strong>
<div>
<span> by Duncan Coutts </span> <i> at 2023-11-03T14:39:39-04:00 </i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 14px; color: #333238; position: relative; font-family: var(--default-mono-font, "GitLab Mono"),"JetBrains Mono","Menlo","DejaVu Sans Mono","Liberation Mono","Consolas","Ubuntu Mono","Courier New","andale mono","lucida console",monospace; word-break: break-all; word-wrap: break-word; background-color: #fbfafd; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dcdcde;'>Add a test for I/O managers

It tries to cover the cases of multiple threads waiting on the same
fd for reading and multiple threads waiting for writing, including
wait cancellation by async exceptions.

It should work for any I/O manager, in-RTS or in-Haskell.
Unfortunately it will not currently work for Windows because it relies
on anonymous unix sockets. It could in principle be ported to use
Windows named pipes.
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/01e2ac506be836c39d46ff578e606e95c57f5159">01e2ac50</a></strong>
<div>
<span> by Simon Peyton Jones </span> <i> at 2023-11-03T14:39:39-04:00 </i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 14px; color: #333238; position: relative; font-family: var(--default-mono-font, "GitLab Mono"),"JetBrains Mono","Menlo","DejaVu Sans Mono","Liberation Mono","Consolas","Ubuntu Mono","Courier New","andale mono","lucida console",monospace; word-break: break-all; word-wrap: break-word; background-color: #fbfafd; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dcdcde;'>Update the unification count in wrapUnifierX

Omitting this caused type inference to fail in #24146.
This was an accidental omision in my refactoring of the
equality solver.
</pre>
</li>
</ul>
<h4 style="margin-top: 10px; margin-bottom: 10px;">
30 changed files:
</h4>
<ul>
<li class="file-stats">
<a href="#cc97d81e7223ad4a3a5e801156ca632f9fa75654">
compiler/GHC/Hs/Expr.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="#6a1f039ed7725eddef15dd5f4dc318a3434f26c9">
compiler/GHC/Tc/Gen/App.hs
</a>
</li>
<li class="file-stats">
<a href="#0c6b585a8a21f8340a85ca2cef89c4b1bf5a8953">
compiler/GHC/Tc/Solver/Monad.hs
</a>
</li>
<li class="file-stats">
<a href="#e2c828ee9e003df518a07b05beaa6971e5c62eb0">
compiler/GHC/Types/Error/Codes.hs
</a>
</li>
<li class="file-stats">
<a href="#0d674271b5e602f8c38b813c8c42593afce96a1b">
compiler/GHC/Types/Hint.hs
</a>
</li>
<li class="file-stats">
<a href="#5543c5c6c25dc2d751debfc3bc1be17365251351">
compiler/GHC/Types/Hint/Ppr.hs
</a>
</li>
<li class="file-stats">
<a href="#6816c5954a025bb59270f70d0a997e605585d801">
compiler/GHC/Types/Name/Occurrence.hs
</a>
</li>
<li class="file-stats">
<a href="#dbcbd7b55b6584a40b8c7bd1f31599dacce2dbd6">
docs/users_guide/exts/required_type_arguments.rst
</a>
</li>
<li class="file-stats">
<a href="#2937d23144454625b5830e39f20bc1cede74d24e">
testsuite/tests/diagnostic-codes/codes.stdout
</a>
</li>
<li class="file-stats">
<a href="#e6a6ac608d369a6dcd044ae92c0c889fca2c77dd">
<span class="new-file">
+
testsuite/tests/rts/IOManager.hsc
</span>
</a>
</li>
<li class="file-stats">
<a href="#4b2f03ce8b37bd758e3c8f83ddb0acfd34b5a05f">
<span class="new-file">
+
testsuite/tests/rts/IOManager.stdout
</span>
</a>
</li>
<li class="file-stats">
<a href="#607b07e2d126d5a48ffb86b87f47062d01817c42">
testsuite/tests/rts/Makefile
</a>
</li>
<li class="file-stats">
<a href="#5ced844c5529162410276a1236ca9b8e7186490c">
testsuite/tests/rts/all.T
</a>
</li>
<li class="file-stats">
<a href="#8d419c2ccbb618a7ac484d486ced5773e67bc4e0">
<span class="new-file">
+
testsuite/tests/typecheck/should_compile/T24146.hs
</span>
</a>
</li>
<li class="file-stats">
<a href="#34fe7bf0e6fbf60effb28393399ba68666593909">
testsuite/tests/typecheck/should_compile/all.T
</a>
</li>
<li class="file-stats">
<a href="#74ab86782a9f40b01db738834797860997823e45">
testsuite/tests/vdq-rta/should_compile/T22326_idv.hs
</a>
</li>
<li class="file-stats">
<a href="#5c276476089f4757abdf2bdd46f4fd681cdd9922">
<span class="new-file">
+
testsuite/tests/vdq-rta/should_compile/T23738_basic.hs
</span>
</a>
</li>
<li class="file-stats">
<a href="#168a3ad837b2275d1e27a439d7ad1ecc52cfd2b9">
<span class="new-file">
+
testsuite/tests/vdq-rta/should_compile/T23738_nested.hs
</span>
</a>
</li>
<li class="file-stats">
<a href="#fe0b7607672aaa216702268077dab1ad489caf8c">
<span class="new-file">
+
testsuite/tests/vdq-rta/should_compile/T23738_overlit.hs
</span>
</a>
</li>
<li class="file-stats">
<a href="#c4c88cbe42becb3c21338c9cee6109558d9bf4f7">
<span class="new-file">
+
testsuite/tests/vdq-rta/should_compile/T23738_sigforall.hs
</span>
</a>
</li>
<li class="file-stats">
<a href="#5383c6af2f5361168666a40595406bc33fe44c3f">
<span class="new-file">
+
testsuite/tests/vdq-rta/should_compile/T23738_th.hs
</span>
</a>
</li>
<li class="file-stats">
<a href="#89bd0b70e22520bb2a7aeb957900897de31bac89">
<span class="new-file">
+
testsuite/tests/vdq-rta/should_compile/T23738_tyvar.hs
</span>
</a>
</li>
<li class="file-stats">
<a href="#4f58f4f2c1e6eb35036edf2aab2c2415815cf19d">
<span class="new-file">
+
testsuite/tests/vdq-rta/should_compile/T23738_wild.hs
</span>
</a>
</li>
<li class="file-stats">
<a href="#242014ff226d366ebd9d18289ffa36f8d8a91218">
testsuite/tests/vdq-rta/should_compile/all.T
</a>
</li>
<li class="file-stats">
<a href="#c1a395be41f772b89cfd2b9251db368d49e5c57a">
testsuite/tests/vdq-rta/should_fail/T22326_fail_raw_arg.stderr
</a>
</li>
<li class="file-stats">
<a href="#7f5a4f866b0f6c63ecb70b46b3dc6d4d51004878">
<span class="new-file">
+
testsuite/tests/vdq-rta/should_fail/T23738_fail_implicit_tv.hs
</span>
</a>
</li>
<li class="file-stats">
<a href="#464adb6d99d35d60ce47fffe483a1f18b3971e8c">
<span class="new-file">
+
testsuite/tests/vdq-rta/should_fail/T23738_fail_implicit_tv.stderr
</span>
</a>
</li>
<li class="file-stats">
<a href="#4e9ff4bdcdbbd40732864a697a1657df706ee185">
<span class="new-file">
+
testsuite/tests/vdq-rta/should_fail/T23738_fail_var.hs
</span>
</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: #737278;">

<br>
<a href="https://gitlab.haskell.org/ghc/ghc/-/compare/d1f0555f54fdf9ea18ce221a0369318ab9fbce6c...01e2ac506be836c39d46ff578e606e95c57f5159">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>