<!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;">
Vladislav Zavialov pushed to branch wip/int-index/errmsg-type-abstractions 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/f3bfe31e6190d4161b0225e1e8bd0c8088f2c54d">f3bfe31e</a></strong>
<div>
<span> by Cheng Shao </span> <i> at 2025-02-23T14:06: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;'>wasm: add Note [Variable passing in JSFFI] as !13583 follow up
This patch adds a note to explain how the magic variables like
`__ghc_wasm_jsffi_dyld` are brought into scope of JSFFI code snippets,
as follow up work of !13583.
</pre>
</li>
<li>
<strong style="font-weight: 600;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/c318be56f69eb87f1cbb219dd660f09498857ece">c318be56</a></strong>
<div>
<span> by Cheng Shao </span> <i> at 2025-02-23T14:07: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;'>libffi: update to 3.4.7
Bumps libffi submodule.
</pre>
</li>
<li>
<strong style="font-weight: 600;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/33aca30fbff67188fd5692cf40f1e2542663bfec">33aca30f</a></strong>
<div>
<span> by sheaf </span> <i> at 2025-02-25T08:58:46-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;'>LLVM: account for register type in funPrologue
We were not properly accounting for the live register type of
global registers in GHC.CmmToLlvm.CodeGen.funPrologue. This meant that
we could allocated a register at type <4 x i32> but try to write to it
at type <8 x i16>, which LLVM doesn't much like.
This patch fixes that by inserting intermerdiate casts when necessary.
Fixes #25730
</pre>
</li>
<li>
<strong style="font-weight: 600;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/0eb58b0e1e9a5b2f28dada66c32d37a640644553">0eb58b0e</a></strong>
<div>
<span> by sheaf </span> <i> at 2025-02-25T08:59:29-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: make Data.List.NonEmpty.unzip match Data.List
This commit makes Data.List.NonEmpty.unzip match the implementation
of Data.List, as was suggested in approved CLC proposal #107.
</pre>
</li>
<li>
<strong style="font-weight: 600;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/f4da90f11e3a3a634ec3edb6d70d96fe3515b726">f4da90f1</a></strong>
<div>
<span> by Matthew Pickering </span> <i> at 2025-02-25T14:11: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;'>interpreter: Fix underflow frame lookups
BCOs can be nested, resulting in nested BCO stack frames where the inner most
stack frame can refer to variables stored on earlier stack frames via the
PUSH_L instruction.
|---------|
| BCO_1 | -<-┐
|---------|
......... |
|---------| | PUSH_L <n>
| BCO_N | ->-┘
|---------|
Here BCO_N is syntactically nested within the code for BCO_1 and will result
in code that references the prior stack frame of BCO_1 for some of it's local
variables. If a stack overflow happens between the creation of the stack frame
for BCO_1 and BCO_N the RTS might move BCO_N to a new stack chunk while leaving
BCO_1 in place, invalidating a simple offset based reference to the outer stack
frames.
Therefore `ReadSpW` first performs a bounds check to ensure that accesses onto
the stack will succeed. If the target address would not be a valid location for
the current stack chunk then `slow_spw` function is called, which dereferences
the underflow frame to adjust the offset before performing the lookup.
┌->--x | CHK_1 |
| CHK_2 | | | |---------|
|---------| | └-> | BCO_1 |
| UD_FLOW | -- x |---------|
|---------| |
| ...... | |
|---------| | PUSH_L <n>
| BCO_ N | ->-┘
|---------|
Fixes #25750
</pre>
</li>
<li>
<strong style="font-weight: 600;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/c3f2d284656f7b37e7c690cf6a8910656b7f46ac">c3f2d284</a></strong>
<div>
<span> by Vladislav Zavialov </span> <i> at 2025-02-25T14:11:58-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 ArgPatBuilder
ArgPatBuilder in Parser/PostProcess.hs became redundant with the
introduction of InvisPat (36a75b80eb).
This small refactoring removes it.
</pre>
</li>
<li>
<strong style="font-weight: 600;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/18f9d124939d699bbf637e2eba9bfbd71ec89799">18f9d124</a></strong>
<div>
<span> by Vladislav Zavialov </span> <i> at 2025-02-26T00:15:00+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;'>Tidy up error messages for TypeAbstractions
1. Print the '@' symbol before invisible patterns and improve phrasing:
T24557c.hs:8:4: error: [GHC-11983]
- Invisible type pattern pat is not allowed here
+ Illegal invisible type pattern: @pat
+ An invisible type pattern must occur in an argument position.
2. Use a single error code for all type abstractions deemed illegal
due to the TypeAbstractions extension being disabled.
Before this change:
* [GHC-78249] was used in function equations, lambdas
* [GHC-17916] was used in constructor patterns
After this change:
* [GHC-78249] is used to report all illegal type abstractions
* [GHC-17916] is no longer used
There was no reason for both error codes to exist and this distinction
was a source of complexity in GHC/Tc/Errors/* and GHC/Rename/Pat.hs
3. Group the different "invisible type pattern" error constructors
under a single parent constructor, TcRnIllegalInvisibleTypePattern
containing BadInvisPatReason
</pre>
</li>
</ul>
<h4 style="margin-top: 10px; margin-bottom: 10px;">
36 changed files:
</h4>
<ul>
<li class="file-stats">
<a href="#e6d1631f6489247960af7cf2a444f14f538f255a">
compiler/GHC/Cmm/Reg.hs
</a>
</li>
<li class="file-stats">
<a href="#b5ac041c7f79084a7a7626eda4cdadda3457d235">
compiler/GHC/CmmToLlvm/Base.hs
</a>
</li>
<li class="file-stats">
<a href="#a49dbda5c8a9c380f638f55cf5ade791db0017cc">
compiler/GHC/CmmToLlvm/CodeGen.hs
</a>
</li>
<li class="file-stats">
<a href="#a9c3a06c7fd897da411de90b6369a78bbd012119">
compiler/GHC/Llvm/Types.hs
</a>
</li>
<li class="file-stats">
<a href="#446cb12ca6cefaf1c6eb79b7db643632744263c7">
compiler/GHC/Parser/PostProcess.hs
</a>
</li>
<li class="file-stats">
<a href="#cfa41b5649933e5b12f7796e9d49b9dd6a0bc59f">
compiler/GHC/Rename/Pat.hs
</a>
</li>
<li class="file-stats">
<a href="#939d24c1002dc322659c1f67c9f3d2db2ae31dd4">
compiler/GHC/Rename/Utils.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="#3ee8be814b6c6727880deab3772e6af922524bf0">
compiler/GHC/Tc/Gen/Pat.hs
</a>
</li>
<li class="file-stats">
<a href="#e2c828ee9e003df518a07b05beaa6971e5c62eb0">
compiler/GHC/Types/Error/Codes.hs
</a>
</li>
<li class="file-stats">
<a href="#f54a947920458c0f69edef64afc5514fe59c9e49">
libffi-tarballs
</a>
</li>
<li class="file-stats">
<a href="#bb99dcdd1145e72572944a803ab3b333da8a2489">
libraries/base/src/Data/List/NonEmpty.hs
</a>
</li>
<li class="file-stats">
<a href="#4ba2f0376a3857da0c781f2a39ae648ec42663f8">
libraries/ghci/GHCi/ObjLink.hs
</a>
</li>
<li class="file-stats">
<a href="#539d43389593f2626a387f2c904f03c215c7c802">
rts/Interpreter.c
</a>
</li>
<li class="file-stats">
<a href="#61143f83379cd098b89045526f227f72ae55eb98">
<span class="new-file">
+
testsuite/tests/llvm/should_run/T25730.hs
</span>
</a>
</li>
<li class="file-stats">
<a href="#af03404cddcaed972c85f44b0ffb2f64540ee60b">
<span class="new-file">
+
testsuite/tests/llvm/should_run/T25730.stdout
</span>
</a>
</li>
<li class="file-stats">
<a href="#b0aa1e6126d2af91918a76d7270c2628bba4dd05">
<span class="new-file">
+
testsuite/tests/llvm/should_run/T25730C.c
</span>
</a>
</li>
<li class="file-stats">
<a href="#02b86fb31d4ed59970aaab6e814c59349c02dba4">
testsuite/tests/llvm/should_run/all.T
</a>
</li>
<li class="file-stats">
<a href="#8d5403ae8ddeebd1d07416f6c25d9655608825d3">
testsuite/tests/rename/should_fail/T17594b.hs
</a>
</li>
<li class="file-stats">
<a href="#0b958f3e2914361d8d2da7048c982f61a3388c70">
testsuite/tests/rename/should_fail/T17594b.stderr
</a>
</li>
<li class="file-stats">
<a href="#e2f81f5b5bbe7f28bcd82b6ef2d68f4cd58a0b76">
<span class="new-file">
+
testsuite/tests/rename/should_fail/T17594b_th.hs
</span>
</a>
</li>
<li class="file-stats">
<a href="#859eefe345291865dec49facc8fd37c69b9f24b7">
<span class="new-file">
+
testsuite/tests/rename/should_fail/T17594b_th.stderr
</span>
</a>
</li>
<li class="file-stats">
<a href="#34ec0e2feed75b3250a8bac12e8b4d878017cf72">
testsuite/tests/rename/should_fail/T22478e.stderr
</a>
</li>
<li class="file-stats">
<a href="#c2554d4efde41e6e193f728122336449d2cb5fc5">
testsuite/tests/rename/should_fail/all.T
</a>
</li>
<li class="file-stats">
<a href="#0fedbb4e4a830653d95838a0dca4219bc8bd725c">
testsuite/tests/th/T24557a.stderr
</a>
</li>
<li class="file-stats">
<a href="#41b6a8f2448671ab3f311b0ed3c044b772c7a252">
testsuite/tests/th/T24557b.stderr
</a>
</li>
<li class="file-stats">
<a href="#cecde0412b1d690f0447a0add4495ee9f6d3c140">
testsuite/tests/th/T24557c.stderr
</a>
</li>
<li class="file-stats">
<a href="#e0e495e494c9b6bd8fab00aa30c568e6c6719923">
testsuite/tests/th/T24557d.stderr
</a>
</li>
<li class="file-stats">
<a href="#afef3e2940eede8df87fdfe1f3cd754de08f54c8">
testsuite/tests/typecheck/should_fail/T17594c.stderr
</a>
</li>
<li class="file-stats">
<a href="#d39bc1f1806f8f0ccccc7d488200f16cb6642064">
testsuite/tests/typecheck/should_fail/T17594d.stderr
</a>
</li>
<li class="file-stats">
<a href="#1fa42785ae8dd2a7f4b8af4f3247ad8cdcc8355c">
testsuite/tests/typecheck/should_fail/T17594g.stderr
</a>
</li>
<li class="file-stats">
<a href="#e579a029b2f46ab9f292d1c4f6d5dc2ecc10df08">
testsuite/tests/typecheck/should_fail/T19109.stderr
</a>
</li>
<li class="file-stats">
<a href="#6c9724fbbee5971641b6197a36e360bbe73db0ff">
testsuite/tests/typecheck/should_fail/T23776.stderr
</a>
</li>
<li class="file-stats">
<a href="#878239b741b4ae28066212456e912ca742627d80">
utils/jsffi/dyld.mjs
</a>
</li>
<li class="file-stats">
<a href="#b699c36d2c5246ddf5f3b40ccc89a50a492ba778">
utils/jsffi/post-link.mjs
</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/1bd03e1250bc0996208a5445dc4cae20ae33e746...18f9d124939d699bbf637e2eba9bfbd71ec89799">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>