<!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;">
Rodrigo Mesquita pushed to branch wip/exception-propagate 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/723e4471c356de06271f48bfb777db141a7ae675">723e4471</a></strong>
<div>
<span> by Matthew Pickering </span> <i> at 2024-09-24T17:16:04+01:00 </i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 14px; color: #28272d; position: relative; font-family: "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;'>Exception rethrowing
Basic changes:
* Change `catch` function to propagate exceptions using the
WhileHandling mechanism.
* Introduce `catchNoPropagate`, which does the same as before, but
passes an exception which can be rethrown.
* Introduce `rethrowIO` combinator, which rethrows an exception with a
context and doesn't add a new backtrace.
* Introduce `tryWithContext` for a variant of `try` which can rethrow
the exception with it's original context.
* onException is modified to rethrow the original error rather than
creating a new callstack.
* Functions which rethrow in GHC.Internal.IO.Handle.FD,
GHC.Internal.IO.Handle.Internals, GHC.Internal.IO.Handle.Text, and
GHC.Internal.System.IO.Error are modified to not add a new callstack.
Implements CLC proposal#202 <https://github.com/haskell/core-libraries-committee/issues/202>
</pre>
</li>
</ul>
<h4 style="margin-top: 10px; margin-bottom: 10px;">
30 changed files:
</h4>
<ul>
<li class="file-stats">
<a href="#f595baeef5a4f6e40ab0d654fa17c31a4f4aec73">
docs/users_guide/9.12.1-notes.rst
</a>
</li>
<li class="file-stats">
<a href="#392e9dfd3417e267d708c5ab16536f2994d43745">
libraries/base/changelog.md
</a>
</li>
<li class="file-stats">
<a href="#d1f7a79361ae6cdc4939449936139b5703ca4c3d">
libraries/base/src/Control/Exception.hs
</a>
</li>
<li class="file-stats">
<a href="#6006e1ae32823cb3154ac0b6ac4db1557c24448f">
libraries/base/tests/IO/T4808.stderr
</a>
</li>
<li class="file-stats">
<a href="#e568ef08382fdbbe133494fb14a9e6d96000c96b">
libraries/base/tests/IO/mkdirExists.stderr
</a>
</li>
<li class="file-stats">
<a href="#db536dd42d23af99a81aac016d61b71f80f8f4ea">
libraries/base/tests/IO/openFile002.stderr
</a>
</li>
<li class="file-stats">
<a href="#fb6c1c19fc7bb6f4f5ba85e8b9f006477ba0bd9f">
libraries/base/tests/IO/withBinaryFile001.stderr
</a>
</li>
<li class="file-stats">
<a href="#c38b63478bba4419616823fe2c5d0cb91c96c752">
libraries/base/tests/IO/withBinaryFile002.stderr
</a>
</li>
<li class="file-stats">
<a href="#b7064d6743bd22d40dbeabdd98ee51a82fd883c8">
libraries/base/tests/IO/withFile001.stderr
</a>
</li>
<li class="file-stats">
<a href="#7a08f3bd51e8b0054ae6f6f0e00580deddfe6225">
libraries/base/tests/IO/withFile002.stderr
</a>
</li>
<li class="file-stats">
<a href="#7d385ab1064e418a0b4159db1082b481b60f6fab">
libraries/base/tests/IO/withFileBlocking001.stderr
</a>
</li>
<li class="file-stats">
<a href="#a2262a3c39b721ec88b4330d683a4f4925204571">
libraries/base/tests/IO/withFileBlocking002.stderr
</a>
</li>
<li class="file-stats">
<a href="#582dfe030c20c9a85f522b3b4fa585d2cbe4e07d">
libraries/base/tests/T15349.stderr
</a>
</li>
<li class="file-stats">
<a href="#d50e12f7c7d9a5f38b58d568854d92386c8e7736">
libraries/ghc-internal/src/GHC/Internal/Control/Exception.hs
</a>
</li>
<li class="file-stats">
<a href="#1576adca9e38a7d441681fb580390e69e15405cf">
libraries/ghc-internal/src/GHC/Internal/Control/Exception/Base.hs
</a>
</li>
<li class="file-stats">
<a href="#03cfee2d5ff1e2f3ab92a8cb79be769da8656d93">
libraries/ghc-internal/src/GHC/Internal/Exception/Type.hs
</a>
</li>
<li class="file-stats">
<a href="#bb83cf49f08e4c2ec66274e8426fb1ffc5f604c2">
libraries/ghc-internal/src/GHC/Internal/IO.hs
</a>
</li>
<li class="file-stats">
<a href="#58c67851d6e1f050ad5572c08d9064b15eb2fd95">
libraries/ghc-internal/src/GHC/Internal/IO/Exception.hs
</a>
</li>
<li class="file-stats">
<a href="#0dc1a90fa4fc7f1866d7cfaddccc79a1feb93e3c">
libraries/ghc-internal/src/GHC/Internal/IO/Handle/FD.hs
</a>
</li>
<li class="file-stats">
<a href="#9fe9565cef4f07e7e91657759754879622e00359">
libraries/ghc-internal/src/GHC/Internal/IO/Handle/Internals.hs
</a>
</li>
<li class="file-stats">
<a href="#75fa53392d4c519dc5db9604133d0edd685a502c">
libraries/ghc-internal/src/GHC/Internal/IO/Handle/Text.hs
</a>
</li>
<li class="file-stats">
<a href="#c95154c18059a1e75f439d1755707e48e2fe0556">
libraries/ghc-internal/src/GHC/Internal/System/IO/Error.hs
</a>
</li>
<li class="file-stats">
<a href="#6aae468a9c70d66c008345dda770d1f81abb0b5e">
testsuite/tests/codeGen/should_run/cgrun016.stderr
</a>
</li>
<li class="file-stats">
<a href="#9041b2507e4e100f34b6dae68747841578e25c84">
testsuite/tests/codeGen/should_run/cgrun025.stderr
</a>
</li>
<li class="file-stats">
<a href="#3f942a6c6ccb063e9f38aa40177723f09636d9c9">
testsuite/tests/ffi/should_run/T7170.stderr
</a>
</li>
<li class="file-stats">
<a href="#0d2630125f5b9bd30b542ea1847c2b39c507138e">
testsuite/tests/ghc-e/should_fail/T18441fail2.stderr
</a>
</li>
<li class="file-stats">
<a href="#5ac3f84bdfa153afbb2c2aa728381b60b85a128f">
testsuite/tests/ghc-e/should_fail/T18441fail7.stderr
</a>
</li>
<li class="file-stats">
<a href="#e0a74fe954a925cd5305d1fd9e23842b12a25620">
testsuite/tests/ghc-e/should_fail/T18441fail8.stderr
</a>
</li>
<li class="file-stats">
<a href="#d4e1c50a4712ebe31a2429df0062f820968078e3">
testsuite/tests/ghc-e/should_fail/T23663.stderr
</a>
</li>
<li class="file-stats">
<a href="#0310da89b574a4690b97a6371f67593abb19132c">
testsuite/tests/ghc-e/should_fail/T9930fail.stderr
</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: #737278;">
—
<br>
<a href="https://gitlab.haskell.org/ghc/ghc/-/commit/723e4471c356de06271f48bfb777db141a7ae675">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>
<script type="application/ld+json">{"@context":"http://schema.org","@type":"EmailMessage","action":{"@type":"ViewAction","name":"View Commit","url":"https://gitlab.haskell.org/ghc/ghc/-/commit/723e4471c356de06271f48bfb777db141a7ae675"}}</script>
</p>
</div>
</body>
</html>