<!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;">
Ben Gamari pushed to branch wip/T23675 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/cbae3708e67bc37c0c9d972c4a60610f08191618">cbae3708</a></strong>
<div>
<span> by Ben Gamari </span> <i> at 2025-03-11T06:09:58-04: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;'>users guide: Fix typo</pre>
</li>
<li>
<strong style="font-weight: 600;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/1951eb7a68420450cf17182c343e0132474483af">1951eb7a</a></strong>
<div>
<span> by Ben Gamari </span> <i> at 2025-03-11T06:10:35-04: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: Don't count fragile passes as failures in JUnit output
As noted in #25806, the testsuite driver's JUnit output
previously considered passes of fragile tests to be failures. Fix this.
Closes #25806.</pre>
</li>
<li>
<strong style="font-weight: 600;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/589f40b9525c59d646a8b13cd51057bd350f7849">589f40b9</a></strong>
<div>
<span> by Matthew Pickering </span> <i> at 2025-03-11T06:11:11-04: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;'>Use panic rather than error in expectJust
Otherwise, we would not get a callstack printed out when the exception
occurs.
Fixes #25829
</pre>
</li>
<li>
<strong style="font-weight: 600;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/d450e88ededf9ad042e2eae993d5ab2d133a677a">d450e88e</a></strong>
<div>
<span> by sheaf </span> <i> at 2025-03-11T06:42:59-04: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;'>Solve Wanted quantified constraints from Givens
This commit ensures we directly solve Wanted quantified constraints from
matching inert Given quantified constraints,instead of going through the
trouble of emitting an implication constraint and processing that.
This is not just an optimisation; it makes our lives easier when
generating RULEs for specialisation.
See Note [Solving Wanted QCs from Given QCs] for details
Fixes #25758
</pre>
</li>
<li>
<strong style="font-weight: 600;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/48daaf53934a2b04af5996a81f9ed8553426d9c0">48daaf53</a></strong>
<div>
<span> by Ben Gamari </span> <i> at 2025-03-11T06:42:59-04: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/d2ffb0ced429afa6924932ff1e3d725bd4d0d0a3">d2ffb0ce</a></strong>
<div>
<span> by Ben Gamari </span> <i> at 2025-03-11T06:42:59-04: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/2275b642a40afcf50d9c0fe5babae5b4a7346714">2275b642</a></strong>
<div>
<span> by Ben Gamari </span> <i> at 2025-03-11T06:42:59-04: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/8c96bcb4b67c2cb43e99e7dce111e9193d43e980">8c96bcb4</a></strong>
<div>
<span> by Ben Gamari </span> <i> at 2025-03-11T06:42:59-04: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/7b84c58867edca57a45945a20a9391724db6d9e4">7b84c588</a></strong>
<div>
<span> by Vladislav Zavialov </span> <i> at 2025-03-11T06:43:02-04: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;'>One list in ConPat (part of #25127)
This patch changes PrefixCon to use one list instead of two:
-data HsConDetails tyarg arg rec
- = PrefixCon [tyarg] [arg]
+data HsConDetails arg rec
+ = PrefixCon [arg]
| RecCon rec
| InfixCon arg arg
The [tyarg] list is now gone. To understand the effect of this change,
recall that there are three instantiations of HsConDetails:
1. type HsConPatDetails p =
HsConDetails (HsConPatTyArg (NoGhcTc p)) -- tyarg
(LPat p) -- arg
(HsRecFields p (LPat p)) -- rec
2. type HsConDeclH98Details pass =
HsConDetails Void -- tyarg
(HsScaled pass (LBangType pass)) -- arg
(XRec pass [LConDeclField pass]) -- rec
3. type HsPatSynDetails pass =
HsConDetails Void -- tyarg
(LIdP pass) -- arg
[RecordPatSynField pass] -- rec
In cases (2) and (3), tyarg was instantiated to Void, so the [tyarg]
list was always empty. Its removal is basically a no-op.
The interesting case is (1), which is used in ConPat to represent
pattern matching of the form (MkE @tp1 @tp2 p1 p2).
With this patch, its representation is changed as follows:
ConPat "MkE" [tp1, tp2] [p1, p2] -- old
ConPat "MkE" [InvisP tp1, InvisP tp2, p1, p2] -- new
The new mixed-list representation is consintent with lambdas, where
InvisP is already used to deal with \ @tp1 @tp2 p1 p2 -> body.
The immediate effect of the new representation is an improvement to
error messages. Consider the pattern (Con x @t y). Previously it
resulted in a parse error because @t could not occur after x. Now it is
reported as [GHC-14964]. Test case: TyAppPat_MisplacedApplication.
In the long term, this is intended as preparation for #18389 and #25127,
which would make (Con x @t y) potentially valid, e.g. if its type is
Con :: forall a -> forall b. (a, b) -> T
The TH AST is left unchanged for the moment to avoid breakage.
</pre>
</li>
<li>
<strong style="font-weight: 600;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/cce869ea2439bb16c284ce7ed71a173d54a8c9ad">cce869ea</a></strong>
<div>
<span> by Vladislav Zavialov </span> <i> at 2025-03-11T06:43:02-04: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;'>Error message with EmptyCase and RequiredTypeArguments (#25004)
Fix a panic triggered by a combination of \case{} and forall t ->
ghci> let f :: forall (xs :: Type) -> (); f = \case {}
panic! (the 'impossible' happened)
GHC version 9.10.1:
Util: only
The new error message looks like this:
ghci> let f :: forall (xs :: Type) -> (); f = \case {}
<interactive>:5:41: error: [GHC-48010]
• Empty list of alternatives in \case expression
checked against a forall-type: forall xs -> ...
This is achieved as follows:
* A new data type, BadEmptyCaseReason, is now used to describe
why an empty case has been rejected. Used in TcRnEmptyCase.
* HsMatchContextRn is passed to tcMatches, so that the type checker
can attach the syntactic context to the error message.
* tcMatches now rejects type arguments if the list of alternatives is
empty. This is what fixes the bug.
</pre>
</li>
<li>
<strong style="font-weight: 600;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/37d8b50b6de8ee69ea26196fd3869fe0a83e5802">37d8b50b</a></strong>
<div>
<span> by sheaf </span> <i> at 2025-03-11T06:43:06-04: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;'>user's guide: consolidate defaulting documentation
This commit adds a new section on defaulting, which consolidates various
parts of documentation surrounding defaulting into one central place.
It explains type class defaulting in detail, extensions to it with
OverloadedStrings, NamedDefaults and ExtendedDefaultRules, as well
as other defaulting mechanisms (e.g. kind-based defaulting such as
RuntimeRep defaulting, and defaulting of equalities).
</pre>
</li>
<li>
<strong style="font-weight: 600;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/0c9fd8d48ab018739ac146420c474367c98d9ab1">0c9fd8d4</a></strong>
<div>
<span> by sheaf </span> <i> at 2025-03-11T06:43:06-04: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;'>user's guide: flesh out XOverloadedStrings docs
This commit extends the documentation of the OverloadedStrings extension
with some usage information, in particular suggestions to:
- use default declarations, such as `default (Text)` or
`default IsString(Text)` (with the NamedDefaults extension),
- enable the ExtendedDefaultRules extension to relax the requirement
that a defaultable type variable must only appear in unary standard
classes
Fixes #23388
</pre>
</li>
<li>
<strong style="font-weight: 600;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/2df171d40b93c666a3aa8b616a47c9acf13f7189">2df171d4</a></strong>
<div>
<span> by sheaf </span> <i> at 2025-03-11T06:43:06-04: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;'>user's guide: NamedDefaults vs ExtendedDefaultRules
This commit clarifies the defaulting rules with NamedDefaults,
in particular in situations where a type variable appears in other
constraints than standard/unary constraints.
</pre>
</li>
<li>
<strong style="font-weight: 600;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/77df05d0714b405eed6a7285abdc8bd90cf37ae1">77df05d0</a></strong>
<div>
<span> by Matthew Pickering </span> <i> at 2025-03-11T06:43:07-04: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;'>Take into account all flags when computing iface_hash
The "interface hash" should contain a hash of everything in the
interface file. We are not doing that yet but at least a start is to
include a hash of everything in `mi_self_recomp`, rather than just
`mi_src_hash` and `mi_usages`.
In particular, this fixes #25837, a bug where we should recompile a
`dyn_hi` file but fail to do so.
</pre>
</li>
<li>
<strong style="font-weight: 600;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/48b8f1101d5e061f6dc0346c8e7fa7340172d45d">48b8f110</a></strong>
<div>
<span> by Matthew Pickering </span> <i> at 2025-03-11T06:43:07-04: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;'>Pass -fPIC to dynamicToo001 test to avoid platform dependence issues
On darwin platforms, `-fPIC` is always enabled but on linux it is only
enabled in the dynamic flavour. This can cause a difference in
interface files (see #25836).
The purpose of this test isn't to test module A recompilation, so we
avoid this platform dependency by always passing `-fPIC`.
</pre>
</li>
<li>
<strong style="font-weight: 600;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/03c72f014c72d0728d813df8d56ea3364b775b47">03c72f01</a></strong>
<div>
<span> by Matthew Pickering </span> <i> at 2025-03-11T06:43:07-04: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 mi_used_th field from interface files
In the distant past, recompilation checking was disabled for interfaces which used
TemplateHaskell, but for several years now recompilation checking has
been more fine-grained. This has rendered this field unused and
lingering in an interface file.
</pre>
</li>
<li>
<strong style="font-weight: 600;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/6bb0e2617dd771dd9b059dc1906b268f5e53e440">6bb0e261</a></strong>
<div>
<span> by Matthew Pickering </span> <i> at 2025-03-11T06:43:07-04: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 mi_hpc field from interface files
The `mi_hpc` field is not used for anything as far as I can discern so
there is no reason to record in the private interface of a module that
there are modules in the transitive closure which use `hpc`.
You can freely mix modules which use `-fhpc` and ones which don't.
Whether to recompile a module due to `-fhpc` being passed to the module
itself is determined in `fingerprintDynFlags`.
</pre>
</li>
<li>
<strong style="font-weight: 600;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/107f5ea76c3dbec42b2efa6c837947e0133a2061">107f5ea7</a></strong>
<div>
<span> by Ben Gamari </span> <i> at 2025-03-11T19:01:30-04: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;'>configure: Don't force value of OTOOL, etc. if not present
Previously if `otool` and `install_name_tool` were not present they
would be overridden by `fp_settings.m4`. This logic was introduced in
4ff93292243888545da452ea4d4c1987f2343591 without explanation.
</pre>
</li>
<li>
<strong style="font-weight: 600;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/ae78541faf26ce7a6838d2e2dfcd081e2ab3c718">ae78541f</a></strong>
<div>
<span> by Ben Gamari </span> <i> at 2025-03-11T19:01:34-04: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-toolchain: Add support for otool, install_name_tool
Fixes part of ghc#23675.
</pre>
</li>
<li>
<strong style="font-weight: 600;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/6ec47e4146926e59ca8684ba1e912057bb3df9c7">6ec47e41</a></strong>
<div>
<span> by Ben Gamari </span> <i> at 2025-03-11T19:01:38-04: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-toolchain: Add support for llc, opt, llvm-as
Fixes #23675.
</pre>
</li>
</ul>
<h4 style="margin-top: 10px; margin-bottom: 10px;">
105 changed files:
</h4>
<ul>
<li class="file-stats">
<a href="#d0d96a6d03668aeab20ebe05e2c4ccb798c7e64c">
compiler/GHC.hs
</a>
</li>
<li class="file-stats">
<a href="#f4ae6618b39d5ee4af8302b821aa7e38097a84b7">
compiler/GHC/Data/Maybe.hs
</a>
</li>
<li class="file-stats">
<a href="#65ca06d51797ebf672a62bde6c00bcb9444e1425">
compiler/GHC/Hs/Binds.hs
</a>
</li>
<li class="file-stats">
<a href="#75bfcd03f3ba9315d33104fcb0424c6bfeb4e334">
compiler/GHC/Hs/Decls.hs
</a>
</li>
<li class="file-stats">
<a href="#9f00edfedb0f969865b049a78de3866545b4a60b">
compiler/GHC/Hs/Instances.hs
</a>
</li>
<li class="file-stats">
<a href="#0bae7e7e67b5f9b6ba2a371f8917cf74423a0c6f">
compiler/GHC/Hs/Pat.hs
</a>
</li>
<li class="file-stats">
<a href="#018be522bc4813b147a1525e4f96a7a493207d96">
compiler/GHC/Hs/Type.hs
</a>
</li>
<li class="file-stats">
<a href="#7a1af22e4c32b9aa6ec708d9d3788e1c4db5da9a">
compiler/GHC/Hs/Utils.hs
</a>
</li>
<li class="file-stats">
<a href="#dd79b5199bc3b425c4536c633b39006df111a7ef">
compiler/GHC/HsToCore.hs
</a>
</li>
<li class="file-stats">
<a href="#ea46b374e004d4416e29a563ee063542f98e48c5">
compiler/GHC/HsToCore/Docs.hs
</a>
</li>
<li class="file-stats">
<a href="#085703923f9c18f6ac9f926ac9a4c7c7e6d9d9ed">
compiler/GHC/HsToCore/Match.hs
</a>
</li>
<li class="file-stats">
<a href="#b370399ae1ab68e37f0e631d98a45da6df9f011c">
compiler/GHC/HsToCore/Match/Constructor.hs
</a>
</li>
<li class="file-stats">
<a href="#950eaa7de202a2e915b5ff68a4cfd16e972ad359">
compiler/GHC/HsToCore/Pmc/Desugar.hs
</a>
</li>
<li class="file-stats">
<a href="#3c19c0be465f9a28d7b69f89c55648080fcc37eb">
compiler/GHC/HsToCore/Quote.hs
</a>
</li>
<li class="file-stats">
<a href="#649144a78135a23cabfc90dd83c4aabf448eb6ab">
compiler/GHC/Iface/Ext/Ast.hs
</a>
</li>
<li class="file-stats">
<a href="#7d51edda4fa76a202cce0bca672ef300249ba8ea">
compiler/GHC/Iface/Load.hs
</a>
</li>
<li class="file-stats">
<a href="#4ed0dc87b8bdd9324e8a181cff15caa104b9e58c">
compiler/GHC/Iface/Make.hs
</a>
</li>
<li class="file-stats">
<a href="#a8e6b17fc507589522323d8dd20d9713e8c06760">
compiler/GHC/Iface/Recomp.hs
</a>
</li>
<li class="file-stats">
<a href="#bf951467d4a9aa443cb109cb4c84a2891945649b">
compiler/GHC/Parser.y
</a>
</li>
<li class="file-stats">
<a href="#4769efc0cb06e92bc7562e31984f6d7d91048e51">
compiler/GHC/Parser/Errors/Ppr.hs
</a>
</li>
<li class="file-stats">
<a href="#6bd0eb7fd0a01f3d8cf2efe3f1d026d2145cf10b">
compiler/GHC/Parser/Errors/Types.hs
</a>
</li>
<li class="file-stats">
<a href="#446cb12ca6cefaf1c6eb79b7db643632744263c7">
compiler/GHC/Parser/PostProcess.hs
</a>
</li>
<li class="file-stats">
<a href="#13755bdc5d6c6b4c6f31604eb0da778521355795">
compiler/GHC/Parser/PostProcess/Haddock.hs
</a>
</li>
<li class="file-stats">
<a href="#af762064d779f7308dd415966c974f27d14f9943">
compiler/GHC/Rename/Bind.hs
</a>
</li>
<li class="file-stats">
<a href="#7dd1cd0f6f2164a14c83d9aa564dd32bc30e447a">
compiler/GHC/Rename/Module.hs
</a>
</li>
<li class="file-stats">
<a href="#e05ee69330b0f7088f11a5f3567137547489664d">
compiler/GHC/Rename/Names.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="#6a1f039ed7725eddef15dd5f4dc318a3434f26c9">
compiler/GHC/Tc/Gen/App.hs
</a>
</li>
<li class="file-stats">
<a href="#71fa5eb3ba70e1d3a6181a226c2c227d42f1eb7d">
compiler/GHC/Tc/Gen/Arrow.hs
</a>
</li>
<li class="file-stats">
<a href="#902811828741e6bcd64702935bbb54edbbd070ef">
compiler/GHC/Tc/Gen/Expr.hs
</a>
</li>
<li class="file-stats">
<a href="#3377164bfe9a1f1a8cfd588703ae1e0ea1e91cf9">
compiler/GHC/Tc/Gen/Match.hs
</a>
</li>
<li class="file-stats">
<a href="#3ee8be814b6c6727880deab3772e6af922524bf0">
compiler/GHC/Tc/Gen/Pat.hs
</a>
</li>
<li class="file-stats">
<a href="#9ea832ccdb4b5f7508a1efd6caedeafa16b269e7">
compiler/GHC/Tc/Gen/Splice.hs
</a>
</li>
<li class="file-stats">
<a href="#e65390fa5a32c453a81a1c9a3e1c4464d155ca4a">
compiler/GHC/Tc/Module.hs
</a>
</li>
<li class="file-stats">
<a href="#ab8ab088292736c35c38fa55bdaec8ddcbf20b32">
compiler/GHC/Tc/Solver/Solve.hs
</a>
</li>
<li class="file-stats">
<a href="#83d23a46bb6cdc8b1edc16f1fd2c8f5c53e2c9ca">
compiler/GHC/Tc/TyCl.hs
</a>
</li>
<li class="file-stats">
<a href="#5c0a7f8291c984f0fc06f59e7cf10dbecc11598b">
compiler/GHC/Tc/TyCl/PatSyn.hs
</a>
</li>
<li class="file-stats">
<a href="#7dcf5b567a6cd3c9d98cf8d57323fbca1b1536e9">
compiler/GHC/Tc/Types.hs
</a>
</li>
<li class="file-stats">
<a href="#c6e4263ee64c68e57b7525127d98243fce38b1ea">
compiler/GHC/Tc/Utils/Monad.hs
</a>
</li>
<li class="file-stats">
<a href="#70276ecbf78c4d6abaaaba692722a2a4e2e46167">
compiler/GHC/Tc/Zonk/Type.hs
</a>
</li>
<li class="file-stats">
<a href="#2eac51f9871ca0c0698aa1fc7f79c05ef8fc4a49">
compiler/GHC/ThToHs.hs
</a>
</li>
<li class="file-stats">
<a href="#be1ee9a9349dfcfcaa49c4ef7eb91a31b326c982">
compiler/GHC/Types/GREInfo.hs
</a>
</li>
<li class="file-stats">
<a href="#b22db2926747cf920a6282d959f5266bba6e9750">
compiler/GHC/Types/HpcInfo.hs
</a>
</li>
<li class="file-stats">
<a href="#1b2e538eb480e4eb902f34efbe20581ec112e3c0">
compiler/GHC/Unit/Module/ModGuts.hs
</a>
</li>
<li class="file-stats">
<a href="#1b4da42c16b46d6c6cc2c2962072b1e91f519f4a">
compiler/GHC/Unit/Module/ModIface.hs
</a>
</li>
<li class="file-stats">
<a href="#09940f54f0164898f73533b62933a4d40f74b915">
compiler/GHC/Utils/Panic.hs
</a>
</li>
<li class="file-stats">
<a href="#00df6c149812cb8e21335d2ec26d0f24bdf1e441">
compiler/Language/Haskell/Syntax/Binds.hs
</a>
</li>
<li class="file-stats">
<a href="#997b81d43f8807b1b83ca6cc7c52b367982f2bf7">
compiler/Language/Haskell/Syntax/Decls.hs
</a>
</li>
<li class="file-stats">
<a href="#f92237bbf761245188d3b0de16bb685b3eaa2b60">
compiler/Language/Haskell/Syntax/Pat.hs
</a>
</li>
<li class="file-stats">
<a href="#ef5ad6f4dfc8fa107eace213eecba4bc1014ca57">
compiler/Language/Haskell/Syntax/Type.hs
</a>
</li>
<li class="file-stats">
<a href="#fc92bd51e26744718f0cbe3c1146182c90f67b31">
docs/users_guide/exts/named_defaults.rst
</a>
</li>
<li class="file-stats">
<a href="#b269a0f659968853b5c28b1dd8be4b1a1941f573">
docs/users_guide/exts/overloaded_strings.rst
</a>
</li>
<li class="file-stats">
<a href="#fa050e1532c92b2ffc94692d8b368f3fefa3196d">
docs/users_guide/exts/poly_kinds.rst
</a>
</li>
<li class="file-stats">
<a href="#b0568596f663fec3ee4206a25674821d35128f49">
<span class="new-file">
+
docs/users_guide/exts/type_defaulting.rst
</span>
</a>
</li>
<li class="file-stats">
<a href="#6d1fca171c6a03160a926c81f0da9d21b40ff046">
docs/users_guide/exts/types.rst
</a>
</li>
<li class="file-stats">
<a href="#b02c1c6109c60b8f685234b0dbaabf6c79fed2a2">
docs/users_guide/ghci.rst
</a>
</li>
<li class="file-stats">
<a href="#f3f4f8dc731afc0db48a11e3aabda27aaff46cda">
docs/users_guide/using-concurrent.rst
</a>
</li>
<li class="file-stats">
<a href="#e19c45aee6e0862e9904ef302afce9e2f3ae20c7">
hadrian/cfg/default.host.target.in
</a>
</li>
<li class="file-stats">
<a href="#6eadcb95c1586fce3d2b5686f585abf118ff0007">
hadrian/cfg/default.target.in
</a>
</li>
<li class="file-stats">
<a href="#2d11d70063aa1378e9323caad80c7d9116ef4520">
hadrian/src/Rules/Generate.hs
</a>
</li>
<li class="file-stats">
<a href="#3169bd84b322b6c4846a90cdab9859fa7ec5f3f4">
m4/fp_settings.m4
</a>
</li>
<li class="file-stats">
<a href="#01fadb9181d5b3b61364cb25b1b0b51590f726c3">
m4/ghc_toolchain.m4
</a>
</li>
<li class="file-stats">
<a href="#76feb14f1a8e44e90548ccec8156c5f186ce70d8">
m4/prep_target_file.m4
</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="#96b14d8a347641de46ae7635d1db43e9fc7cee04">
testsuite/driver/junit.py
</a>
</li>
<li class="file-stats">
<a href="#f227a38797c18ee429e783e5132ca39e5a4cc7e7">
testsuite/tests/count-deps/CountDepsAst.stdout
</a>
</li>
<li class="file-stats">
<a href="#2dcdf7aadcff5b41822596f22b49b2851374d0cd">
testsuite/tests/count-deps/CountDepsParser.stdout
</a>
</li>
<li class="file-stats">
<a href="#e51ccb8ba5af04b037289795bbf088fab373d31c">
testsuite/tests/driver/dynamicToo/dynamicToo001/Makefile
</a>
</li>
<li class="file-stats">
<a href="#a645785c1f0ab6f6bcd9659e03c93ddee11cb466">
<span class="new-file">
+
testsuite/tests/driver/dynamicToo/dynamicToo001/T25837.stdout
</span>
</a>
</li>
<li class="file-stats">
<a href="#611d9c2a8051459372715d2d2e83ae73afa0f779">
<span class="new-file">
+
testsuite/tests/driver/dynamicToo/dynamicToo001/T25837Module.hs
</span>
</a>
</li>
<li class="file-stats">
<a href="#449f4214fe3b821a41b7f26d1f8f015eba846dc6">
testsuite/tests/driver/dynamicToo/dynamicToo001/test.T
</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="#c667b660d548272e27f44bf34c9a844c019bd6f7">
testsuite/tests/ghc-api/exactprint/Test20239.stderr
</a>
</li>
<li class="file-stats">
<a href="#4caabe37afee285fec3f18b82331ba583cdb8460">
testsuite/tests/haddock/should_compile_flag_haddock/T24221.stderr
</a>
</li>
<li class="file-stats">
<a href="#e6a699bed61e0c8d8109f383d714115200dd37b4">
testsuite/tests/parser/should_compile/DumpParsedAst.stderr
</a>
</li>
<li class="file-stats">
<a href="#338eb1c1a80bcdbcecf4018a1808183f4305c65b">
testsuite/tests/parser/should_compile/DumpRenamedAst.stderr
</a>
</li>
<li class="file-stats">
<a href="#c7cbb518abd02952b7e40de417eb0ee3adf61a8c">
testsuite/tests/parser/should_compile/T14189.stderr
</a>
</li>
<li class="file-stats">
<a href="#7bf6b8534c3526853866ce7ffe6017cfe65b7bf8">
testsuite/tests/parser/should_compile/T20452.stderr
</a>
</li>
<li class="file-stats">
<a href="#8cb35be8f13ce47421a8f834d7262e0459fb7e5a">
testsuite/tests/printer/Test24533.stdout
</a>
</li>
<li class="file-stats">
<a href="#e2df39d81b450380a21f85a11d8553ca0aadc3ed">
testsuite/tests/rename/should_fail/T22478b.stderr
</a>
</li>
<li class="file-stats">
<a href="#34ec0e2feed75b3250a8bac12e8b4d878017cf72">
testsuite/tests/rename/should_fail/T22478e.stderr
</a>
</li>
<li class="file-stats">
<a href="#6421eead48ad9b780f446fece308f9084188a949">
testsuite/tests/rename/should_fail/T22478f.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="#6564e50d06ce55186b44003eb33c228330527b85">
<span class="new-file">
+
testsuite/tests/typecheck/should_fail/T25004.hs
</span>
</a>
</li>
<li class="file-stats">
<a href="#9122b870b3e577e74a31646a7958221778fbe078">
<span class="new-file">
+
testsuite/tests/typecheck/should_fail/T25004.stderr
</span>
</a>
</li>
<li class="file-stats">
<a href="#1fc2042c2492debe6a90ce957ec7ee22e9868879">
testsuite/tests/typecheck/should_fail/TyAppPat_MisplacedApplication.hs
</a>
</li>
<li class="file-stats">
<a href="#6da24144a737c05652b2132eb31661fd166e9b9c">
testsuite/tests/typecheck/should_fail/TyAppPat_MisplacedApplication.stderr
</a>
</li>
<li class="file-stats">
<a href="#b9e86d897a62509b0114d81d5e736630d6f68f43">
testsuite/tests/typecheck/should_fail/all.T
</a>
</li>
<li class="file-stats">
<a href="#c5662bedafa6a48ec7062b131d94b70f514207d9">
utils/check-exact/ExactPrint.hs
</a>
</li>
<li class="file-stats">
<a href="#230926dedc586b722dc319c82fe55389a37af077">
utils/ghc-toolchain/exe/Main.hs
</a>
</li>
<li class="file-stats">
<a href="#450a3f9630331f0f83778f0820eb754af7e37210">
utils/ghc-toolchain/src/GHC/Toolchain/Target.hs
</a>
</li>
<li class="file-stats">
<a href="#e034a4a4a1857305273379f05bf424df17c5638c">
utils/haddock/haddock-api/src/Haddock/Backends/Hoogle.hs
</a>
</li>
<li class="file-stats">
<a href="#8f82ba6dff88f9e7ad4870c8bdc938435fbc41ba">
utils/haddock/haddock-api/src/Haddock/Backends/LaTeX.hs
</a>
</li>
<li class="file-stats">
<a href="#0021f6c1d2d8be0699c998ebc0f356fdcb274b87">
utils/haddock/haddock-api/src/Haddock/Backends/Xhtml/Decl.hs
</a>
</li>
<li class="file-stats">
<a href="#cb92c0da89f4484c35cb51446517efc852c873f6">
utils/haddock/haddock-api/src/Haddock/Convert.hs
</a>
</li>
<li class="file-stats">
<a href="#47431656008a8a76a307d7241eb1e403599e0d87">
utils/haddock/haddock-api/src/Haddock/GhcUtils.hs
</a>
</li>
<li class="file-stats">
<a href="#dffd8f88371490d2739689b42e6243e5df222760">
utils/haddock/haddock-api/src/Haddock/Interface/Create.hs
</a>
</li>
<li class="file-stats">
<a href="#40c8e31ea57a3820afaa253b1bc8c6c268605ec6">
utils/haddock/haddock-api/src/Haddock/Interface/Rename.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/fc07b812e08289b52dd94d835a4a032364760dc8...6ec47e4146926e59ca8684ba1e912057bb3df9c7">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>