Ben Gamari pushed to branch wip/T26053 at Glasgow Haskell Compiler / GHC
Commits:
1228d3a4 by Ben Gamari at 2023-07-06T20:16:06-04:00
Bump deepseq bound to allow 1.5
- - - - -
d3ffdaf9 by Ben Gamari at 2023-07-06T20:21:22-04:00
configure: Bump minimal boot GHC version to 9.4
- - - - -
bf57fc9a by Ben Gamari at 2023-07-06T21:50:24-04:00
template-haskell: Bump version to 2.21.0.0
- - - - -
433d99a3 by Ben Gamari at 2023-07-12T09:42:25-04:00
base: Bump version to 4.19
Updates all boot library submodules.
- - - - -
89cb22c2 by Matthew Pickering at 2023-07-12T09:42:25-04:00
ghcup-metadata: Use dynamically linked alpine bindists
In theory these will work much better on alpine to allow people to build
statically linked applications there. We don't need to distribute a
statically linked application ourselves in order to allow that.
Fixes #23602
(cherry picked from commit 6295416ba0bc3e729b1f3dea56ef5d722f98ee9d)
- - - - -
44b3c6d4 by Matthew Pickering at 2023-07-12T09:42:25-04:00
ghcup-metadata: Also updates ghcup-nightlies-0.0.7.yaml file
Fixes #23600
(cherry picked from commit 75b8b39a860a643b78405787bac582ba7cc3cb21)
- - - - -
b934a05f by Ben Gamari at 2023-07-12T09:42:25-04:00
rts: Don't rely on initializers for sigaction_t
As noted in #23577, CentOS's ancient toolchain throws spurious
missing-field-initializer warnings.
(cherry picked from commit 46c9bcd6a47bdaa70869ed64da315315974b8b1d)
- - - - -
8a6eb56a by Ben Gamari at 2023-07-12T09:42:25-04:00
hadrian: Don't treat -Winline warnings as fatal
Such warnings are highly dependent upon the toolchain, platform, and
build configuration. It's simply too fragile to rely on these.
(cherry picked from commit ec55035f8fe901b5d369221975fb1a741c677acb)
- - - - -
7a5a1163 by Ben Gamari at 2023-07-12T09:42:25-04:00
hadrian: Only pass -Wno-nonportable-include-path on Darwin
This flag, which was introduced due to #17798, is only understood by
Clang and consequently throws warnings on platforms using gcc. Sadly,
there is no good way to treat such warnings as non-fatal with `-Werror`
so for now we simply make this flag specific to platforms known to use
Clang and case-insensitive filesystems (Darwin and Windows).
See #23577.
(cherry picked from commit 3a09b789102dc0ea20a9af0912bc817ac5cb8c59)
- - - - -
ea1fb768 by Bryan Richter at 2023-07-12T09:42:25-04:00
Add missing void prototypes to rts functions
See #23561.
(cherry picked from commit 82ac6bf113526f61913943b911089534705984fb)
- - - - -
a474caef by Ben Gamari at 2023-07-12T09:42:25-04:00
gitlab-ci: Bump DOCKER_REV
Ensuring that we bootstrap with GHC 9.4 universally.
- - - - -
024861af by Ben Gamari at 2023-07-12T09:42:26-04:00
testsuite: Normalise versions more aggressively
In backpack hashes can contain `+` characters.
- - - - -
3b12e852 by Ben Gamari at 2023-07-12T09:42:26-04:00
rts: Work around missing prototypes errors
Darwin's toolchain inexpliciably claims that `write_barrier` and friends
have declarations without prototypes, despite the fact that (a) they are
definitions, and (b) the prototypes appear only a few lines above. Work
around this by making the definitions proper prototypes.
(cherry picked from commit 5b6612bc4f6b0a7ecc9868750bee1c359ffca871)
- - - - -
d72181cd by Ben Gamari at 2023-07-12T09:42:26-04:00
Define FFI_GO_CLOSURES
The libffi shipped with Apple's XCode toolchain does not contain a
definition of the FFI_GO_CLOSURES macro, despite containing references
to said macro. Work around this by defining the macro, following the
model of a similar workaround in OpenJDK [1].
[1] https://github.com/openjdk/jdk17u-dev/pull/741/files
(cherry picked from commit 8b35e8caafeeccbf06b7faa70e807028a3f0ff43)
- - - - -
594525fa by Ben Gamari at 2023-07-12T09:42:26-04:00
base: Fix incorrect CPP guard
This was guarded on `darwin_HOST_OS` instead of `defined(darwin_HOST_OS)`.
(cherry picked from commit d7ef1704aeba451bd3e0efbdaaab2638ee1f0bc8)
- - - - -
555ad690 by Ben Gamari at 2023-07-12T09:42:26-04:00
rts/Trace: Ensure that debugTrace arguments are used
As debugTrace is a macro we must take care to ensure that
the fact is clear to the compiler lest we see warnings.
(cherry picked from commit 7c7d1f66d35f73a2faa898a33aa80cd276159dc2)
- - - - -
c4bb9e3e by Ben Gamari at 2023-07-12T09:42:26-04:00
rts: Various warnings fixes
(cherry picked from commit cb92051e3d85575ff6abd753c9b135930cc50cf8)
- - - - -
f484169c by Ben Gamari at 2023-07-12T09:42:26-04:00
hadrian: Ignore warnings in unix and semaphore-compat
(cherry picked from commit dec81dd1fd0475dde4929baae625d155387300bb)
- - - - -
9922b77c by Matthew Pickering at 2023-07-12T09:42:26-04:00
hadrian: Fix dependencies of docs:* rule
For the docs:* rule we need to actually build the package rather than
just the haddocks for the dependent packages. Therefore we depend on the
.conf files of the packages we are trying to build documentation for as
well as the .haddock files.
Fixes #23472
(cherry picked from commit d7f6448aa06bbf26173a06ee5c624f5b734786c5)
- - - - -
ab74326f by Ben Gamari at 2023-07-12T09:42:26-04:00
rts: Ensure that pinned allocations respect block size
Previously, it was possible for pinned, aligned allocation requests to
allocate beyond the end of the pinned accumulator block. Specifically,
we failed to account for the padding needed to achieve the requested
alignment in the "large object" check. With large alignment requests,
this can result in the allocator using the capability's pinned object
accumulator block to service a request which is larger than
`PINNED_EMPTY_SIZE`.
To fix this we reorganize `allocatePinned` to consistently account for
the alignment padding in all large object checks. This is a bit subtle
as we must handle the case of a small allocation request filling the
accumulator block, as well as large requests.
Fixes #23400.
(cherry picked from commit fd8c57694a00f6359bd66365f1284388c869ac60)
- - - - -
9d9d9bc5 by Luite Stegeman at 2023-07-12T09:42:26-04:00
Support large stack frames/offsets in GHCi bytecode interpreter
Bytecode instructions like PUSH_L (push a local variable) contain
an operand that refers to the stack slot. Before this patch, the
operand type was SmallOp (Word16), limiting the maximum stack
offset to 65535 words. This could cause compiler panics in some
cases (See #22888).
This patch changes the operand type for stack offsets from
SmallOp to Op, removing the stack offset limit.
Fixes #22888
(cherry picked from commit 564164ef323a9f2cdeb8c69dcb2cf6df6382de4e)
- - - - -
a6ebaa83 by Torsten Schmits at 2023-07-12T09:42:26-04:00
Substitute free variables captured by breakpoints in SpecConstr
Fixes #23267
(cherry picked from commit 40f4ef7c40e747dfea491d297475458d2ccaf860)
- - - - -
3d6bd455 by Torsten Schmits at 2023-07-12T09:42:26-04:00
Filter out nontrivial substituted expressions in substTickish
Fixes #23272
(cherry picked from commit 6fdcf969db85f3fe64123ba150e9226a0d2995cd)
- - - - -
a814fb6d by Ben Bellick at 2023-07-12T09:42:26-04:00
Add some structured diagnostics in Tc/Validity.hs
This addresses the work of ticket #20118
Created the following constructors for TcRnMessage
- TcRnInaccessibleCoAxBranch
- TcRnPatersonCondFailure
(cherry picked from commit 03f941f45607a5ee52ca53a358333bbb41ddb1bc)
- - - - -
cee76805 by aadaa_fgtaa at 2023-07-12T09:42:26-04:00
Optimise ELF linker (#23464)
- cache last elements of `relTable`, `relaTable` and `symbolTables` in `ocInit_ELF`
- cache shndx table in ObjectCode
- run `checkProddableBlock` only with debug rts
(cherry picked from commit b3e1436f968c0c36a27ea0339ee2554970b329fe)
- - - - -
445dc082 by Moisés Ackerman at 2023-07-12T09:42:26-04:00
Add failing test case for #23492
(cherry picked from commit 6074cc3cda9b9836c784942a1aa7f766fb142787)
- - - - -
c505474d by Moisés Ackerman at 2023-07-12T09:42:26-04:00
Use generated src span for catch-all case of record selector functions
This fixes #23492. The problem was that we used the real source span
of the field declaration for the generated catch-all case in the
selector function, in particular in the generated call to
`recSelError`, which meant it was included in the HIE output. Using
`generatedSrcSpan` instead means that it is not included.
(cherry picked from commit 356a269258a50bf67811fe0edb193fc9f82dfad1)
- - - - -
765c1de8 by Moisés Ackerman at 2023-07-12T09:42:26-04:00
Introduce genLHsApp and genLHsLit helpers in GHC.Rename.Utils
(cherry picked from commit 3efe7f399a53ec7930c8a333ad2c114d956f0c2a)
- - - - -
809f9b81 by Moisés Ackerman at 2023-07-12T09:42:26-04:00
Construct catch-all default case using helpers
GHC.Rename.Utils concrete helpers instead of wrapGenSpan + HS AST constructors
(cherry picked from commit dd782343f131cfd983a7fb2431d9d4a9ae497551)
- - - - -
76668b6e by Ben Gamari at 2023-07-12T09:42:26-04:00
Fix breakpoint
- - - - -
2b3da4c4 by Ben Gamari at 2023-07-12T09:42:26-04:00
rts: Make collectFreshWeakPtrs definition a prototype
x86-64/Darwin's toolchain inexplicably warns that collectFreshWeakPtrs
needs to be a prototype.
(cherry picked from commit bb0ed354b9b05c0774c1e9379823bceb785987ce)
- - - - -
62bfea7a by Ben Gamari at 2023-07-13T08:10:26-04:00
gitlab-ci: Bump ci-images
To freeze emsdk, avoiding #23641.
- - - - -
a01879a7 by Ben Gamari at 2023-07-13T08:10:26-04:00
testsuite: Accept metric changes
Metric Increase:
T6048
- - - - -
c046a238 by Ben Gamari at 2023-07-13T08:10:26-04:00
testsuite: Declare bkpcabal08 as fragile
Due to spurious output changes described in #23648.
- - - - -
f356a7e8 by Ben Gamari at 2023-07-13T08:10:26-04:00
gitlab-ci: Only mark linker_unload_native as broken in static jobs
This test passes on dynamically-linked Alpine.
- - - - -
c86a4055 by Ben Gamari at 2023-07-13T16:19:02-04:00
Update generate_bootstrap_plans
- - - - -
d58049ef by Ben Gamari at 2023-07-13T16:28:54-04:00
hadrian/bootstrap: Drop GHC 9.2 plans
- - - - -
a79d1806 by Ben Gamari at 2023-07-13T16:29:39-04:00
hadrian/bootstrap: Add 9.6.2 plans
- - - - -
4f142ee9 by Ben Gamari at 2023-07-13T16:34:08-04:00
hadrian/bootstrap: Regenerate existing plans
- - - - -
031d7f7c by Ben Gamari at 2023-07-13T17:27:30-04:00
gitlab-ci: Drop test-bootstrap:9.2 jobs
- - - - -
0d7a34c1 by Ben Gamari at 2023-07-18T20:36:07-04:00
configure: Bump minimal boot GHC version to 9.4
- - - - -
ed28b0f2 by Ben Gamari at 2023-07-18T20:36:07-04:00
rts/win32: Ensure reliability of IO manager shutdown
When the Win32 threaded IO manager shuts down, `ioManagerDie` sends an
`IO_MANAGER_DIE` event to the IO manager thread using the
`io_manager_event` event object. Finally, it will closes the event object,
and invalidate `io_manager_event`.
Previously, `readIOManagerEvent` would see that `io_manager_event` is
invalid and return `0`, suggesting that everything is right with the
world. This meant that if `ioManagerDie` invalidated the handle before
the event manager was blocked on the event we would end up in a
situation where the event manager would never realize it was asked to
shut down.
Fix this by ensuring that `readIOManagerEvent` instead returns
`IO_MANAGER_DIE` when we detect that the event object has been
invalidated by `ioManagerDie`.
Fixes #23691.
- - - - -
68cc675d by Ben Gamari at 2023-07-19T13:54:38-04:00
Bump array submodule to v0.5.6.0
- - - - -
6200e8fa by Ben Gamari at 2023-07-19T21:06:46-04:00
Bump containers submodule
- - - - -
8b95c0e8 by Ben Gamari at 2023-07-19T21:06:46-04:00
users guide: Fix release notes and other documentation issues
- - - - -
fb4ecd83 by Sylvain Henry at 2023-07-20T14:33:08-04:00
JS: fix JS stack printing (#23565)
(cherry picked from commit 78b2f3ccb1d7603e11b3f364646240e361512cbc)
- - - - -
77117e5f by Dave Barton at 2023-07-20T14:33:15-04:00
Fix some broken links and typos
(cherry picked from commit 4457da2a7dba97ab2cd2f64bb338c904bb614244)
- - - - -
7cec29d8 by Matthew Pickering at 2023-07-20T14:34:13-04:00
Add -fpolymorphic-specialisation flag (off by default at all optimisation levels)
Polymorphic specialisation has led to a number of hard to diagnose
incorrect runtime result bugs (see #23469, #23109, #21229, #23445) so
this commit introduces a flag `-fpolymorhphic-specialisation` which
allows users to turn on this experimental optimisation if they are
willing to buy into things going very wrong.
Ticket #23469
(cherry picked from commit 9f01d14b5bc1c73828b2b061206c45b84353620e)
- - - - -
e5215256 by Mario Blažević at 2023-07-20T14:34:45-04:00
Fixed ticket #23571, TH.Ppr.pprLit hanging on large numeric literals
(cherry picked from commit 4af7eac2a00e86c29509c119aacc7511a9c7747d)
- - - - -
d33581c5 by sheaf at 2023-07-20T14:34:56-04:00
Reinstate untouchable variable error messages
This extra bit of information was accidentally being discarded after
a refactoring of the way we reported problems when unifying a type
variable with another type. This patch rectifies that.
(cherry picked from commit 2b55cb5f33666a71eaac7968c59e483860112e5c)
- - - - -
0c877166 by Matthew Pickering at 2023-07-20T14:35:33-04:00
driver: Fix -S with .cmm files
There was an oversight in the driver which assumed that you would always
produce a `.o` file when compiling a .cmm file.
Fixes #23610
(cherry picked from commit 76983a0dca64dfb7e94aea0c4f494921f8513b41)
- - - - -
30830523 by Andrew Lelechenko at 2023-07-20T14:35:40-04:00
Add since annotations for Data.Foldable1
(cherry picked from commit 054261dd319b505392458da7745e768847015887)
- - - - -
fd3fcfe5 by sheaf at 2023-07-20T14:35:50-04:00
tyThingLocalGREs: include all DataCons for RecFlds
The GREInfo for a record field should include the collection of all
the data constructors of the parent TyCon that have this record field.
This information was being incorrectly computed in the tyThingLocalGREs
function for a DataCon, as we were not taking into account other
DataCons with the same parent TyCon.
Fixes #23546
(cherry picked from commit 61b1932eb7d529263330dcab404909997610dd43)
- - - - -
90846d43 by Sylvain Henry at 2023-07-20T14:35:56-04:00
JS: support -this-unit-id for programs in the linker (#23613)
(cherry picked from commit 550af50559931b7681fe24fddafd6e3467de077c)
- - - - -
b9c2aa3f by sheaf at 2023-07-20T14:36:44-04:00
Valid hole fits: don't panic on a Given
The function GHC.Tc.Errors.validHoleFits would end up panicking when
encountering a Given constraint. To fix this, it suffices to filter out
the Givens before continuing.
Fixes #22684
(cherry picked from commit 630e302617a4a3e00d86d0650cb86fa9e6913e44)
- - - - -
e5ed9c58 by Matthew Pickering at 2023-07-20T14:54:03-04:00
Use deb10 for i386 bindists
deb9 is now EOL so it's time to upgrade the i386 bindist to use deb10
Fixes #23585
(cherry picked from commit c39f279b7a23e7c3259dff9ad660b7f417d4fdcd)
- - - - -
ba2f9f34 by Krzysztof Gogolewski at 2023-07-20T14:54:23-04:00
Fix #23567, a specializer bug
Found by Simon in https://gitlab.haskell.org/ghc/ghc/-/issues/23567#note_507834
The testcase isn't ideal because it doesn't detect the bug in master,
unless doNotUnbox is removed as in
https://gitlab.haskell.org/ghc/ghc/-/issues/23567#note_507692.
But I have confirmed that with that modification, it fails before
and passes afterwards.
(cherry picked from commit bf9b9de0685e23c191722dfdb78d28b44f1cba05)
- - - - -
e0fbb1d4 by Vladislav Zavialov at 2023-07-20T14:54:29-04:00
List and Tuple<n>: update documentation
Add the missing changelog.md entries and @since-annotations.
(cherry picked from commit 7f13acbf187d7a0810f42705b95d593b1e2e5611)
- - - - -
27df38c2 by Sylvain Henry at 2023-07-20T15:04:52-04:00
JS: better implementation for plusWord64 (#23597)
(cherry picked from commit b55a8ea70424032c19ef85ef95c5eee8b50d55c3)
- - - - -
8f77107f by Krzysztof Gogolewski at 2023-07-20T15:06:18-04:00
Use extended literals when deriving Show
This implements GHC proposal
https://github.com/ghc-proposals/ghc-proposals/pull/596
Also add support for Int64# and Word64#; see testcase ShowPrim.
(cherry picked from commit 787bae96f77562e603b6e9ebb86139cc5d120b8d)
- - - - -
6e044db1 by Ryan Scott at 2023-07-20T15:24:43-04:00
Fix typechecking of promoted empty lists
The `'[]` case in `tc_infer_hs_type` is smart enough to handle arity-0 uses of
`'[]` (see the newly added `T23543` test case for an example), but the `'[]`
case in `tc_hs_type` was not. We fix this by changing the `tc_hs_type` case to
invoke `tc_infer_hs_type`, as prescribed in `Note [Future-proofing the type
checker]`.
There are some benign changes to test cases' expected output due to the new
code path using `forall a. [a]` as the kind of `'[]` rather than `[k]`.
Fixes #23543.
(cherry picked from commit c335fb7c44a8447b3e73e7f18d9d0dcb18cea8dd)
- - - - -
3d913cbe by sheaf at 2023-07-20T15:29:21-04:00
Fix deprecation of record fields
Commit 3f374399 inadvertently broke the deprecation/warning mechanism
for record fields due to its introduction of record field namespaces.
This patch ensures that, when a top-level deprecation is applied to
an identifier, it applies to all the record fields as well.
This is achieved by refactoring GHC.Rename.Env.lookupLocalTcNames, and
GHC.Rename.Env.lookupBindGroupOcc, to not look up a fixed number of
NameSpaces but to look up all NameSpaces and filter out the irrelevant
ones.
(cherry picked from commit 6143838a5985ee3af1e8c2af4166d35bb4de12d8)
- - - - -
45ab7560 by sheaf at 2023-07-20T15:29:24-04:00
Introduce greInfo, greParent
These are simple helper functions that wrap the internal
field names gre_info, gre_par.
(cherry picked from commit 6fd8f566c691b936b0b65e21700b224312611f4d)
- - - - -
c5533204 by sheaf at 2023-07-20T15:29:25-04:00
Refactor lookupGRE_... functions
This commit consolidates all the logic for looking up something in
the Global Reader Environment into the single function lookupGRE.
This allows us to declaratively specify all the different modes of
looking up in the GlobalRdrEnv, and avoids manually passing around
filtering functions as was the case in e.g. the function
GHC.Rename.Env.lookupSubBndrOcc_helper.
-------------------------
Metric Decrease:
T8095
-------------------------
-------------------------
Metric Increase:
T8095
-------------------------
(cherry picked from commit 7f0a86edeeda674f27c80e81be592d325447a897)
- - - - -
ff06b820 by sheaf at 2023-07-20T15:30:07-04:00
rnImports: var shouldn't import NoFldSelectors
In an import declaration such as
import M ( var )
the import of the variable "var" should **not** bring into scope record
fields named "var" which are defined with NoFieldSelectors.
Doing so can cause spurious "unused import" warnings, as reported in
ticket #23557.
Fixes #23557
(cherry picked from commit c7bbad9a0aab2d7b4336ae411e13d9450d8483a7)
- - - - -
2734d370 by sheaf at 2023-07-20T15:34:20-04:00
Suggest similar names in imports
This commit adds similar name suggestions when importing. For example
module A where { spelling = 'o' }
module B where { import B ( speling ) }
will give rise to the error message:
Module ‘A’ does not export ‘speling’.
Suggested fix: Perhaps use ‘spelling’
This also provides hints when users try to import record fields defined
with NoFieldSelectors.
(cherry picked from commit 1af2e7735283251c686bdb1154afab6df5e45053)
- - - - -
84e6df59 by sheaf at 2023-07-20T15:34:20-04:00
Prioritise Parent when looking up class sub-binder
When we look up children GlobalRdrElts of a given Parent, we sometimes
would rather prioritise those GlobalRdrElts which have the right Parent,
and sometimes prioritise those that have the right NameSpace:
- in export lists, we should prioritise NameSpace
- for class/instance binders, we should prioritise Parent
See Note [childGREPriority] in GHC.Types.Name.Reader.
fixes #23664
(cherry picked from commit 3bd4d5b5482fd44914f22492877b3f3ca27299e0)
- - - - -
fa084def by sheaf at 2023-07-20T15:34:33-04:00
base: add COMPLETE pragma to BufferCodec PatSyn
This implements CLC proposal #178, rectifying an oversight in the
implementation of CLC proposal #134 which could lead to spurious
pattern match warnings.
https://github.com/haskell/core-libraries-committee/issues/178
https://github.com/haskell/core-libraries-committee/issues/134
(cherry picked from commit 22565506515313c928d13a43b2946e0106110353)
- - - - -
f9f4714e by sheaf at 2023-07-20T15:34:34-04:00
exactprint: silence incomplete record update warnings
(cherry picked from commit 860f6269bc016e11400b7e3176a5ea6dfe291a46)
- - - - -
071dd8ca by sheaf at 2023-07-20T15:35:45-04:00
Re-instate -Wincomplete-record-updates
Commit e74fc066 refactored the handling of record updates to use
the HsExpanded mechanism. This meant that the pattern matching inherent
to a record update was considered to be "generated code", and thus we
stopped emitting "incomplete record update" warnings entirely.
This commit changes the "data Origin = Source | Generated" datatype,
adding a field to the Generated constructor to indicate whether we
still want to perform pattern-match checking. We also have to do a bit
of plumbing with HsCase, to record that the HsCase arose from an
HsExpansion of a RecUpd, so that the error message continues to mention
record updates as opposed to a generic "incomplete pattern matches in case"
error.
Finally, this patch also changes the way we handle inaccessible code
warnings. Commit e74fc066 was also a regression in this regard, as we
were emitting "inaccessible code" warnings for case statements spuriously
generated when desugaring a record update (remember: the desugaring mechanism
happens before typechecking; it thus can't take into account e.g. GADT information
in order to decide which constructors to include in the RHS of the desugaring
of the record update).
We fix this by changing the mechanism through which we disable inaccessible
code warnings: we now check whether we are in generated code in
GHC.Tc.Utils.TcMType.newImplication in order to determine whether to
emit inaccessible code warnings.
Fixes #23520
Updates haddock submodule, to avoid incomplete record update warnings
(cherry picked from commit df706de378e3415a3972ddd14863f54fc7162dc7)
- - - - -
c7688443 by sheaf at 2023-07-20T15:35:55-04:00
Propagate long-distance information in do-notation
The preceding commit re-enabled pattern-match checking inside record
updates. This revealed that #21360 was in fact NOT fixed by e74fc066.
This commit makes sure we correctly propagate long-distance information
in do blocks, e.g. in
```haskell
data T = A { fld :: Int } | B
f :: T -> Maybe T
f r = do
a@A{} <- Just r
Just $ case a of { A _ -> A 9 }
```
we need to propagate the fact that "a" is headed by the constructor "A"
to see that the case expression "case a of { A _ -> A 9 }" cannot fail.
Fixes #21360
(cherry picked from commit 1d05971e24f6cb1120789d1e1ab4f086eebd504a)
- - - - -
ae88ed9a by sheaf at 2023-07-20T15:35:56-04:00
Skip PMC for boring patterns
Some patterns introduce no new information to the pattern-match
checker (such as plain variable or wildcard patterns). We can thus
skip doing any pattern-match checking on them when the sole purpose
for doing so was introducing new long-distance information.
See Note [Boring patterns] in GHC.Hs.Pat.
Doing this avoids regressing in performance now that we do additional
pattern-match checking inside do notation.
(cherry picked from commit bea0e323c09e9e4b841a37aacd6b67e87a85e7cb)
- - - - -
1f3d83b5 by Ben Gamari at 2023-07-21T13:00:51-04:00
gitlab-ci: Don't run nonmoving bootstrap release job
This was only intended for validation.
- - - - -
df2e5c24 by Ben Gamari at 2023-07-21T13:00:54-04:00
fetch-gitlab: Update job mapping
- - - - -
25179c81 by Ben Gamari at 2023-07-21T13:00:54-04:00
nofib: Bump submodule
- - - - -
e5615af4 by Ben Gamari at 2023-07-21T13:00:54-04:00
configure: Add trailing zero to version number
- - - - -
b0b88c24 by Sylvain Henry at 2023-07-21T13:09:52-04:00
JS: support levity-polymorphic datatypes (#22360,#22291)
- thread knowledge about levity into PrimRep instead of panicking
- JS: remove assumption that unlifted heap objects are rts objects (TVar#, etc.)
Doing this also fixes #22291 (test added).
There is a small performance hit (~1% more allocations).
Metric Increase:
T18698a
T18698b
(cherry picked from commit 8d6574bc68cbbcabbf7c0e5700571c4746127fb8)
- - - - -
e39e8fae by Arnaud Spiwack at 2023-07-21T13:10:17-04:00
Revert "Avoid desugaring non-recursive lets into recursive lets"
This (temporary) reverts commit 3e80c2b40213bebe302b1bd239af48b33f1b30ef.
Fixes #23550
(cherry picked from commit 522bd584f71ddeda21efdf0917606ce3d81ec6cc)
- - - - -
f0b9bfa1 by Torsten Schmits at 2023-07-21T13:10:24-04:00
Relax defaulting of RuntimeRep/Levity when printing
Fixes #16468
MR: !10702
Only default RuntimeRep to LiftedRep when variables are bound by the toplevel forall
(cherry picked from commit 459dee1b671958bcd5857a676afaf92f944a0af4)
- - - - -
3cac14d2 by Ben Gamari at 2023-07-21T13:11:43-04:00
nativeGen: Explicitly set flags of text sections on Windows
The binutils documentation (for COFF) claims,
If no flags are specified, the default flags depend upon the section
name. If the section name is not recognized, the default will be for the
section to be loaded and writable.
We previously assumed that this would do the right thing for split
sections (e.g. a section named `.text$foo` would be correctly inferred
to be a text section). However, we have observed that this is not the
case (at least under the clang toolchain used on Windows): when
split-sections is enabled, text sections are treated by the assembler as
data (matching the "default" behavior specified by the documentation).
Avoid this by setting section flags explicitly. This should fix split
sections on Windows.
Fixes #22834.
(cherry picked from commit 3ece9856d157c85511d59f9f862ab351bbd9b38b)
- - - - -
f9ef5a44 by Ben Gamari at 2023-07-21T13:11:47-04:00
nativeGen: Set explicit section types on all platforms
(cherry picked from commit db7f7240b53c01447e44d2790ee37eacaabfbcf3)
- - - - -
a3756043 by Ben Gamari at 2023-07-24T11:37:25-04:00
gitlab-ci: Mark linker_unload_native as broken on Alpine
Due to lack of dlinfo() support, which is necessary for sound unloading
support.
- - - - -
877ec97b by Ben Gamari at 2023-07-25T12:57:55-04:00
linker/PEi386: Don't sign-extend symbol section number
Previously we incorrectly interpreted PE section numbers as signed
values. However, this isn't the case; rather, it's an unsigned 16-bit number
with a few special bit-patterns (0xffff and 0xfffe). This resulted in #22941
as the linker would conclude that the sections were invalid.
Fixing this required quite a bit of refactoring.
Closes #22941.
- - - - -
62cb821e by Ben Gamari at 2023-07-27T13:43:13-04:00
ghc-prim: Bump version to 0.11
- - - - -
58bb39c7 by Matthew Pickering at 2023-08-03T15:11:04-04:00
Fix deprecation warning when deprecated identifier is from another module
A stray 'Just' was being printed in the deprecation message.
Fixes #23573
(cherry picked from commit 2be99b7e81e2ae5ef81fef21b0a55cfe77f917a3)
- - - - -
d8294be5 by Andrew Lelechenko at 2023-08-08T09:24:25-04:00
Bump filepath submodule to 1.4.100.4
Resolves #23741
Metric Decrease:
MultiComponentModules
MultiComponentModulesRecomp
MultiLayerModules
MultiLayerModulesRecomp
T10421
T12234
T12425
T13035
T13701
T13719
T16875
T18304
T18698a
T18698b
T21839c
T9198
TcPlugin_RewritePerf
hard_hole_fits
Metric decrease on Windows can be probably attributed to https://github.com/haskell/filepath/pull/183
(cherry picked from commit e9a0fa3f6db3ce995c6d0d30798cee78cbd7e90d)
- - - - -
db6f4809 by sheaf at 2023-08-08T09:27:14-04:00
RTS: declare setKeepCAFs symbol
Commit 08ba8720 failed to declare the dependency of keepCAFsForGHCi on
the symbol setKeepCAFs in the RTS, which led to undefined symbol errors
on Windows, as exhibited by the testcase frontend001.
Thanks to Moritz Angermann and Ryan Scott for the diagnosis and fix.
Fixes #22961
(cherry picked from commit 42b05e9b5e68e9e0f5c92ef0699fd4c1addc10f7)
- - - - -
1f64892e by sheaf at 2023-08-08T09:27:15-04:00
Mark plugins-external as broken on Windows
This test is broken on Windows, so we explicitly mark it as such now
that we stop skipping plugin tests on Windows.
(cherry picked from commit a72015d651a0d4386270e1983f32ed15ae854654)
- - - - -
08d3eeb9 by sheaf at 2023-08-08T09:27:16-04:00
Stop marking plugin tests as fragile on Windows
Now that b2bb3e62 has landed we are in a better situation with
regards to plugins on Windows, allowing us to unmark many plugin tests
as fragile.
Fixes #16405
(cherry picked from commit cb9c93d7b8db816ed4271b3703b863c1cfbbcc45)
- - - - -
9ea90926 by Andreas Klebinger at 2023-08-08T09:27:23-04:00
Arm: Fix lack of zero-extension for 8/16 bit add/sub with immediate.
For 32/64bit we can avoid explicit extension/zeroing as the instructions
set the full width of the registers.
When doing 16/8bit computation we have to put a bit more work in so we
can't use the fast path.
Fixes #23749 for 9.4.
(cherry picked from commit 0bb44f695bd008f03644e3d306566c50c5bd528c)
- - - - -
14ed9727 by Luite Stegeman at 2023-08-08T11:22:56-04:00
JS: Improve compatibility with recent emsdk
The JavaScript code in libraries/base/jsbits/base.js had some
hardcoded offsets for fields in structs, because we expected
the layout of the data structures to remain unchanged. Emsdk
3.1.42 changed the layout of the stat struct, breaking this
assumption, and causing code in .hsc files accessing the
stat struct to fail.
This patch improves compatibility with recent emsdk by
removing the assumption that data layouts stay unchanged:
1. offsets of fields in structs used by JavaScript code are
now computed by the configure script, so both the .js and
.hsc files will automatically use the new layout if anything
changes.
2. the distrib/configure script checks that the emsdk version
on a user's system is the same version that a bindist was
booted with, to avoid data layout inconsistencies
See #23641
(cherry picked from commit aa07402e9ba5a302ada9b3cecebf7fdc00aa31dd)
- - - - -
2c66f7b0 by Aaron Allen at 2023-08-08T11:22:56-04:00
[#23663] Show Flag Suggestions in GHCi
Makes suggestions when using `:set` in GHCi with a misspelled flag. This
mirrors how invalid flags are handled when passed to GHC directly. Logic
for producing flag suggestions was moved to GHC.Driver.Sesssion so it
can be shared.
resolves #23663
(cherry picked from commit a1899d8f446db6b8c59576b8e3ef1910823592b1)
- - - - -
4c9999d5 by Sven Tennie at 2023-08-08T12:57:33-04:00
Add test for %mulmayoflo primop
The test expects a perfect implementation with no false positives.
(cherry picked from commit a36f9dc94823c75fb789710bc67b92e87a630440)
- - - - -
8ee88300 by Sven Tennie at 2023-08-08T12:58:43-04:00
x86 Codegen: Implement MO_S_MulMayOflo for W16
- - - - -
a212b3d4 by Sven Tennie at 2023-08-08T12:58:43-04:00
x86 CodeGen: MO_S_MulMayOflo better error message for rep > W64
It's useful to see which value made the pattern match fail. (If it ever
occurs.)
- - - - -
a289717e by Sven Tennie at 2023-08-08T12:58:43-04:00
x86 CodeGen: Implement MO_S_MulMayOflo for W8
This case wasn't handled before. But, the test-primops test suite showed
that it actually might appear.
- - - - -
3b6303cf by Ben Gamari at 2023-08-08T12:58:47-04:00
testsuite: Mark MulMayOflo_full as broken rather than skipping
To ensure that we don't accidentally fix it.
See #23742.
(cherry picked from commit fd7ce39c70f8922e26b8be8a5fc4d6797987f66f)
- - - - -
5c8dec81 by Ben Gamari at 2023-08-08T12:58:47-04:00
nativeGen/AArch64: Fix sign extension in MulMayOflo
Previously the 32-bit implementations of MulMayOflo would use the
a non-sensical sign-extension mode. Rewrite these to reflect what gcc 11
produces. Also similarly rework the 16- and 8-bit cases.
This now passes the MulMayOflo tests in ghc/test-primops> in all four
widths, including the precision tests.
Fixes #23721.
(cherry picked from commit 824092f28f52d32b6ea3cd26e1e576524ee24969)
- - - - -
59e2c969 by sheaf at 2023-08-08T12:58:47-04:00
Update inert_solved_dicts for ImplicitParams
When adding an implicit parameter dictionary to the inert set, we must
make sure that it replaces any previous implicit parameter dictionaries
that overlap, in order to get the appropriate shadowing behaviour, as in
let ?x = 1 in let ?x = 2 in ?x
We were already doing this for inert_cans, but we weren't doing the same
thing for inert_solved_dicts, which lead to the bug reported in #23761.
The fix is thus to make sure that, when handling an implicit parameter
dictionary in updInertDicts, we update **both** inert_cans and
inert_solved_dicts to ensure a new implicit parameter dictionary
correctly shadows old ones.
Fixes #23761
(cherry picked from commit 41bf2c09f17aa00bf4dd13332c6d07adf21af4f8)
- - - - -
1d2f96e6 by Jan Hrček at 2023-08-08T12:58:47-04:00
Fix haddock markup in code example for coerce
(cherry picked from commit 1b15dbc4e6ee5af87cc8b36c9a50287ae5d16b03)
- - - - -
bdf2adf7 by Sylvain Henry at 2023-08-08T12:58:47-04:00
JS: implement getMonotonicTime (fix #23687)
(cherry picked from commit 33598ecb624867dce36a71b265c054b689ed9701)
- - - - -
60f54b39 by Matthew Pickering at 2023-08-08T12:58:47-04:00
Fix pretty printing of WARNING pragmas
There is still something quite unsavoury going on with WARNING pragma
printing because the printing relies on the fact that for decl
deprecations the SourceText of WarningTxt is empty. However, I let that
lion sleep and just fixed things directly.
Fixes #23465
(cherry picked from commit 822ef66b54bd48df7c01fcafb99b7694952cae28)
- - - - -
347ae2d6 by Matthew Craven at 2023-08-08T12:58:47-04:00
Kill off gen_bytearray_addr_access_ops.py
The relevant primop descriptions are now
generated directly by genprimopcode.
This makes progress toward fixing #23490, but it is not
a complete fix since there is more than one way in which
cabal-reinstall (hadrian/build build-cabal) is broken.
(cherry picked from commit 32cae784b7bfcb6562a9ad041e7608dbcf0f5d72)
- - - - -
e050d1f4 by Jens Petersen at 2023-08-08T12:58:47-04:00
user_guide/flags.py: python-3.12 no longer includes distutils
packaging.version seems able to handle this fine
(cherry picked from commit 026991d7fcf9e3ce013081ab6d1e3d2200b694bb)
- - - - -
240b1a75 by Matthew Pickering at 2023-08-08T12:58:47-04:00
simplifier: Correct InScopeSet in rule matching
The in-scope set passedto the `exprIsLambda_maybe` call lacked all the
in-scope binders. @simonpj suggests this fix where we augment the
in-scope set with the free variables of expression which fixes this
failure mode in quite a direct way.
Fixes #23630
(cherry picked from commit 4f5538a8e2a8b9bc490bcd098fa38f6f7e9f4d73)
- - - - -
5f60f945 by Ilias Tsitsimpis at 2023-08-08T12:58:47-04:00
ghc-prim: Link against libatomic
Commit b4d39adbb58 made 'hs_cmpxchg64()' available to all architectures.
Unfortunately this made GHC to fail to build on armel, since armel needs
libatomic to support atomic operations on 64-bit word sizes.
Configure libraries/ghc-prim/ghc-prim.cabal to link against libatomic,
the same way as we do in rts/rts.cabal.
(cherry picked from commit fc186b0c0ac56d6ff6225d3f6607be37770fcb52)
- - - - -
fc09110b by Matthew Pickering at 2023-08-08T12:58:47-04:00
Allow users to override non-essential haddock options in a Flavour
We now supply the non-essential options to haddock using the `extraArgs`
field, which can be specified in a Flavour so that if an advanced user
wants to change how documentation is generated then they can use
something other than the `defaultHaddockExtraArgs`.
This does have the potential to regress some packaging if a user has
overridden `extraArgs` themselves, because now they also need to add
the haddock options to extraArgs. This can easily be done by appending
`defaultHaddockExtraArgs` to their extraArgs invocation but someone
might not notice this behaviour has changed.
In any case, I think passing the non-essential options in this manner is
the right thing to do and matches what we do for the "ghc" builder,
which by default doesn't pass any optmisation levels, and would likewise
be very bad if someone didn't pass suitable `-O` levels for builds.
Fixes #23625
(cherry picked from commit e4350b41b54c604e222fe3b0c4edb80beee2c0b3)
- - - - -
d3e3e708 by Ben Gamari at 2023-08-08T17:46:00-04:00
configure: Derive library version from ghc-prim.cabal.in
Since ghc-prim.cabal is now generated by Hadrian, we cannot depend upon
it.
Closes #23726.
(cherry picked from commit 01961be37a0dbc3c808b06fa8c085e2faa334efe)
- - - - -
425ee511 by sheaf at 2023-08-08T20:58:24-04:00
Finish migration of diagnostics in GHC.Tc.Validity
This patch finishes migrating the error messages in GHC.Tc.Validity
to use the new diagnostic infrastructure.
It also refactors the error message datatypes for class and family
instances, to common them up under a single datatype as much as possible.
(cherry picked from commit 7e05f6df938c62d265212abe97ac80c56154ba72)
- - - - -
3804c10c by Ben Gamari at 2023-08-08T20:59:02-04:00
codeGen: Ensure that TSAN is aware of writeArray# write barriers
By using a proper release store instead of a fence.
(cherry picked from commit aca20a5d4fde1c6429c887624bb95c9b54b7af73)
(cherry picked from commit 92b1ea6ec8adefee43ec34a36142253112962484)
- - - - -
25237710 by Ben Gamari at 2023-08-08T20:59:05-04:00
codeGen: Ensure that array reads have necessary barriers
This was the cause of #23541.
(cherry picked from commit 453c0531f2edf49b75c73bc45944600d8d7bf767)
(cherry picked from commit bab517675d2ee8542349f5372ffb3dbd61d4eae1)
- - - - -
8f6bb46e by Ben Gamari at 2023-08-08T21:15:24-04:00
Update Haddock submodule to fix #23368
This submodule update adds the following three commits:
bbf1c8ae - Check for puns
0550694e - Remove fake exports for (~), List, and Tuple<n>
5877bceb - Fix pretty-printing of Solo and MkSolo
These commits fix the issues with Haddock HTML rendering reported in
ticket #23368.
Fixes #23368
(cherry picked from commit 5f5859069cad98a6239e7845c645542c9608aa3d)
- - - - -
291963af by Ben Gamari at 2023-08-09T09:01:45-04:00
users_guide: Restore compatibility with pre-packaging Python
The `packaging` package is not available in Ubuntu 18.04 or Debian 9.
Fall back to distutils in this case to avoid incurring an extra
dependency.
- - - - -
9e4c9647 by Ben Gamari at 2023-08-22T14:17:51-04:00
Bump Cabal submodule
Back to 3.10 as we will be shipping a minor release of Cabal 3.10 with
GHC 9.8.
- - - - -
4aeff0d3 by Ben Gamari at 2023-08-22T14:17:51-04:00
Bump haddock submodule
- - - - -
bb87c1e7 by Matthew Craven at 2023-08-22T14:17:51-04:00
Bump bytestring submodule to 0.11.5, again
Fixes #23789.
The bytestring commit used here is unreleased;
a release can be made when necessary.
(cherry picked from commit bf885d7a1a27e7b1cc34335a1e16d699fe084b47)
- - - - -
03bbb5df by Ben Gamari at 2023-08-22T14:17:51-04:00
relnotes: Note text breakage
See #23758.
- - - - -
a380917e by Ben Gamari at 2023-08-22T14:17:51-04:00
Revert "users_guide: Restore compatibility with pre-packaging Python"
This reverts commit 291963af49a12a05c40d9ed6fd000cba8b15595b.
- - - - -
154dbdfc by Ben Gamari at 2023-08-22T14:17:51-04:00
users-guide: Support both distutils and packaging
As noted in #23818, some old distributions (e.g. Debian 9) only include
`distutils` while newer distributions only include `packaging`.
Fixes #23818.
(cherry picked from commit d814bda97994df01139c2a9bcde915dc86ef2927)
- - - - -
b4f85f6e by Ben Gamari at 2023-08-22T14:17:51-04:00
users-guide: Ensure extlinks is compatible with Sphinx <4
The semantics of the `extlinks` attribute annoyingly changed in Sphinx
4. Reflect this in our configuration. See #22690.
Fixes #23807.
(cherry picked from commit 1726db3f39f1c41b92b1bdf45e9dc054b401e782)
- - - - -
a3623053 by Sylvain Henry at 2023-08-22T14:17:51-04:00
JS: implement openat(AT_FDCWD...) (#23697)
Use `openSync` to implement `openat(AT_FDCWD...)`.
(cherry picked from commit e2b381154c0f89a4ee23190e2e7d7cae105587e6)
- - - - -
01353b12 by sheaf at 2023-08-22T14:17:51-04:00
Use unsatisfiable for missing methods w/ defaults
When a class instance has an Unsatisfiable constraint in its context
and the user has not explicitly provided an implementation of a method,
we now always provide a RHS of the form `unsatisfiable @msg`, even
if the method has a default definition available. This ensures that,
when deferring type errors, users get the appropriate error message
instead of a possible runtime loop, if class default methods were
defined recursively.
Fixes #23816
(cherry picked from commit a975c6634b0d202b21e0e719efb9900e44f85392)
- - - - -
e5e5e3ed by Gergő Érdi at 2023-08-22T14:17:51-04:00
If a defaulting plugin made progress, re-zonk wanteds before built-in defaulting
Fixes #23821.
(cherry picked from commit a6828173b90dbd276be593c1690aa34317c13c72)
- - - - -
20d3ed02 by Matthew Pickering at 2023-08-22T14:17:51-04:00
packaging: Build manpage in separate directory to other documentation
We were installing two copies of the manpage:
* One useless one in the `share/doc` folder, because we copy the doc/
folder into share/
* The one we deliberately installed into `share/man` etc
The solution is to build the manpage into the `manpage` directory when
building the bindist, and then just install it separately.
Fixes #23707
(cherry picked from commit 026f040ad0297cd1b735307656b8f5cf33d1e71e)
- - - - -
738c7935 by Ben Gamari at 2023-08-22T14:17:51-04:00
hadrian: Always canonicalize topDirectory
Hadrian's `topDirectory` is intended to provide an absolute path to the
root of the GHC tree. However, if the tree is reached via a symlink this
One question here is whether the `canonicalizePath` call is expensive
enough to warrant caching. In a quick microbenchmark I observed that
`canonicalizePath "."` takes around 10us per call; this seems
sufficiently low not to worry.
Alternatively, another approach here would have been to rather move the
canonicalization into `m4/fp_find_root.m4`. This would have avoided
repeated canonicalization but sadly path canonicalization is a hard
problem in POSIX shell.
Addresses #22451.
(cherry picked from commit 5efa9ca545d8d33b9be4fc0ba91af1db38f19276)
- - - - -
f3e2a69a by Gergő Érdi at 2023-08-22T14:17:51-04:00
Add flag to `-f{no-}specialise-incoherents` to enable/disable specialisation of incoherent instances
Fixes #23287
(cherry picked from commit 481f4a46a4efccff7242afcdda42c8df6325117f)
- - - - -
cfb98b12 by Matthew Pickering at 2023-08-24T14:04:24-04:00
ghcup-metadata: Fix date modifier (M = minutes, m = month)
Fixes #23552
(cherry picked from commit 43b66a132ad0e6b14e191f27c2599832850e05f2)
- - - - -
51479a69 by Alan Zimmerman at 2023-08-24T16:51:56-04:00
EPA: Keep track of "in" token for WarningTxt category
A warning can now be written with a category, e.g.
{-# WARNInG in "x-c" e "d" #-}
Keep track of the location of the 'in' keyword and string, as well as
the original SourceText of the label, in case it uses character escapes.
(cherry picked from commit 818f8aec7c9a6e037c264f1e2cce16960da8fa24)
- - - - -
249aa819 by Ben Gamari at 2023-08-24T16:51:56-04:00
Bump text submodule to 2.1.0-pre
- - - - -
364142c3 by sheaf at 2023-09-01T13:04:17+02:00
Bump Haddock to fix #23616
This commit updates the Haddock submodule to include
the fix to #23616.
- - - - -
8291f29e by Ben Gamari at 2023-09-13T18:02:11-04:00
rel-notes: Mention template variable matching proposal
- - - - -
eee6be40 by Ben Gamari at 2023-09-13T18:02:11-04:00
base: Advertise linear time of readFloat
As noted in #23538, `readFloat` has runtime that scales nonlinearly in
the size of its input. Consequently, its use on untrusted input can
be exploited as a denial-of-service vector. Point this out and suggest
use of `read` instead.
See #23538.
- - - - -
ae38fa41 by Krzysztof Gogolewski at 2023-09-13T18:04:04-04:00
Fix MultiWayIf linearity checking (#23814)
Co-authored-by: Thomas BAGREL
(cherry picked from commit edd8bc43566b3f002758e5d08c399b6f4c3d7443)
- - - - -
89f6bc6d by Ben Gamari at 2023-09-13T18:05:35-04:00
base: Don't use Data.ByteString.Internals.memcpy
This function is now deprecated from `bytestring`. Use
`Foreign.Marshal.Utils.copyBytes` instead.
Fixes #23880.
(cherry picked from commit 6ccd9d657b33bc6237d8e046ca3b07c803645130)
- - - - -
da5121f6 by Alexander Esgen at 2023-09-13T18:05:59-04:00
users-guide: remove note about fatal Haddock parse failures
(cherry picked from commit a05cdaf018688491625066c0041a4686301d4bc2)
- - - - -
5559e59e by Ben Gamari at 2023-09-13T18:36:33-04:00
Introduce GHC.Rename.Utils.delLocalNames
- - - - -
00dcc7d9 by Ben Gamari at 2023-09-13T18:36:33-04:00
Introduce GHC.Types.Name.Reader.minusLocalRdrEnvList
- - - - -
5e2afb86 by sheaf at 2023-09-14T18:19:39-04:00
Remove ScopedTypeVariables => TypeAbstractions
This commit implements [amendment 604](https://github.com/ghc-proposals/ghc-proposals/pull/604/)
to [GHC proposal 448](https://github.com/ghc-proposals/ghc-proposals/pull/448)
by removing the implication of language extensions
ScopedTypeVariables => TypeAbstractions
To limit breakage, we now allow type arguments in constructor patterns
when both ScopedTypeVariables and TypeApplications are enabled, but
we emit a warning notifying the user that this is deprecated behaviour
that will go away starting in GHC 9.12.
Fixes #23776
(cherry picked from commit 9eecdf33864ddfaa4a6489227ea29a16f7ffdd44)
- - - - -
7607fd7d by sheaf at 2023-09-14T23:26:21-04:00
.stderr: ScopedTypeVariables =/> TypeAbstractions
This commit accepts testsuite changes for the changes in the previous
commit, which mean that TypeAbstractions is no longer implied by
ScopedTypeVariables.
(cherry picked from commit fadd5b4dcf6fc05e8e7af6716a39f331495e011a)
- - - - -
6f6e605c by sheaf at 2023-09-14T23:26:21-04:00
Export setInertSet from GHC.Tc.Solver.Monad
We used to export getTcSInerts and setTcSInerts from GHC.Tc.Solver.Monad.
These got renamed to getInertSet/setInertSet in e1590ddc. That commit also removed
the export of setInertSet, but that function is useful for the GHC API.
(cherry picked from commit e542d590be63cf2611a9615f962a52ba974f6e24)
- - - - -
22e6a49b by Ben Gamari at 2023-09-14T23:26:21-04:00
rts: Fix invalid symbol type
I suspect this code is dead since we haven't observed this failing
despite the obviously incorrect macro name.
(cherry picked from commit 9861f787a8323d03311e30851b10fdf100717afb)
- - - - -
c3ddfa43 by Ben Gamari at 2023-09-14T23:26:21-04:00
testsuite: Add simple test exercising C11 atomics in GHCi
See #22012.
(cherry picked from commit 03ed6a9a634fd6c3ef35e9c5428b4a911e3f0add)
- - - - -
f60efaaf by Ben Gamari at 2023-09-14T23:26:21-04:00
rts/RtsSymbols: Add AArch64 outline atomic operations
Fixes #22012 by adding the symbols described in
https://github.com/llvm/llvm-project/blob/main/llvm/docs/Atomics.rst#libcall....
Ultimately this would be better addressed by #22011, but this is a first
step in the right direction and fixes the immediate symptom.
Note that we dropped the `__arch64_cas16` operations as these provided
by all platforms's compilers. Also, we don't link directly against the
libgcc/compiler-rt definitions but rather provide our own wrappers to
work around broken toolchains (e.g. https://bugs.gentoo.org/868018).
Generated via https://gitlab.haskell.org/ghc/ghc/-/snippets/5733.
(cherry picked from commit 1aa5733a4480420fdc146322d86dd143321a3da6)
- - - - -
71a24afa by David Binder at 2023-09-14T23:26:21-04:00
Fix example in GHC user guide in SafeHaskell section
The example given in the SafeHaskell section uses an implementation of
Monad which no longer works. This MR removes the non-canonical return
instance and adds the necessary instances of Functor and Applicative.
(cherry picked from commit 5a2fe35a84cbcedc929f313e34c45d6f02d81607)
- - - - -
543bbe06 by Alan Zimmerman at 2023-09-14T23:26:21-04:00
EPA: Incorrect locations for UserTyVar with '@'
In T13343.hs, the location for the @ is not within the span of the
surrounding UserTyVar.
type Bad @v = (forall (v1 :: RuntimeRep) (a1 :: TYPE v). a1) :: TYPE v
Widen it so it is captured.
Closes #23887
(cherry picked from commit b34f85865df279a7384dcccb767277d8265b375e)
- - - - -
b21be920 by Krzysztof Gogolewski at 2023-09-14T23:26:21-04:00
Fix wrong role in mkSelCo_maybe
In the Lint failure in #23938, we start with a coercion Refl :: T a ~R T a,
and call mkSelCo (SelTyCon 1 nominal) Refl.
The function incorrectly returned Refl :: a ~R a. The returned role
should be nominal, according to the SelCo rule:
co : (T s1..sn) ~r0 (T t1..tn)
r = tyConRole tc r0 i
----------------------------------
SelCo (SelTyCon i r) : si ~r ti
In this test case, r is nominal while r0 is representational.
(cherry picked from commit e0aa8c6e3a8b6004eca9349e5b705b8a767050aa)
- - - - -
a4a750a2 by Gergő Érdi at 2023-09-14T23:26:21-04:00
If we have multiple defaulting plugins, then we should zonk in between them
after any defaulting has taken place, to avoid a defaulting plugin seeing
a metavariable that has already been filled.
Fixes #23821.
(cherry picked from commit 1d92f2dff6d1a170a44488d73cef81292591d120)
- - - - -
2e1d96cf by Gergő Érdi at 2023-09-14T23:26:21-04:00
Improvements to the documentation of defaulting plugins
Based on @simonpj's draft and comments in !11117
(cherry picked from commit eaee4d296a0782c1acfde610ed3f0a7c7668c06c)
- - - - -
773d45ad by Krzysztof Gogolewski at 2023-09-14T23:26:21-04:00
Valid hole fits: don't suggest unsafeCoerce (#17940)
(cherry picked from commit a0ccef7a44def216da92a0436249789c363a6f91)
- - - - -
39d5cacc by Matthew Pickering at 2023-09-14T23:26:21-04:00
darwin: Bump MAXOSX_DEPLOYMENT_TARGET to 10.13
This bumps the minumum supported version to 10.13 (High Sierra) which is
6 years old at this point.
Fixes #22938
(cherry picked from commit 261b6747d4dada6ccdfb409513417489a495938c)
- - - - -
beeb794f by Matthew Craven at 2023-09-14T23:26:21-04:00
Unarise: Split Rubbish literals in function args
Fixes #23914. Also adds a check to STG lint that
these args are properly unary or nullary after unarisation
(cherry picked from commit da30f0beb9e1820500382da02ffce96da959fa84)
- - - - -
271cc0ad by Josh Meredith at 2023-09-15T08:28:01-04:00
JS: Implement missing C functions `rename`, `realpath`, and `getcwd` (#23806)
(cherry picked from commit d07080d260075f2c00ec9a3752dbeda4f67ce439)
- - - - -
683d68a0 by Matthew Pickering at 2023-09-15T08:28:01-04:00
Add -Winconsistent-flags warning
The warning fires when inconsistent command line flags are passed.
For example:
* -dynamic-too and -dynamic
* -dynamic-too on windows
* -O and --interactive
* etc
This is on by default and allows users to control whether the warning is
displayed and whether it should be an error or not.
Fixes #22572
(cherry picked from commit 21a906c28da497c2b8390de75270357a7f80e5a7)
- - - - -
8e6d6926 by Finley McIlwaine at 2023-09-15T08:28:01-04:00
Fix numa auto configure
(cherry picked from commit 9217950baf0665c9ec71bdd5aa59710de6d8b31d)
- - - - -
802bc4d8 by Pierre Le Marre at 2023-09-18T10:58:25+02:00
Update to Unicode 15.1.0
See: https://www.unicode.org/versions/Unicode15.1.0/
- - - - -
bafa6114 by Ben Gamari at 2023-09-18T15:00:12-04:00
Bump text, unix, bytestring, parsec submodules
* text-2.1
* bytestring-0.12
* others for bounds bumps
See #23758.
- - - - -
f19ad17b by Matthew Pickering at 2023-09-18T15:00:12-04:00
ci: Build debian12 and fedora38 bindists
This adds builds for the latest releases for fedora and debian
We build these bindists in nightly and release pipelines.
(cherry picked from commit 8f7d3041e05496ab5eb30fb2a69ff61d5e13008a)
- - - - -
6854139f by Jaro Reinders at 2023-09-18T15:00:12-04:00
Make STG rewriter produce updatable closures
(cherry picked from commit 3930d793901d72f42b1535c85b746f32d5f3b677)
- - - - -
db31f25c by Sylvain Henry at 2023-09-18T15:00:12-04:00
Add missing int64/word64-to-double/float rules (#23907)
CLC proposal: https://github.com/haskell/core-libraries-committee/issues/203
(cherry picked from commit 5126a2fef0385e206643b6af0543d10ff0c219d8)
- - - - -
13ccbdc3 by Alan Zimmerman at 2023-09-18T15:01:12-04:00
EPA: track unicode version for unrestrictedFunTyCon
Closes #23885
Updates haddock submodule
(cherry picked from commit f9d79a6cb78d3ee606249b5393ccaf100577d7dc)
- - - - -
0f5c21df by Alan Zimmerman at 2023-09-18T16:58:47-04:00
EPA: Incorrect span for LWarnDec GhcPs
The code (from T23465.hs)
{-# WARNInG in "x-c" e "d" #-}
e = e
gives an incorrect span for the LWarnDecl GhcPs
Closes #23892
It also fixes the Test23465/Test23464 mixup
(cherry picked from commit ede3df271a931f3845b5a63fb29654b46bce620d)
- - - - -
190ddace by Simon Peyton Jones at 2023-09-18T17:02:10-04:00
Use correct FunTyFlag in adjustJoinPointType
As the Lint error in #23952 showed, the function adjustJoinPointType
was failing to adjust the FunTyFlag when adjusting the type.
I don't think this caused the seg-fault reported in the ticket,
but it is definitely. This patch fixes it.
It is tricky to come up a small test case; Krzysztof came up with
this one, but it only triggers a failure in GHC 9.6.
(cherry picked from commit 8e05c54a8cb7e5ad2d584fad5b5ad878dd5488b6)
- - - - -
850d7b1e by Ben Gamari at 2023-09-18T17:07:05-04:00
compiler: Fingerprint more code generation flags
Previously our recompilation check was quite inconsistent in its
coverage of non-optimisation code generation flags. Specifically, we
failed to account for most flags that would affect the behavior of
generated code in ways that might affect the result of a program's
execution (e.g. `-feager-blackholing`, `-fstrict-dicts`)
Closes #23369.
(cherry picked from commit d1c92bf3b4b0b07a6a652f8fc31fd7b62465bf71)
- - - - -
3de6e12c by Andreas Klebinger at 2023-09-18T17:11:51-04:00
Profiling: Properly escape characters when using `-pj`.
There are some ways in which unusual characters like quotes or others
can make it into cost centre names. So properly escape these.
Fixes #23924
(cherry picked from commit e5c00092a13f1a8cf53df2469e027012743cf59a)
- - - - -
ad2c402f by Simon Peyton Jones at 2023-09-18T17:12:37-04:00
Tiny refactor
canEtaReduceToArity was only called internally, and always with
two arguments equal to zero. This patch just specialises the
function, and renames it to cantEtaReduceFun.
No change in behaviour.
(cherry picked from commit 236a134eab4c0a3aae30752a3d580c083f4e6b57)
- - - - -
f7c2c493 by Simon Peyton Jones at 2023-09-18T17:13:08-04:00
Fix eta reduction
Issue #23922 showed that GHC was bogusly eta-reducing a join point.
We should never eta-reduce (\x -> j x) to j, if j is a join point.
It is extremly difficult to trigger this bug. It took me 45 mins of
trying to make a small tests case, here immortalised as T23922a.
(cherry picked from commit 6840012e5bb8f5c13e4bf7a4e4cbba0b06420aaa)
- - - - -
0ea59526 by Matthew Pickering at 2023-09-18T17:15:17-04:00
Add -Winconsistent-flags warning
The warning fires when inconsistent command line flags are passed.
For example:
* -dynamic-too and -dynamic
* -dynamic-too on windows
* -O and --interactive
* etc
This is on by default and allows users to control whether the warning is
displayed and whether it should be an error or not.
Fixes #22572
(cherry picked from commit 21a906c28da497c2b8390de75270357a7f80e5a7)
- - - - -
e4b5cdbd by Ben Gamari at 2023-09-19T08:53:27-04:00
gitlab-ci: Mark T22012 as broken on CentOS 7
Due to #23979.
- - - - -
68e111c8 by Ben Gamari at 2023-09-20T09:19:33-04:00
Bump process submodule to 1.6.18.0
- - - - -
2616921f by Ben Gamari at 2023-09-20T09:19:33-04:00
Bump hsc2hs submodule to 0.68.10
- - - - -
a591fde5 by Ben Gamari at 2023-09-20T09:19:33-04:00
Bump deepseq submodule to 1.5.0.0
- - - - -
f1b28bc7 by Ben Gamari at 2023-09-20T09:19:33-04:00
Bump parsec submodule to 3.1.17.0
- - - - -
e9c4eb47 by Ben Gamari at 2023-09-20T09:19:33-04:00
Bump nofib submodule
- - - - -
31a2dd67 by Ben Gamari at 2023-09-20T09:19:33-04:00
base: Update changelog
- - - - -
09233267 by Ben Gamari at 2023-09-20T09:19:33-04:00
template-haskell: Update changelog
- - - - -
f23eda82 by Ben Gamari at 2023-09-25T10:09:27-04:00
base: Fix changelog formatting
- - - - -
6a6fb5b5 by Ben Gamari at 2023-09-25T10:09:31-04:00
relnotes: Add a few notable points to the `base` section
- - - - -
bf9b8f09 by Ben Gamari at 2023-09-25T10:09:31-04:00
users-guide: Fix relnotes wibbles
Partially fixes #23988.
- - - - -
b34ccb2e by Ben Gamari at 2023-09-27T09:27:06-04:00
hadrian: Install LICENSE files in bindists
Fixes #23548.
- - - - -
63b6ef7d by Ben Gamari at 2023-09-27T09:29:57-04:00
Bump containers submodule
To 0.7.
- - - - -
3359e6b4 by Ben Gamari at 2023-09-27T11:59:45-04:00
Bump haddock submodule
Applying fix from #21984.
- - - - -
e23147f4 by Ben Gamari at 2023-09-27T11:59:45-04:00
users-guide: Refactor handling of :base-ref: et al.
(cherry picked from commit 8f82e99fda693326e55ae798e11f3896c875c966)
- - - - -
9c680ee5 by Ben Gamari at 2023-09-27T11:59:45-04:00
Bump nofib submodule
- - - - -
f7b3fcb3 by Ben Gamari at 2023-09-27T14:25:14-04:00
users-guide: Amend discussion of incoherent specialisation
Closing #23988.
- - - - -
5a602b33 by Ben Gamari at 2023-09-28T12:00:12-04:00
Bump containers submodule to 0.6.8
- - - - -
c83b7688 by Ben Gamari at 2023-09-28T14:27:50-04:00
Bump Cabal submodule to 3.10.2.0 final
- - - - -
86c1bdc4 by Ben Gamari at 2023-09-28T23:14:08-04:00
gitlab-ci: Allow release-hackage-lint to fail
Head.hackage is not robust in the presence of patches to boot packages,
as see in ghc/head.hackage#93. Allow it to fail for now.
- - - - -
2a51d113 by Ben Gamari at 2023-10-05T16:13:45-04:00
configure: Fix #21712 again
This is a bit of a shot in the dark to fix #24033, which appears to be
another instance of #21712. For some reason the ld-override logic
*still* appears to be active on Darwin targets (or at least one).
Consequently, on misconfigured systems we may choose a non-`ld64`
linker.
It's a bit unclear exactly what happened in #24033 but ultimately the
check added for #21712 was not quite right, checking for the
`ghc_host_os` (the value of which depends upon the bootstrap compiler)
instead of the target platform. Fix this.
Fixes #24033.
(cherry picked from commit f6b2751f58df5f4f83caa7a7ca56e66659d02b09)
- - - - -
8ed7ffb6 by Ben Gamari at 2023-10-05T16:13:45-04:00
rts/nonmoving: Fix on LLP64 platforms
Previously `NONMOVING_SEGMENT_MASK` and friends were defined with the `UL`
size suffix. However, this is wrong on LLP64 platforms like Windows,
where `long` is 32-bits.
Fixes #23003.
Fixes #24042.
(cherry picked from commit 8f6010b98f560200997a9d84a4e07bfd0ad6e496)
- - - - -
894b6027 by sheaf at 2023-10-05T16:13:45-04:00
Fix non-symbolic children lookup of fixity decl
The fix for #23664 did not correctly account for non-symbolic names
when looking up children of a given parent. This one-line fix changes
that.
Fixes #24037
(cherry picked from commit 8cee3fd7febdd97a9b4bcae7dddafe69b166149c)
- - - - -
9fb11d4a by Andreas Klebinger at 2023-10-05T16:15:25-04:00
Arm: Make ppr methods easier to use by not requiring NCGConfig
(cherry picked from commit b048bea095d48751e7c182f2837c4a31fcad8fd7)
- - - - -
b3ab756f by Andreas Klebinger at 2023-10-05T17:41:42-04:00
AArch64: Fix broken conditional jumps for offsets >= 1MB
Rewrite conditional jump instructions with offsets >= 1MB to use unconditional jumps
to avoid overflowing the immediate.
Fixes #23746
(cherry picked from commit 2adc050857a9c1b992040fbfd55fbe65b2851b19)
- - - - -
857967ae by Luite Stegeman at 2023-10-05T17:41:42-04:00
JS: correct file size and times
Programs produced by the JavaScript backend were returning
incorrect file sizes and modification times, causing cabal
related tests to fail.
This fixes the problem and adds an additional test that verifies
basic file information operations.
fixes #23980
(cherry picked from commit 11ecc37bc27ffa1cf31358e21e09e140befa940c)
- - - - -
81b1179d by Ben Gamari at 2023-10-05T17:41:42-04:00
system-cxx-std-lib: Add license and description
(cherry picked from commit 151187407b7b4bdda5b80bd7b8bdf96d05e278dd)
- - - - -
0fc4ce51 by Torsten Schmits at 2023-10-05T17:41:42-04:00
Add -fbreak-points to control breakpoint insertion
Rather than statically enabling breakpoints only for the interpreter,
this adds a new flag.
Tracking ticket: #23057
MR: !10466
(cherry picked from commit 083794b10dc27e9d97b62cc8b8eb4e1da162bf66)
- - - - -
e538003c by Alexis King at 2023-10-05T17:41:42-04:00
Don’t store the async exception masking state in CATCH frames
(cherry picked from commit 8b61dfd6dfc78bfa6bb9449dac9a336e5d668b5e)
- - - - -
46896580 by Ben Gamari at 2023-10-05T17:41:42-04:00
gitlab-ci: Drop libiserv from upload_ghc_libs
libiserv has been merged into the ghci package.
(cherry picked from commit b35fd2cd7a12f3354a7fd2301bdf610c5d435017)
- - - - -
34bd605d by Ben Gamari at 2023-10-05T17:41:42-04:00
Bump unix submodule to 2.8.3.0
- - - - -
47b202a9 by Ben Gamari at 2023-10-05T23:32:49-04:00
Bump stm submodule to 2.5.2.0
- - - - -
31d4e495 by Ben Gamari at 2023-10-05T23:32:49-04:00
Bump hpc submodule to 0.7.0.0
- - - - -
7c268df5 by Ben Gamari at 2023-10-05T23:32:54-04:00
Allow perf changes
These appear to be spurious.
Metric Decrease:
MultiLayerModules
T13701
T14697
- - - - -
b238204e by Bryan Richter at 2023-10-06T04:53:24-04:00
Work around perf note fetch failure
Addresses #24055.
(cherry picked from commit 63afb701a1638d7bd32c34fb24a9fd3ff897b634)
- - - - -
bda60b3a by Ben Gamari at 2023-10-06T21:45:17-04:00
Bump haddock submodule to 2.30
- - - - -
b2d15ab1 by Ben Gamari at 2023-10-06T21:45:48-04:00
hadrian: Fix hpc parser path
- - - - -
443e870d by Ben Gamari at 2023-10-06T21:45:48-04:00
Release GHC 9.8.1
- - - - -
0cbb9e10 by Moritz Angermann at 2024-01-21T17:46:58-05:00
CgUtils.fixStgRegStmt respect register width
This change ensure that the reg + offset computation is always of the
same size. Before this we could end up with a 64bit register, and then
add a 32bit offset (on 32bit platforms). This not only would fail type
sanity checking, but also incorrectly truncate 64bit values into 32bit
values silently on 32bit architectures.
(cherry picked from commit dafc47091c9107dcf81e1e80a105f59211927c89)
- - - - -
da8d2a29 by Matthew Pickering at 2024-01-21T22:06:34-05:00
Add aarch64 alpine bindist
This is dynamically linked and makes creating statically linked
executables more straightforward.
Fixes #23482
(cherry picked from commit 51b57d6587b75020045c1a1edf9eb02990ca63cc)
- - - - -
53b308e9 by sheaf at 2024-01-21T22:06:34-05:00
Combine GREs when combining in mkImportOccEnv
In `GHC.Rename.Names.mkImportOccEnv`, we sometimes discard one import
item in favour of another, as explained in Note [Dealing with imports]
in `GHC.Rename.Names`. However, this can cause us to lose track of
important parent information.
Consider for example #24084:
module M1 where { class C a where { type T a } }
module M2 ( module M1 ) where { import M1 }
module M3 where { import M2 ( C, T ); instance C () where T () = () }
When processing the import list of `M3`, we start off (for reasons that
are not relevant right now) with two `Avail`s attached to `T`, namely
`C(C, T)` and `T(T)`. We combine them in the `combine` function of
`mkImportOccEnv`; as described in Note [Dealing with imports] we discard
`C(C, T)` in favour of `T(T)`. However, in doing so, we **must not**
discard the information want that `C` is the parent of `T`. Indeed,
losing track of this information can cause errors when importing,
as we could get an error of the form
‘T’ is not a (visible) associated type of class ‘C’
We fix this by combining the two GREs for `T` using `plusGRE`.
Fixes #24084
(cherry picked from commit ec3c4488f456f6f9bdd28a09f0b1e87fd3782db9)
- - - - -
c4d1edb1 by Cheng Shao at 2024-01-21T22:06:34-05:00
testsuite: increase timeout of ghc-api tests for wasm32
ghc-api tests for wasm32 are more likely to timeout due to the large
wasm module sizes, especially when testing with wasm native tail
calls, given wasmtime's handling of tail call opcodes are suboptimal
at the moment. It makes sense to increase timeout specifically for
these tests on wasm32. This doesn't affect other targets, and for
wasm32 we don't increase timeout for all tests, so not to risk letting
major performance regressions slip through the testsuite.
(cherry picked from commit 07ab5cc10d4ce8db0c3b099d8bd34da66db51b9e)
- - - - -
a2d7130e by Simon Peyton Jones at 2024-01-21T22:06:34-05:00
Fix non-termination bug in equality solver
constraint left-to-right then right to left, forever.
Easily fixed.
(cherry picked from commit 21b76843e9b51cd27be32b8c595f29a784276229)
- - - - -
d9a34b85 by Cheng Shao at 2024-01-21T22:06:34-05:00
compiler: fix eager blackhole symbol in wasm32 NCG
(cherry picked from commit fe50eb3510ca730c4d2fc57778d380fdc493abd8)
- - - - -
a0631c4a by Cheng Shao at 2024-01-21T22:06:34-05:00
testsuite: fix optasm tests for wasm32
(cherry picked from commit af77114815ad9052261898c830171e49fbed5160)
- - - - -
186956a6 by Matthew Pickering at 2024-01-21T22:06:34-05:00
testsuite: Add wasm32 to testsuite arches with NCG
The compiler --info reports that wasm32 compilers have a NCG, so we
should agree with that here.
(cherry picked from commit 1b90735c99f1179328f6dd67dbcc81f964901a19)
- - - - -
2bb6c062 by Josh Meredith at 2024-01-21T22:06:34-05:00
JavaScript: support unicode code points > 2^16 in toJSString using String.fromCodePoint (#23628)
(cherry picked from commit 09a5c6cccf8f1b517bc01e8cc924e151d9cbae49)
- - - - -
7c419b07 by Josh Meredith at 2024-01-21T22:06:34-05:00
JavaScript: update MK_TUP macros to use current tuple constructors (#23659)
(cherry picked from commit b9d5bfe9e76e18c78dbcb67e1c5c33a15a54dcd0)
- - - - -
60f3a468 by Sylvain Henry at 2024-01-21T22:06:34-05:00
JS: testsuite: use req_c predicate instead of js_broken
(cherry picked from commit 41968fd699a285e1a1b43535fda28a61bd1202f1)
- - - - -
e110b68f by Sylvain Henry at 2024-01-21T22:06:34-05:00
JS: implement some file primitives (lstat,rmdir) (#22374)
- Implement lstat and rmdir.
- Implement base_c_s_is* functions (testing a file type)
- Enable passing tests
(cherry picked from commit 74a4dd2ec6e200b11a56b6f82907feb66e94c90b)
- - - - -
6c31021e by Andreas Klebinger at 2024-01-21T22:06:34-05:00
Fix FMA primops generating broken assembly on x86.
`genFMA3Code` assumed that we had to take extra precations to avoid overwriting
the result of `getNonClobberedReg`. One of these special cases caused a bug resulting
in broken assembly.
I believe we don't need to hadle these cases specially at all, which means this MR simply
deletes the special cases to fix the bug.
Fixes #24160
(cherry picked from commit fa576eb8a55db8e216eed3e7ea8807121b3496f5)
- - - - -
c52d657c by Zubin Duggal at 2024-01-21T22:06:34-05:00
driver: Don't lose track of nodes when we fail to resolve cycles
The nodes that take part in a cycle should include both hs-boot and hs files,
but when we fail to resolve a cycle, we were only counting the nodes from the
graph without boot files.
Fixes #24196
(cherry picked from commit 717c9b59ecfb919cba1b8cec6597d0c2fb3ef1a1)
- - - - -
6a78bcc1 by Sebastian Graf at 2024-01-30T17:14:16+05:30
Cpr: Turn an assertion into a check to deal with some dead code (#23862)
See the new `Note [Dead code may contain type confusions]`.
Fixes #23862.
(cherry picked from commit 57c391c463f26b7025df9b340ad98416cff1d2b2)
- - - - -
724102f6 by Zubin Duggal at 2024-01-30T17:14:16+05:30
hadrian: set -Wno-deprecations for directory and Win32
The filepath bump to 1.4.200.1 introduces a deprecation warning.
See https://gitlab.haskell.org/ghc/ghc/-/issues/24240
https://github.com/haskell/filepath/pull/206
(cherry picked from commit 86f652dc9a649e59e643609c287a510a565f5408)
- - - - -
38cb7fb4 by Moritz Angermann at 2024-01-30T17:14:16+05:30
Drop hard Xcode dependency
XCODE_VERSION calls out to `xcodebuild`, which is only available
when having `Xcode` installed. The CommandLineTools are not
sufficient. To install Xcode, you must have an apple id to download
the Xcode.xip from apple.
We do not use xcodebuild anywhere in our build explicilty. At best
it appears to be a proxy for checking the linker or the compiler.
These should rather be done with
```
xcrun ld -version
```
or similar, and not by proxy through Xcode. The CLR should be
sufficient for building software on macOS.
(cherry picked from commit a3ee3b99e6889fd68da75c6ea7a14d101f71da56)
- - - - -
3ac10c2c by Sylvain Henry at 2024-01-30T17:14:16+05:30
Fix unusable units and module reexport interaction (#21097)
This commit fixes an issue with ModUnusable introduced in df0f148feae.
In mkUnusableModuleNameProvidersMap we traverse the list of unusable
units and generate ModUnusable origin for all the modules they contain:
exposed modules, hidden modules, and also re-exported modules. To do
this we have a two-level map:
ModuleName -> Unit:ModuleName (aka Module) -> ModuleOrigin
So for each module name "M" in broken unit "u" we have:
"M" -> u:M -> ModUnusable reason
However in the case of module reexports we were using the *target*
module as a key. E.g. if "u:M" is a reexport for "X" from unit "o":
"M" -> o:X -> ModUnusable reason
Case 1: suppose a reexport without module renaming (u:M -> o:M) from
unusable unit u:
"M" -> o:M -> ModUnusable reason
Here it's claiming that the import of M is unusable because a reexport
from u is unusable. But if unit o isn't unusable we could also have in
the map:
"M" -> o:M -> ModOrigin ...
Issue: the Semigroup instance of ModuleOrigin doesn't handle the case
(ModUnusable <> ModOrigin)
Case 2: similarly we could have 2 unusable units reexporting the same module
without renaming, say (u:M -> o:M) and (v:M -> o:M) with u and v
unusable. It gives:
"M" -> o:M -> ModUnusable ... (for u)
"M" -> o:M -> ModUnusable ... (for v)
Issue: the Semigroup instance of ModuleOrigin doesn't handle the case
(ModUnusable <> ModUnusable).
This led to #21097, #16996, #11050.
To fix this, in this commit we make ModUnusable track whether the module
used as key is a reexport or not (for better error messages) and we use
the re-export module as key. E.g. if "u:M" is a reexport for "o:X" and u
is unusable, we now record:
"M" -> u:M -> ModUnusable reason reexported=True
So now, we have two cases for a reexport u:M -> o:X:
- u unusable: "M" -> u:M -> ModUnusable ... reexported=True
- u usable: "M" -> o:X -> ModOrigin ... reexportedFrom=u:M
The second case is indexed with o:X because in this case the Semigroup
instance of ModOrigin is used to combine valid expositions of a module
(directly or via reexports).
Note that module lookup functions select usable modules first (those who
have a ModOrigin value), so it doesn't matter if we add new ModUnusable
entries in the map like this:
"M" -> {
u:M -> ModUnusable ... reexported=True
o:M -> ModOrigin ...
}
The ModOrigin one will be used. Only if there is no ModOrigin or
ModHidden entry will the ModUnusable error be printed. See T21097 for an
example printing several reasons why an import is unusable.
(cherry picked from commit cee81370cd6ef256f66035e3116878d4cb82e28b)
- - - - -
2af5c8d1 by Moritz Angermann at 2024-01-30T17:14:16+05:30
[PEi386] Mask SYM_TYPE_DUP_DISCARD in makeSymbolExtra
48e391952c17ff7eab10b0b1456e3f2a2af28a9b
introduced `SYM_TYPE_DUP_DISCARD` to the bitfield.
The linker however, failed to mask the `SYM_TYPE_DUP_DISCARD` value.
Thus `== SYM_TYPE_CODE` comparisons easily failed. This lead to us
relocating DATA lookups (GOT) into E8 (call) and E9 (jump) instructions.
(cherry picked from commit 34f06334025521c2440ebedb0237697fbcc3c6de)
- - - - -
97679725 by Ilias Tsitsimpis at 2024-01-30T17:14:16+05:30
hadrian: Pass -DNOSMP to C compiler when needed
Hadrian passes the -DNOSMP flag to GHC when the target doesn't support
SMP, but doesn't pass it to CC as well, leading to the following
compilation error on mips64el:
| Run Cc (FindCDependencies CDep) Stage1: rts/sm/NonMovingScav.c => _build/stage1/rts/build/c/sm/NonMovingScav.o.d
Command line: /usr/bin/mips64el-linux-gnuabi64-gcc -E -MM -MG -MF _build/stage1/rts/build/c/hooks/FlagDefaults.thr_debug_p_o.d -MT _build/stage1/rts/build/c/hooks/FlagDefaults.o -Irts/include -I_build/stage1/rts/build -I_build/stage1/rts/build/include -Irts/include -x c rts/hooks/FlagDefaults.c -Wall -Wextra -Wstrict-prototypes -Wmissing-prototypes -Wmissing-declarations -Winline -Wpointer-arith -Wmissing-noreturn -Wnested-externs -Wredundant-decls -Wundef -fno-strict-aliasing -DTHREADED_RTS -DDEBUG -fomit-frame-pointer -O2 -g -Irts -I_build/stage1/rts/build -DDEBUG -fno-omit-frame-pointer -g3 -O0
===> Command failed with error code: 1
In file included from rts/include/Stg.h:348,
from rts/include/Rts.h:38,
from rts/hooks/FlagDefaults.c:8:
rts/include/stg/SMP.h:416:2: error: #error memory barriers unimplemented on this architecture
416 | #error memory barriers unimplemented on this architecture
| ^~~~~
rts/include/stg/SMP.h:440:2: error: #error memory barriers unimplemented on this architecture
440 | #error memory barriers unimplemented on this architecture
| ^~~~~
rts/include/stg/SMP.h:464:2: error: #error memory barriers unimplemented on this architecture
464 | #error memory barriers unimplemented on this architecture
| ^~~~~
The old make system correctly passed this flag to both GHC and CC [1].
Fix this error by passing -DNOSMP to CC as well.
[1] https://gitlab.haskell.org/ghc/ghc/-/blob/00920f176b0235d5bb52a8e054d89a664f...
Closes #24082
(cherry picked from commit 257c2807587624592813a42e06a05c5fc34cb38c)
- - - - -
0ae27729 by Moritz Angermann at 2024-01-30T17:14:16+05:30
nativeGen: section flags for .text$foo only
Commit 3ece9856d157c85511d59f9f862ab351bbd9b38b, was supposed to fix
#22834 in !9810.
It does however add "xr" indiscriminatly to .text sections
even if splitSections is disabled. This leads to the assembler saying:
ghc_1.s:7849:0: error:
Warning: Ignoring changed section attributes for .text
|
7849 | .section .text,"xr"
| ^
(cherry picked from commit e99cf237f84db34be0468a893b10394d6b364bce)
- - - - -
336c0c39 by Moritz Angermann at 2024-01-30T17:14:16+05:30
[PEi386 linker] Bounds check and null-deref guard
We should resonably be able to expect that we won't exceed the number of
sections if we assume to be dealing with legal object files. We can however
not guarantee that we get some negative values, and while we try to
special case most, we should exclude negative indexing into the sections
array.
We also need to ensure that we do not try to derefences targetSection,
if it is NULL, due to the switch statement.
(cherry picked from commit df81536f2e53abf521a05eb1e482a076f5849c21)
- - - - -
c036cf16 by Sylvain Henry at 2024-01-30T17:14:16+05:30
Avoid out-of-bound array access in bigNatIsPowerOf2 (fix #24066)
bigNatIndex# in the `where` clause wasn't guarded by "bigNatIsZero a".
(cherry picked from commit fe0675770b66a9ed393884d96e276b8d116fa2a2)
- - - - -
14d23c31 by Sylvain Henry at 2024-01-30T17:14:16+05:30
Bignum: fix right shift of negative BigNat with native backend
(cherry picked from commit cc1625b1ffbdf086b8380bacd35abc8d85861637)
- - - - -
cead9699 by Sylvain Henry at 2024-01-30T17:14:17+05:30
Rts: expose rtsOutOfBoundsAccess symbol
(cherry picked from commit cbe4400d2690104053ec544cf7d0a9a13ee914ee)
- - - - -
0ffbcb24 by Sylvain Henry at 2024-01-30T17:14:17+05:30
Hadrian: enable `-fcheck-prim-bounds` in validate flavour
This allows T24066 to fail when the bug is present.
Otherwise the out-of-bound access isn't detected as it happens in
ghc-bignum which wasn't compiled with the bounds check.
(cherry picked from commit 72c7380cb780933825bc84924908e01ce0495dc4)
- - - - -
ef2f3e02 by Profpatsch at 2024-01-30T17:14:17+05:30
base: Improve String & IsString documentation
(cherry picked from commit d751c583d29460f033fefb45e685fa40fb3487ad)
- - - - -
b8af87e8 by Ben Gamari at 2024-01-30T17:14:17+05:30
rts/eventlog: Fix off-by-one in assertion
Previously we failed to account for the NULL terminator `postString`
asserted that there is enough room in the buffer for the string.
(cherry picked from commit d0b17576148d336b67c7d65bcf742f83001413cb)
- - - - -
86ac4f65 by Ben Gamari at 2024-01-30T17:14:17+05:30
rts/eventlog: Honor result of ensureRoomForVariableEvent is
Previously we would keep plugging along, even if isn't enough room for
the event.
(cherry picked from commit a10f9b9bc510051a5b47d31238aad1174f7a1966)
- - - - -
64de5b77 by Ben Gamari at 2024-01-30T17:14:17+05:30
rts/eventlog: Avoid truncating event sizes
Previously ensureRoomForVariableEvent would truncate the desired size to
16-bits, resulting in #24197.
Fixes #24197.
(cherry picked from commit 0e0f41c0e3d9c67fc669e975060e88bccdc7d823)
- - - - -
efc34462 by Zubin Duggal at 2024-01-30T17:14:17+05:30
driver: Ensure we actually clear the interactive context before reloading
Previously we called discardIC, but immediately after set the session
back to an old HscEnv that still contained the IC
Partially addresses #24107
Fixes #23405
(cherry picked from commit 58d56644c54b221f265b739829e53f9f5e1216d3)
- - - - -
459dc2db by Zubin Duggal at 2024-01-30T17:14:17+05:30
driver: Ensure we force the lookup of old build artifacts before returning the build plan
This prevents us from retaining all previous build artifacts in memory until a
recompile finishes, instead only retaining the exact artifacts we need.
Fixes #24118
(cherry picked from commit 8e5745a0cddf36afb680e1e99675279f0065ad7b)
- - - - -
87d262af by Zubin Duggal at 2024-01-30T17:14:17+05:30
testsuite: add test for #24118 and #24107
MultiLayerModulesDefsGhci was not able to catch the leak because it uses
:l which discards the previous environment.
Using :r catches both of these leaks
(cherry picked from commit 105c370ce8d2efe0295c3a50a5866f169b59b5e2)
- - - - -
a8e0c9ab by Zubin Duggal at 2024-01-30T17:14:17+05:30
compiler: Add some strictness annotations to ImportSpec and related constructors
This prevents us from retaining entire HscEnvs.
Force these ImportSpecs when forcing the GlobalRdrEltX
Adds an NFData instance for Bag
Fixes #24107
(cherry picked from commit e822ff88f7b139191163d0b2dafe43b318b779f9)
- - - - -
67536e12 by Zubin Duggal at 2024-01-30T17:14:17+05:30
compiler: Force IfGlobalRdrEnv in NFData instance.
(cherry picked from commit 522c12a43b34ad4ca7f3f916fa630d33a4fe6efb)
- - - - -
057f4e24 by Claudio Bley at 2024-01-30T17:14:17+05:30
Only exit ghci in -e mode when :add command fails
Previously, when running `ghci -e ':add Sample.hs'` the process would
exit with exit code 1 if the file exists and could be loaded.
Fixes #24115
(cherry picked from commit d561073727186c7b456c9ef113ccb7fc0df4560e)
- - - - -
28fff112 by mmzk1526 at 2024-01-30T17:14:17+05:30
Use "-V" for alex version check for better backward compatibility
Fixes #24302.
In recent versions of alex, "-v" is used for "--verbose" instead of "-version".
(cherry picked from commit c7be0c680d96ba6209c86e509ab2682e5041a53d)
- - - - -
1b7b1345 by Ben Gamari at 2024-01-30T17:14:17+05:30
distrib: Rediscover otool and install_name_tool on Darwin
In the bindist configure script we must rediscover the `otool` and
`install_name_tool`s since they may be different from the build
environment.
Fixes #24211.
(cherry picked from commit 292983c841b4facd5c48fcec9689448d66bcb90e)
- - - - -
f8a889b3 by Zubin Duggal at 2024-01-30T17:14:17+05:30
ci: Ensure we use the correct bindist name for the test artifact when generating
release ghcup metadata
Fixes #24268
(cherry picked from commit 989bf8e53c08eb22de716901b914b3607bc8dd08)
- - - - -
9f8fd045 by Stefan Schulze Frielinghaus at 2024-01-30T17:14:17+05:30
llvmGen: Align objects in the data section
Objects in the data section may be referenced via tagged pointers.
Thus, align those objects to a 4- or 8-byte boundary for 32- or 64-bit
platforms, respectively. Note, this may need to be reconsidered if
objects with a greater natural alignment requirement are emitted as e.g.
128-bit atomics.
Fixes #24163.
(cherry picked from commit dfe1c3540e4b519b62b862b5966dfec5cae9ece1)
- - - - -
ff1c1cfb by Zubin Duggal at 2024-01-30T17:14:17+05:30
docs: document permissibility of -XOverloadedLabels (#24249)
Document the permissibility introduced by
https://github.com/ghc-proposals/ghc-proposals/blob/master/proposals/0170-un...
(cherry picked from commit c247b6befe6a599688bad0a3383424f7ea12d5f2)
- - - - -
57a663f1 by Simon Peyton Jones at 2024-01-30T17:14:17+05:30
Take care when simplifying unfoldings
This MR fixes a very subtle bug exposed by #24242.
See Note [Environment for simplLetUnfolding].
I also updated a bunch of Notes on shadowing
(cherry picked from commit d8baa1bdeea1753afc939a20119d3ce555301167)
- - - - -
e3f862f7 by Simon Peyton Jones at 2024-01-30T17:14:17+05:30
Make TYPE and CONSTRAINT not-apart
Issue #24279 showed up a bug in the logic in GHC.Core.Unify.unify_ty
which is supposed to make TYPE and CONSTRAINT be not-apart.
Easily fixed.
(cherry picked from commit af6932d6c068361c6ae300d52e72fbe13f8e1f18)
- - - - -
a9681fe1 by Zubin Duggal at 2024-01-30T17:14:17+05:30
ci: Fix typo in mk_ghcup_metadata.py
There was a missing colon in the fix to #24268 in 989bf8e53c08eb22de716901b914b3607bc8dd08
(cherry picked from commit 4a39b5ffb85246d0dc491e36a80449afdbcc74cc)
- - - - -
ba4edca6 by sheaf at 2024-01-30T17:14:17+05:30
Use lookupOccRn_maybe in TH.lookupName
When looking up a value, we want to be able to find both variables
and record fields. So we should not use the lookupSameOccRn_maybe
function, as we can't know ahead of time which record field namespace
a record field with the given textual name will belong to.
Fixes #24293
(cherry picked from commit c5fc7304d56c7a1e0a7bc6e53e23b976772fc10e)
- - - - -
5ac5d8d2 by Zubin Duggal at 2024-02-07T15:22:43+05:30
#22362 and 22349 are fixed on the js backend
- - - - -
661e2a46 by Greg Steuck at 2024-02-08T15:28:41+05:30
Remove undefined FP_PROG_LD_BUILD_ID from configure.ac's
(cherry picked from commit 6f904808c925991bbaf4068c9a12b584675c6209)
- - - - -
d1a6ad12 by Sylvain Henry at 2024-02-08T15:37:59+05:30
JS: implement some file primitives (lstat,rmdir) (#22374)
- Implement lstat and rmdir.
- Implement base_c_s_is* functions (testing a file type)
- Enable passing tests
(cherry picked from commit 74a4dd2ec6e200b11a56b6f82907feb66e94c90b)
- - - - -
8986d86d by jade at 2024-02-08T15:40:03+05:30
Expand documentation of List & Data.List
This commit aims to improve the documentation and examples
of symbols exported from Data.List
(cherry picked from commit ff81d53f6404867c7cdd9dde5bb6bf3776912048)
- - - - -
2fde790f by Jade at 2024-02-08T15:41:33+05:30
Improve documentation of Semigroup & Monoid
This commit aims to improve the documentation of various symbols
exported from Data.Semigroup and Data.Monoid
(cherry picked from commit fa4e5913251786f2b535b31abd3fad39da8b3602)
- - - - -
f36b8ba7 by Finley McIlwaine at 2024-02-08T15:44:05+05:30
Add -dipe-stats flag
This is useful for seeing which info tables have information.
(cherry picked from commit cc52c358316ac8210f80da80db6b0c620dd5bdc3)
- - - - -
c237fe04 by Finley McIlwaine at 2024-02-08T19:53:20+05:30
Add -finfo-table-map-with-fallback -finfo-table-map-with-stack
The -fno-info-table-map-with-stack flag omits STACK info tables from the info
table map, and the -fno-info-table-map-with-fallback flag omits info tables
with defaulted source locations from the map. In a test on the Agda codebase
the build results were about 7% smaller when both of those types of tables
were omitted.
Adds a test that verifies that passing each combination of these flags
results in the correct output for -dipe-stats, which is disabled for the js
backend since profiling is not implemented.
This commit also refactors a lot of the logic around extracting info tables
from the Cmm results and building the info table map.
This commit also fixes some issues in the users guide rst source to fix
warnings that were noticed while debugging the documentation for these flags.
Fixes #23702
(cherry picked from commit 261c4acbfdaf5babfc57ab0cef211edb66153fb1)
- - - - -
c5e5e6da by Finley McIlwaine at 2024-02-08T19:53:20+05:30
Refactor estimation of stack info table provenance
This commit greatly refactors the way we compute estimated provenance for stack
info tables. Previously, this process was done using an entirely separate traversal
of the whole Cmm code stream to build the map from info tables to source locations.
The separate traversal is now fused with the Cmm code generation pipeline in
GHC.Driver.Main.
This results in very significant code generation speed ups when -finfo-table-map is
enabled. In testing, this patch reduces code generation times by almost 30% with
-finfo-table-map and -O0, and 60% with -finfo-table-map and -O1 or -O2 .
Fixes #23103
(cherry picked from commit d99c816f7b5727a3f344960e02a1932187ea093f)
- - - - -
882f3b32 by Finley McIlwaine at 2024-02-08T19:53:20+05:30
Add a test checking overhead of -finfo-table-map
We want to make sure we don't end up with poor codegen performance resulting from
-finfo-table-map again as in #23103. This test adds a performance test tracking
total allocations while compiling ExactPrint with -finfo-table-map.
(cherry picked from commit d3e0124c1157a4a423d86a1dc1d7e82c6d32ef06)
- - - - -
a36e4c46 by Matthew Pickering at 2024-02-08T19:53:20+05:30
Add aarch64-deb11 bindist
This adds a debian 11 release job for aarch64.
Fixes #22005
(cherry picked from commit 02c87213e1215520d5496130a3082143f27035ae)
- - - - -
eda05046 by sheaf at 2024-02-08T19:53:20+05:30
Pass quantified tyvars in tcDefaultAssocDecl
This commit passes the correct set of quantified type variables written
by the user in associated type default declarations for validity
checking. This ensures that validity checking of associated type defaults
mirrors that of standalone type family instances.
Fixes #23768 (see testcase T23734 in subsequent commit)
(cherry picked from commit 5f826c180aa9b42ccb0af5763d87a48bee5e4083)
- - - - -
f8484716 by sheaf at 2024-02-08T19:53:20+05:30
Avoid panic in mkGADTVars
This commit avoids panicking in mkGADTVars when we encounter
a type variable as in #23784 that is bound by a user-written
forall but not actually used.
Fixes #23784
(cherry picked from commit aba184241a80e5abc804c4f22db91a16be215c11)
- - - - -
5181eda8 by sheaf at 2024-02-08T19:53:20+05:30
Adjust reporting of unused tyvars in data FamInsts
This commit adjusts the validity checking of data family
instances to improve the reporting of unused type variables.
See Note [Out of scope tvs in data family instances] in GHC.Tc.Validity.
The problem was that, in a situation such as
data family D :: Type
data instance forall (d :: Type). D = MkD
the RHS passed to 'checkFamPatBinders' would be the TyCon app
R:D d
which mentions the type variable 'd' quantified in the user-written
forall. Thus, when computing the set of unused type variables in
the RHS of the data family instance, we would find that 'd' is used,
and report a strange error message that would say that 'd' is not
bound on the LHS.
To fix this, we special-case the data-family instance case,
manually extracting all the type variables that appear in the
arguments of all the data constructores of the data family instance.
Fixes #23778
(cherry picked from commit a525a92a37cc202b6db09a827ba9df9eb8c9fa79)
- - - - -
931a0c34 by Antoine Leblanc at 2024-02-08T23:01:53+05:30
Be more eager in TyCon boot validity checking
This commit performs boot-file consistency checking for TyCons into
checkValidTyCl. This ensures that we eagerly catch any mismatches,
which prevents the compiler from seeing these inconsistencies and
panicking as a result.
See Note [TyCon boot consistency checking] in GHC.Tc.TyCl.
Fixes #16127
(cherry picked from commit 1420b8cb8a7d6196eec80dc5293864c780379560)
- - - - -
e7cf6437 by sheaf at 2024-02-08T23:01:53+05:30
Unused tyvars in FamInst: only report user tyvars
This commit changes how we perform some validity checking for
coercion axioms to mirror how we handle default declarations for
associated type families. This allows us to keep track of whether
type variables in type and data family instances were user-written
or not, in order to only report the user-written ones in
"unused type variable" error messages.
Consider for example:
{-# LANGUAGE PolyKinds #-}
type family F
type instance forall a. F = ()
In this case, we get two quantified type variables,
(k :: Type) and (a :: k); the second being user-written, but the first
is introduced by the typechecker. We should only report 'a' as being
unused, as the user has no idea what 'k' is.
Fixes #23734
(cherry picked from commit 28dd52eec98e50c711cd00df22f6ab9e054c8b75)
- - - - -
ebc725b2 by sheaf at 2024-02-08T23:01:53+05:30
Validity: refactor treatment of data families
This commit refactors the reporting of unused type variables in type
and data family instances to be more principled. This avoids ad-hoc
logic in the treatment of data family instances.
(cherry picked from commit 1eed645c8b03b19a14cf58d9be5317cb81cbd30a)
- - - - -
dcd8ca74 by Krzysztof Gogolewski at 2024-02-08T23:01:53+05:30
docs: fix ScopedTypeVariables example (#24101)
The previous example didn't compile.
Furthermore, it wasn't demonstrating the point properly.
I have changed it to an example which shows that 'a' in the signature
must be the same 'a' as in the instance head.
(cherry picked from commit 7a90020f167ab016cbfa95decafaa1a54a974bc6)
- - - - -
f47a95f2 by PHO at 2024-02-08T23:01:53+05:30
Don't assume the current locale is *.UTF-8, set the encoding explicitly
primops.txt contains Unicode characters:
LC_ALL=C ./genprimopcode --data-decl < ./primops.txt
genprimopcode: <stdin>: hGetContents: invalid argument (cannot decode byte sequence starting from 226)
Hadrian must also avoid using readFile' to read primops.txt because it
tries to decode the file with a locale-specific encoding.
(cherry picked from commit 52c0fc691e6501e99a96693ec1fc02e3c93a4fbc)
- - - - -
73600e14 by Simon Peyton Jones at 2024-02-08T23:01:53+05:30
Add an extra check in kcCheckDeclHeader_sig
Fix #24083 by checking for a implicitly-scoped type variable that is not
actually bound. See Note [Disconnected type variables] in GHC.Tc.Gen.HsType
For some reason, on aarch64-darwin we saw a 2.8% decrease in compiler
allocations for MultiLayerModulesTH_Make; but 0.0% on other architectures.
Metric Decrease:
MultiLayerModulesTH_Make
(cherry picked from commit 6dbab1808bfbe484b3fb396aab1d105314f918d8)
- - - - -
39179586 by Simon Peyton Jones at 2024-02-08T23:01:53+05:30
Second fix to #24083
My earlier fix turns out to be too aggressive for data/type families
See wrinkle (DTV1) in Note [Disconnected type variables]
(cherry picked from commit 2776920e642544477a38d0ed9205d4f0b48a782e)
(cherry picked from commit 110efc9813ba5f68668ab7fc3f95b9febca52880)
- - - - -
aa339700 by Matthew Pickering at 2024-02-08T23:01:53+05:30
libraries: Bump filepath to 1.4.200.1 and unix to 2.8.4.0
Updates filepath submodule
Updates unix submodule
Fixes #24240
(cherry picked from commit 36b9a38cc45a26865c4e45f4949e519a5dede76d)
- - - - -
4058ecba by Matthew Pickering at 2024-02-08T23:01:54+05:30
Submodule linter: Allow references to tags
We modify the submodule linter so that if the bumped commit is a
specific tag then the commit is accepted.
Fixes #24241
(cherry picked from commit 91ff0971df64b04938d011fe1562320c5d90849a)
- - - - -
ab835c3f by Matthew Craven at 2024-02-08T23:01:54+05:30
Fix loopification in the presence of void arguments
This also removes Note [Void arguments in self-recursive tail calls],
which was just misleading. It's important to count void args both
in the function's arity and at the call site.
Fixes #24295.
(cherry picked from commit ae9cc1a84c9f470b77d98423400e6dfa95b2449b)
- - - - -
275997f7 by Andreas Klebinger at 2024-02-08T23:01:54+05:30
Aarch64: Enable -mfma by default.
Fixes #24311
(cherry picked from commit 7e95f738620dc805868d198f980e1bdd53e27a2d)
- - - - -
bb4f3878 by Matthew Pickering at 2024-02-08T23:01:54+05:30
eventlog: Fix off-by-one error in postIPE
We were missing the extra_comma from the calculation of the size of the
payload of postIPE. This was causing assertion failures when the event
would overflow the buffer by one byte, as ensureRoomForVariable event
would report there was enough space for `n` bytes but then we would
write `n + 1` bytes into the buffer.
Fixes #24287
(cherry picked from commit 5776008c7a5581193c3e72e59451ad49abac9d81)
- - - - -
8fac10a2 by Jade at 2024-02-08T23:01:54+05:30
Enhance Documentation of functions exported by Data.Function
This patch aims to improve the documentation of functions exported
in Data.Function
Tracking: #17929
Fixes: #10065
(cherry picked from commit 1fa1c00c95325761a5aa914af53d71ba5e7072b3)
- - - - -
758ff906 by Jade at 2024-02-08T23:01:54+05:30
Improve documentation of hGetLine.
- Add explanation for whether a newline is returned
- Add examples
Fixes #14804
(cherry picked from commit ab47a43d64f6b7d4fc181645171c31ba2db1eebe)
- - - - -
5205b93d by sheaf at 2024-02-08T23:01:54+05:30
Fix FMA instruction on LLVM
We were emitting the wrong instructions for fused multiply-add
operations on LLVM:
- the instruction name is "llvm.fma.f32" or "llvm.fma.f64", not "fmadd"
- LLVM does not support other instructions such as "fmsub"; instead
we implement these by flipping signs of some arguments
- the instruction is an LLVM intrinsic, which requires handling it
like a normal function call instead of a machine instruction
Fixes #24223
(cherry picked from commit a40f4ab21bcc088e63892cd5e85edbec20d3fc69)
- - - - -
7ddb1418 by Hécate Moonlight at 2024-02-08T23:01:54+05:30
Clarification for newtype constructors when using `coerce`
(cherry picked from commit 699da01bbbf3e42c7d38b9cfe443dd0e8e256342)
- - - - -
4593f490 by Andreas Klebinger at 2024-02-08T23:01:54+05:30
Fix fma warning when using llvm on aarch64.
On aarch64 fma is always on so the +fma flag doesn't exist for that
target. Hence no need to try and pass +fma to llvm.
Fixes #24379
(cherry picked from commit 9294a08643b89509a0e0957cb73c186a39d4f3db)
- - - - -
10de6db4 by Patrick at 2024-02-08T23:01:54+05:30
Fix bug wrong span of nested_doc_comment #24378
close #24378
1. Update the start position of span in `nested_doc_comment` correctly.
and hence the spans of identifiers of haddoc can be computed correctly.
2. add test `HaddockSpanIssueT24378`.
(cherry picked from commit 8eeadfad3a0035f8c5b339782676ff23572e0e5e)
- - - - -
85ef42ce by sheaf at 2024-02-08T23:01:54+05:30
No shadowing warnings for NoFieldSelector fields
This commit ensures we don't emit shadowing warnings when a user
shadows a field defined with NoFieldSelectors.
Fixes #24381
(cherry picked from commit ced2e7312b692e3f5402e4db6cfec390653a6a06)
- - - - -
e59bae2a by Teo Camarasu at 2024-02-08T23:01:54+05:30
doc: Add -Dn flag to user guide
Resolves #24394
(cherry picked from commit 94ce031ddc84ee702c12a11793028ef21e65fa00)
- - - - -
81cb68aa by Rodrigo Mesquita at 2024-02-08T23:01:54+05:30
Work around autotools setting C11 standard in CC/CXX
In autoconf >=2.70, C11 is set by default for $CC and $CXX via the
-std=...11 flag. In this patch, we split the "-std" flag out of the $CC
and $CXX variables, which we traditionally assume to be just the
executable name/path, and move it to $CFLAGS/$CXXFLAGS instead.
Fixes #24324
(cherry picked from commit cdddeb0f1280b40cc194028bbaef36e127175c4c)
- - - - -
a7421910 by Zubin Duggal at 2024-02-08T23:01:54+05:30
driver: Really don't lose track of nodes when we fail to resolve cycles
This fixes a bug in 8db8d2fd1c881032b1b360c032b6d9d072c11723, where we could lose
track of acyclic components at the start of an unresolved cycle. We now ensure we
never loose track of any of these components.
As T24275 demonstrates, a "cyclic" SCC might not really be a true SCC:
When viewed without boot files, we have a single SCC
```
[REC main:T24275B [main:T24275B {-# SOURCE #-},
main:T24275A {-# SOURCE #-}]
main:T24275A [main:T24275A {-# SOURCE #-}]]
```
But with boot files this turns into
```
[NONREC main:T24275B {-# SOURCE #-} [],
REC main:T24275B [main:T24275B {-# SOURCE #-},
main:T24275A {-# SOURCE #-}]
main:T24275A {-# SOURCE #-} [main:T24275B],
NONREC main:T24275A [main:T24275A {-# SOURCE #-}]]
```
Note that this is truly not an SCC, as no nodes are reachable from T24275B.hs-boot.
However, we treat this entire group as a single "SCC" because it seems so when we
analyse the graph without taking boot files into account.
Indeed, we must return a single ResolvedCycle element in the BuildPlan for this
as described in Note [Upsweep].
However, since after resolving this is not a true SCC anymore, `findCycle` fails
to find a cycle and we have a sub-optimal error message as a result.
To handle this, I extended `findCycle` to not assume its input is an SCC, and to
try harder to find cycles in its input.
Fixes #24275
(cherry picked from commit 532993c8160d960f848e7abd401774b6879e3ee8)
- - - - -
ba0a5d95 by Matthew Pickering at 2024-02-08T23:01:54+05:30
distrib/configure: Fix typo in CONF_GCC_LINKER_OPTS_STAGE2 variable
Instead we were setting CONF_GCC_LINK_OPTS_STAGE2 which meant that we
were missing passing `--target` when invoking the linker.
Fixes #24414
(cherry picked from commit d309f4e7e37f3795c6d6b150c407d5a9b332854e)
- - - - -
b3300cb5 by Zubin Duggal at 2024-02-09T01:34:17+05:30
ci: Regenerate jobs.yaml
- - - - -
042d45dd by Zubin Duggal at 2024-02-09T13:28:50+05:30
ci: Mark PartialDownsweep and OldModLocation tests as fragile on js backend
- - - - -
55bbea03 by Rodrigo Mesquita at 2024-02-09T16:01:30+05:30
Suppress duplicate librares linker warning of new macOS linker
Fixes #24167
XCode 15 introduced a new linker which warns on duplicate libraries being
linked. To disable this warning, we pass -Wl,-no_warn_duplicate_libraries as
suggested by Brad King in CMake issue #25297.
This flag isn't necessarily available to other linkers on darwin, so we must
only configure it into the CC linker arguments if valid.
(cherry picked from commit e98051a5e7251390799f9fdead988c61d72e82e3)
- - - - -
74d6260a by Rodrigo Mesquita at 2024-02-09T16:02:03+05:30
testsuite: Encoding test witnesses recent iconv bug is fragile
A regression in the new iconv() distributed with XCode 15 and MacOS
Sonoma causes the test 'encoding004' to fail in the CP936 roundrip.
We mark this test as fragile until this is fixed upstream (rather than
broken, since previous versions of iconv pass the test)
See #24161
(cherry picked from commit c411c431e7ae1f0effbe9f9a624c7f9171d50f0a)
- - - - -
0f6116ca by Rodrigo Mesquita at 2024-02-09T16:02:12+05:30
testsuite: Update to LC_ALL=C no longer being ignored in darwin
MacOS seems to have fixed an issue where it used to ignore the variable
`LC_ALL` in program invocations and default to using Unicode.
Since the behaviour seems to be fixed to account for the locale
variable, we mark tests that were previously broken in spite of it as
fragile (since they now pass in recent macOS distributions)
See #24161
(cherry picked from commit ce7fe5a916d50f471812f4714615e13f557fe57a)
- - - - -
b746f8a8 by Rodrigo Mesquita at 2024-02-09T16:05:28+05:30
darwin: Fix single_module is obsolete warning
In XCode 15's linker, -single_module is the default and otherwise
passing it as a flag results in a warning being raised:
ld: warning: -single_module is obsolete
This patch fixes this warning by, at configure time, determining whether
the linker supports -single_module (which is likely false for all
non-darwin linkers, and true for darwin linkers in previous versions of
macOS), and using that information at runtime to decide to pass or not
the flag in the invocation.
Fixes #24168
(cherry picked from commit e6c803f702e8b09dfd0073b973b8afcd7071db50)
(cherry picked from commit 273f5a3fd392d528664d5661508cc0094e37ec0d)
- - - - -
0127a041 by Matthew Craven at 2024-02-19T13:53:39+05:30
Make 'wWarningFlagsDeps' include every WarningFlag
Fixes #24071.
(cherry picked from commit a2c0fff61afdb14b5f2624374aa5767e7b238ff4)
- - - - -
34e38b38 by Torsten Schmits at 2024-02-19T13:53:39+05:30
Fix several mistakes around free variables in iface breakpoints
Fixes #23612 , #23607, #23998 and #23666.
MR: !11026
The fingerprinting logic in `Iface.Recomp` failed lookups when processing decls containing breakpoints for two reasons:
* IfaceBreakpoint created binders for free variables instead of expressions
* When collecting free names for the dependency analysis for fingerprinting, breakpoint FVs were skipped
(cherry picked from commit d3874407df4223a5e14a43571f4cc344349a537d)
- - - - -
d07caf0e by Andrei Borzenkov at 2024-02-19T13:53:39+05:30
Add changelog entry for renaming tuples from (,,...,,) to Tuple<n> (24291)
(cherry picked from commit 69abc7869bc504631e445083704115fc8a5d29c8)
- - - - -
fe4a1d24 by Zubin Duggal at 2024-02-19T13:53:39+05:30
ci: Allow release-hackage-lint to fail
Otherwise it blocks the ghcup metadata pipeline from running.
(cherry picked from commit 2e88063500d7ef33c83bd2de8ca5c7818ffbb026)
- - - - -
b8b00b53 by Ben Gamari at 2024-02-19T13:53:39+05:30
rts/EventLog: Place eliminate duplicate strlens
Previously many of the `post*` implementations would first compute the
length of the event's strings in order to determine the event length.
Later we would then end up computing the length yet again in
`postString`. Now we instead pass the string length to `postStringLen`,
avoiding the repeated work.
(cherry picked from commit 325b7613ebb2ca012a8969e20d35e95bfccc2bba)
- - - - -
b5b22004 by Ben Gamari at 2024-02-19T13:53:39+05:30
rts/eventlog: Place upper bound on IPE string field lengths
The strings in IPE events may be of unbounded length. Limit the lengths
of these fields to 64k characters to ensure that we don't exceed the
maximum event length.
(cherry picked from commit 8aafa51cb714fb16989089d4bc1ea7e7eb50124c)
- - - - -
8bf88fa3 by Zubin Duggal at 2024-02-19T13:53:39+05:30
rts: drop unused postString function
(cherry picked from commit 0e60d52cc7e261da11c37bd649511584d92a688b)
- - - - -
2dc75024 by Simon Peyton Jones at 2024-02-19T13:53:39+05:30
Make decomposeRuleLhs a bit more clever
This fixes #24370 by making decomposeRuleLhs undertand
dictionary /functions/ as well as plain /dictionaries/
(cherry picked from commit ca2e919ecca35db412e772d7eadd6a7c4fb20e4b)
- - - - -
b1bd2eed by ARATA Mizuki at 2024-02-19T13:53:39+05:30
Support 128-bit SIMD on AArch64 via LLVM backend
(cherry picked from commit 015886ec78e598f850c4202efdee239bac63b8c7)
- - - - -
5396d8ce by ARATA Mizuki at 2024-02-19T13:53:39+05:30
x86: Don't require -mavx2 when using 256-bit floating-point SIMD primitives
Fixes #24222
(cherry picked from commit 7d9a2e44e8cce00e24671325aebe47d9e529aee5)
- - - - -
2b9b7e77 by Ben Gamari at 2024-02-19T13:53:39+05:30
Fix thunk update ordering
Previously we attempted to ensure soundness of concurrent thunk update
by synchronizing on the access of the thunk's info table pointer field.
This was believed to be sufficient since the indirectee (which may
expose a closure allocated by another core) would not be examined
until the info table pointer update is complete.
However, it turns out that this can result in data races in the presence
of multiple threads racing a update a single thunk. For instance,
consider this interleaving under the old scheme:
Thread A Thread B
--------- ---------
t=0 Enter t
1 Push update frame
2 Begin evaluation
4 Pause thread
5 t.indirectee=tso
6 Release t.info=BLACKHOLE
7 ... (e.g. GC)
8 Resume thread
9 Finish evaluation
10 Relaxed t.indirectee=x
11 Load t.info
12 Acquire fence
13 Inspect t.indirectee
14 Release t.info=BLACKHOLE
Here Thread A enters thunk `t` but is soon paused, resulting in `t`
being lazily blackholed at t=6. Then, at t=10 Thread A finishes
evaluation and updates `t.indirectee` with a relaxed store.
Meanwhile, Thread B enters the blackhole. Under the old scheme this
would introduce an acquire-fence but this would only synchronize with
Thread A at t=6. Consequently, the result of the evaluation, `x`, is not
visible to Thread B, introducing a data race.
We fix this by treating the `indirectee` field as we do all other
mutable fields. This means we must always access this field with
acquire-loads and release-stores.
See #23185.
(cherry picked from commit 9a52ae46a33b490161e1e3e1cc70caa46c60488a)
(cherry picked from commit 88afc6ea885d54523efbbb764f3435a147b799a5)
- - - - -
92239ede by Florian Weimer at 2024-02-20T13:38:04+05:30
Fix C output for modern C initiative
GCC 14 on aarch64 rejects the C code written by GHC with this kind of
error:
error: assignment to ‘ffi_arg’ {aka ‘long unsigned int’} from ‘HsPtr’ {aka ‘void *’} makes integer from pointer without a cast [-Wint-conversion]
68 | *(ffi_arg*)resp = cret;
| ^
Add the correct cast.
For more information on this see:
https://fedoraproject.org/wiki/Changes/PortingToModernC
Tested-by: Richard W.M. Jones
(cherry picked from commit 1f534c2e7388273e70534680212c1357614c11ed)
- - - - -
d13e2e8f by Fendor at 2024-02-20T19:36:34+05:30
Prefer RdrName over OccName for looking up locations in doc renaming step
Looking up by OccName only does not take into account when functions are
only imported in a qualified way.
Fixes issue #24294
Bump haddock submodule to include regression test
(cherry picked from commit b57200de601e4ef6827727176611d7192016b8b2)
- - - - -
e0e4fb95 by Andrew Lelechenko at 2024-02-20T19:36:34+05:30
Bump submodule text to 2.1.1
T17123 allocates less because of improvements to Data.Text.concat in 1a6a06a.
Metric Decrease:
T17123
(cherry picked from commit 56e3f097fa7205f77e7903af345ed3798ecb039e)
- - - - -
ba1064a1 by Matthew Craven at 2024-02-20T19:36:34+05:30
Bump bytestring submodule to something closer to 0.12.1
...mostly so that 16d6b7e835ffdcf9b894e79f933dd52348dedd0c
(which reworks unaligned writes in Builder) and the stuff in
https://github.com/haskell/bytestring/pull/631 can see wider testing.
The less-terrible code for unaligned writes used in Builder on
hosts not known to be ulaigned-friendly also takes less effort
for GHC to compile, resulting in a metric decrease for T21839c
on some platforms.
The metric increase on T21839r is caused by the unrelated commit
750dac33465e7b59100698a330b44de7049a345c. It perhaps warrants
further analysis and discussion (see #23822) but is not critical.
Metric Decrease:
T21839c
Metric Increase:
T21839r
(cherry picked from commit 27020458220da55f52f1f94c42a6ae7b4f321387)
- - - - -
049d5239 by Matthew Craven at 2024-02-20T19:36:34+05:30
Bump bytestring submodule to 0.12.1.0
(cherry picked from commit 5d3f786264db88a758ae65277c1b8d7f37f2e460)
- - - - -
9a192bc1 by Matthew Pickering at 2024-02-20T19:36:34+05:30
driver: Check transitive closure of haskell package dependencies when deciding whether to relink
We were previously just checking whether direct package dependencies had
been modified. This caused issues when compiling without optimisations
as we wouldn't relink the direct dependency if one of its dependenices
changed.
Fixes #23724
(cherry picked from commit 291d81aef8083290da0d2ce430fbc5e5a33bdb6e)
- - - - -
87790f48 by Cheng Shao at 2024-02-20T19:36:34+05:30
Fix genapply for cross-compilation by nuking fragile CPP logic
This commit fixes incorrectly built genapply when cross compiling
(#24347) by nuking all fragile CPP logic in it from the orbit. All
target-specific info are now read from DerivedConstants.h at runtime,
see added note for details. Also removes a legacy Makefile and adds
haskell language server support for genapply.
(cherry picked from commit dd4af0e5a4a3af208bdf57e8237d85261eef24f7)
(cherry picked from commit ee800873f62fac8c67cb7034f942a1ed6b72c032)
- - - - -
1e695750 by Cheng Shao at 2024-02-20T19:36:34+05:30
rts: enable wasm32 register mapping
The wasm backend didn't properly make use of all Cmm global registers
due to #24347. Now that it is fixed, this patch re-enables full
register mapping for wasm32, and we can now generate smaller & faster
wasm modules that doesn't always spill arguments onto the stack. Fixes #22460 #24152.
(cherry picked from commit 0cda2b8b15cdbc44c45ffa36a37ed8c2fe8b8b9c)
(cherry picked from commit f1f5068b398b1effb837add38ecc5303dc9a381f)
- - - - -
f60cf966 by Matthew Pickering at 2024-02-20T23:50:08+05:30
testsuite: Fix T21097b test with make 4.1 (deb9)
cee81370cd6ef256f66035e3116878d4cb82e28b recently added a test which
failed on deb9 because the version of make was emitting the recipe
failure to stdout rather than stderr.
One way to fix this is to be more precise in the test about which part
of the output we care about inspecting.
(cherry picked from commit bad3765668cc5badf5d0a19100fac95125985473)
- - - - -
bfe59b88 by Zubin Duggal at 2024-02-20T23:50:08+05:30
Prepare release 9.8.2
Metric Decrease:
T13386
- - - - -
f15dd7bd by Zubin Duggal at 2024-02-21T14:10:08+05:30
testsuite: Mark linker_unload_native as fragile
See #23993. This test is fragile on Alpine (dynamic) but we don't have a way
to mark it as fragile on only that platform, so marking it as fragile on all
platforms.
(cherry picked from commit 6819b70a7739205a75f0b4fefcfcc9fdab39cab9)
- - - - -
2eca9c7a by Ben Gamari at 2024-02-22T18:31:44+05:30
hadrian: Generate HSC2HS_EXTRAS variable in bindist installation
We must generate the hsc2hs wrapper at bindist installation time since
it must contain `--lflag` and `--cflag` arguments which depend upon the
installation path.
The solution here is to substitute these variables in the configure
script (see mk/hsc2hs.in). This is then copied over a dummy wrapper in
the install rules.
Fixes #24050.
(cherry picked from commit efcbad2dfd242d0bc2c91da5390fe8456a536cc3)
- - - - -
d5246e19 by Matthew Pickering at 2024-02-22T18:31:58+05:30
ci: Show --info for installed compiler
(cherry picked from commit c540559cf188625bec668fa6cd94d4f94413d730)
- - - - -
f3225ed4 by Zubin Duggal at 2024-02-22T23:42:18+05:30
Accept change in MultiLayerModulesTH_Make
This test is flaky on darwin
Metric Decrease:
MultiLayerModulesTH_Make
- - - - -
1c08e245 by Ben Gamari at 2024-02-23T12:31:12+05:30
testsuite: Ignore stderr in T8089
Otherwise spurious "Killed: 9" messages to stderr may cause the test to fail.
Fixes #24361.
(cherry picked from commit e693a4e8589bad35588c51fccc87f4388e7d5874)
- - - - -
9cb7e73a by Sebastian Graf at 2024-05-06T15:11:25+02:00
exprIsTrivial: Factor out shared implementation
The duplication between `exprIsTrivial` and `getIdFromTrivialExpr_maybe` has
been bugging me for a long time.
This patch introduces an inlinable worker function `trivial_expr_fold` acting
as the single, shared decision procedure of triviality. It "returns" a
Church-encoded `Maybe (Maybe Id)`, so when it is inlined, it fuses to similar
code as before.
(Better code, even, in the case of `getIdFromTrivialExpr` which presently
allocates a `Just` constructor that cancels away after this patch.)
- - - - -
78a25354 by Sebastian Graf at 2024-05-07T09:25:04+02:00
Some cherry-picked bits of 59202c8 to fix #24718
As noted in f3225ed4b3f3c4, the test below is flaky on Darwin.
Metric Decrease:
MultiLayerModulesTH_Make
- - - - -
83126193 by Ben Gamari at 2024-09-29T12:05:28-04:00
Bump stm submodule to v2.5.3.1
- - - - -
c2c85f36 by Andrew Lelechenko at 2024-09-29T12:05:28-04:00
Bump submodule deepseq to 1.5.1.0
(cherry picked from commit 8e462f4d4bdf2a6c34c249e7be8084565600d300)
- - - - -
af73ed1e by Cheng Shao at 2024-09-29T12:05:28-04:00
rts: ensure gc_thread/gen_workspace is allocated with proper alignment
gc_thread/gen_workspace are required to be aligned by 64 bytes.
However, this property has not been properly enforced before, and
numerous alignment violations at runtime has been caught by
UndefinedBehaviorSanitizer that look like:
```
rts/sm/GC.c:1167:8: runtime error: member access within misaligned address 0x0000027a3390 for type 'gc_thread' (aka 'struct gc_thread_'), which requires 64 byte alignment
0x0000027a3390: note: pointer points here
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
^
SUMMARY: UndefinedBehaviorSanitizer: undefined-behavior rts/sm/GC.c:1167:8
rts/sm/GC.c:1184:13: runtime error: member access within misaligned address 0x0000027a3450 for type 'gen_workspace' (aka 'struct gen_workspace_'), which requires 64 byte alignment
0x0000027a3450: note: pointer points here
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
^
SUMMARY: UndefinedBehaviorSanitizer: undefined-behavior rts/sm/GC.c:1184:13
```
This patch fixes the gc_thread/gen_workspace misalignment issue by
explicitly allocating them with alignment constraint.
- - - - -
5b2b8321 by Cheng Shao at 2024-09-29T12:05:28-04:00
rts: fix an unaligned load in nonmoving gc
This patch fixes an unaligned load in nonmoving gc by ensuring the
closure address is properly untagged first before attempting to
prefetch its header. The unaligned load is reported by
UndefinedBehaviorSanitizer:
```
rts/sm/NonMovingMark.c:921:9: runtime error: member access within misaligned address 0x0042005f3a71 for type 'StgClosure' (aka 'struct StgClosure_'), which requires 8 byte alignment
0x0042005f3a71: note: pointer points here
00 00 00 98 43 13 8e 12 7f 00 00 50 3c 5f 00 42 00 00 00 58 17 b7 92 12 7f 00 00 89 cb 5e 00 42
^
SUMMARY: UndefinedBehaviorSanitizer: undefined-behavior rts/sm/NonMovingMark.c:921:9
```
This issue had previously gone unnoticed since it didn't really harm
runtime correctness, the invalid header address directly loaded from a
tagged pointer is only used as prefetch address and will not cause
segfaults. However, it still should be corrected because the prefetch
would be rendered useless by this issue, and untagging only involves a
single bitwise operation without memory access so it's cheap enough to
add.
- - - - -
83341bbc by Cheng Shao at 2024-09-29T12:05:28-04:00
rts: use __builtin_offsetof to implement STG_FIELD_OFFSET
This patch fixes the STG_FIELD_OFFSET macro definition by using
__builtin_offsetof, which is what gcc/clang uses to implement offsetof
in standard C. The previous definition that uses NULL pointer involves
subtle undefined behavior in C and thus reported by
UndefinedBehaviorSanitizer as well:
```
rts/Capability.h:243:58: runtime error: member access within null pointer of type 'Capability' (aka 'struct Capability_')
SUMMARY: UndefinedBehaviorSanitizer: undefined-behavior rts/Capability.h:243:58
```
- - - - -
dea8a144 by Cheng Shao at 2024-09-29T12:05:28-04:00
rts: fix checkClosure error message
This patch fixes an error message in checkClosure() when the closure
has already been evacuated. The previous logic was meant to print the
evacuated closure's type in the error message, but it was completely
wrong, given info was not really an info table, but a tagged pointer
that points to the closure's new address.
- - - - -
96a15414 by Andrew Lelechenko at 2024-09-29T12:05:28-04:00
Bump submodule array to 0.5.8.0
(cherry picked from commit 80769bc9f56541601796366485283a697c52a18b)
- - - - -
d5e89136 by Matthew Pickering at 2024-09-29T12:05:28-04:00
ci: Fix variable inheritence for ghcup-metadata testing job
Downstream in ghcup-ci we use the CONFIGURE_ARGS variable to determine
how to setup all the different jobs.
On the downstream trigger this was being inherited from the default
setting in .gitlab.yml file.
Therefore this led to job failures as the necessary CONFIGURE_ARGS were
not being passed to the configure script when installing the bindist.
See docs:
* https://docs.gitlab.com/ee/ci/yaml/#inherit
* https://docs.gitlab.com/ee/ci/yaml/#triggerforward
1. inherit:variables:fals
- This stops the global variables being inherited into the job and
hence forwarded onto the downstream job.
2. trigger:forward:*
- yaml_variables: true (default) pass yaml variables to downstream,
this is important to pass the upstream pipeline id to downstream.
- pipeline_variables: false (default) but don't pass pipeline
variables (normal environment variables).
Fixes #25294
(cherry picked from commit 7cb7172eff9e18ed1c98f65a98018f76c4fcc9f6)
- - - - -
bcfa1a51 by Sylvain Henry at 2024-09-29T12:05:28-04:00
Fix interaction between fork and kqueue (#24672)
A kqueue file descriptor isn't inherited by a child created with fork.
As such we mustn't try to close this file descriptor as we would close a
random one, e.g. the one used by timerfd.
Fix #24672
(cherry picked from commit e7a26d7a6faf1ea534e036c5085a0a027dbb6f5f)
- - - - -
e34c4192 by Sylvain Henry at 2024-09-29T12:05:28-04:00
JS: support rubbish static literals (#25177)
Support for rubbish dynamic literals was added in #24664. This patch
does the same for static literals.
Fix #25177
(cherry picked from commit 5092dbff750ee5b6fd082b7eed8574922a2b0bf4)
- - - - -
1d3bd636 by Sylvain Henry at 2024-09-29T12:05:28-04:00
AARCH64 linker: skip NONE relocations
This patch is part of the patches upstreamed from haskell.nix.
See https://github.com/input-output-hk/haskell.nix/pull/1960 for the
original report/patch.
(cherry picked from commit c749bdfd3e21d712dc2b966482eb010165bdeebe)
- - - - -
b060a7a7 by Sylvain Henry at 2024-09-29T12:05:28-04:00
Cmm: don't perform unsound optimizations on 32-bit compiler hosts
- beef61351b240967b49169d27a9a19565cf3c4af enabled the use of
MO_Add/MO_Sub for 64-bit operations in the C and LLVM backends
- 6755d833af8c21bbad6585144b10e20ac4a0a1ab did the same for the x86 NCG
backend
However we store some literal values as `Int` in the compiler. As a
result, some Cmm optimizations transformed target 64-bit literals into
compiler `Int`. If the compiler is 32-bit, this leads to computing with
wrong literals (see #24893 and #24700).
This patch disables these Cmm optimizations for 32-bit compilers. This
is unsatisfying (optimizations shouldn't be compiler-word-size
dependent) but it fixes the bug and it makes the patch easy to backport.
A proper fix would be much more invasive but it shall be implemented in
the future.
Co-authored-by: amesgen
(cherry picked from commit 7446a09a2d5b04b95cd43c03659b5647853124ce)
- - - - -
532c5abf by sheaf at 2024-09-29T12:05:28-04:00
GHCi debugger: drop record name spaces for Ids
When binding new local variables at a breakpoint, we should create
Ids with variable namespace, and not record field namespace. Otherwise
the rest of the compiler falls over because the IdDetails are wrong.
Fixes #25109
(cherry picked from commit c29b2b5a77611b2bd6c3089765079bc43aec3e22)
- - - - -
eb0e402c by Sylvain Henry at 2024-09-29T12:05:28-04:00
Only lookup ghcversion.h file in the RTS include-dirs by default.
The code was introduced in 3549c952b535803270872adaf87262f2df0295a4.
It used `getPackageIncludePath` which name doesn't convey that it looks
into all include paths of the preload units too. So this behavior is
probably unintentional and it should be ok to change it.
Fix #25106
(cherry picked from commit f954f42823f6ca3588425a0d543d93ace86d89e4)
- - - - -
98c7e1bb by Simon Peyton Jones at 2024-09-29T12:05:28-04:00
Address #25055, by disabling case-of-runRW# in Gentle phase
See Note [Case-of-case and full laziness]
in GHC.Driver.Config.Core.Opt.Simplify
(cherry picked from commit de5d9852dbdd367611bf9e45e69c723d26351992)
- - - - -
9524086e by doyougnu at 2024-09-29T12:05:28-04:00
Rts linker: add case for pc-rel 64 relocation
part of the upstream haskell.nix patches
(cherry picked from commit bfe4b3d3bbb98b39169fad063c6c32f06d167756)
- - - - -
a7b9f6c8 by Ben Gamari at 2024-09-29T12:05:28-04:00
Accept performance shifts
Metric Decrease:
MultiLayerModulesTH_Make
- - - - -
ed8f2c53 by Ben Gamari at 2024-09-29T12:05:41-04:00
docs: Add release notes for 9.8.3
- - - - -
4cbf2581 by Andreas Klebinger at 2024-09-29T12:05:41-04:00
Fix -freg-graphs for FP and AARch64 NCG (#24941).
It seems we reserve 8 registers instead of four for global regs
based on the layout in Note [AArch64 Register assignments].
I'm not sure it's neccesary, but for now we just accept this state of
affairs and simple update -fregs-graph to account for this.
(cherry picked from commit 3f89ab92da74c4ed45da68fe92ff81e7b9caa53d)
- - - - -
a8804baf by Peter Trommler at 2024-09-29T12:05:41-04:00
PPC NCG: Fix sign hints in C calls
Sign hints for parameters are in the second component of the pair.
Fixes #23034
(cherry picked from commit 7fe85b1354a13749f14d588e3cc742b8ae2d8da9)
- - - - -
b41a5f1b by Ben Gamari at 2024-09-29T12:05:41-04:00
X86 NCG: Fix argument promotion in foreign C calls
Promote 8 bit and 16 bit signed arguments by sign extension.
Fixes #25018
(cherry picked from commit a82121b3b6fdc2ac47211f71871b3ab21e5f6276)
- - - - -
8efa9643 by Sylvain Henry at 2024-09-29T12:05:41-04:00
Linker: use m32 allocator for sections when NEED_PLT (#24432)
Use M32 allocator to avoid fragmentation when allocating ELF sections.
We already did this when NEED_PLT was undefined. Failing to do this led
to relocations impossible to fulfil (#24432).
(cherry picked from commit 5104ee615503617a1c124fe1d92f6aa2d263b7d0)
- - - - -
0b4a9b9c by Sylvain Henry at 2024-09-29T12:05:41-04:00
RTS: allow M32 allocation outside of 4GB range when assuming -fPIC
(cherry picked from commit 52d6698479f951e07def237b0474ee22d27e621a)
- - - - -
615e6061 by Sylvain Henry at 2024-09-29T12:05:41-04:00
Linker: fix stub offset
Remove unjustified +8 offset that leads to memory corruption (cf
discussion in #24432).
(cherry picked from commit c34fef56367142fa55e9861092f64cc7b9946fa1)
- - - - -
54c5f12f by Cheng Shao at 2024-09-29T12:05:41-04:00
compiler: emit NaturallyAligned when element type & index type are the same width
This commit fixes a subtle mistake in alignmentFromTypes that used to
generate Unaligned when element type & index type are the same width.
Fixes #24930.
(cherry picked from commit 0cff083abb24701530974872b21cf897c9955a9a)
- - - - -
43e73dfb by Andreas Klebinger at 2024-09-29T12:05:41-04:00
GHCi interpreter: Tag constructor closures when possible.
When evaluating PUSH_G try to tag the reference we are pushing if it's a
constructor. This is potentially helpful for performance and required to
fix #24870.
(cherry picked from commit 1bfa91115b8320ed99a5e946147528e21ca4f3e1)
- - - - -
8e4198ad by crumbtoo at 2024-09-29T12:05:41-04:00
user_guide: Fix typo in MultiWayIf chapter
Close #24829
(cherry picked from commit c5e00c35927d574f71bf77449817b131d1749750)
- - - - -
e5ae07d4 by Ryan Scott at 2024-09-29T12:05:41-04:00
Add missing parenthesizePat in cvtp
We need to ensure that the output of `cvtp` is parenthesized (at precedence
`sigPrec`) so that any pattern signatures with a surrounding pattern signature
can parse correctly.
Fixes #24837.
(cherry picked from commit a3cd3a1d0d186f2aa4d0273c6b3e74a442de2ef0)
- - - - -
80cc3668 by Sylvain Henry at 2024-09-29T12:05:41-04:00
Reverse arguments to stgCallocBytes (fix #24828)
(cherry picked from commit 6838a7c32ca29b5d44adc9d6280d3a960f31be7c)
- - - - -
76d4aaa3 by Teo Camarasu at 2024-09-29T12:05:41-04:00
doc: Fix type error in hs_try_putmvar example
(cherry picked from commit 06f7db4001e4eee0f3076d949876f8f4af0eb6fb)
- - - - -
986f7b48 by Matthew Craven at 2024-09-29T12:05:41-04:00
Add test cases for #24664
...since none are present in the original MR !12463 fixing this issue.
(cherry picked from commit a19201d42cfd3aa54faeb1b5a95b715b9a67a01a)
- - - - -
a1635569 by Zubin Duggal at 2024-09-29T12:05:41-04:00
compiler: Fingerprint -fwrite-if-simplified-core
We need to recompile if this flag is changed because later modules might depend on the
simplified core for this module if -fprefer-bytecode is enabled.
Fixes #24656
(cherry picked from commit dddc9dff0547733a10e7f505612ab9df3a7c21b6)
- - - - -
e6063183 by Sylvain Henry at 2024-09-29T12:05:41-04:00
JS: correctly handle RUBBISH literals (#24664)
(cherry picked from commit daeda83478d5b800d29661408dd67cc4b23df374)
- - - - -
0a1b9687 by Matthew Pickering at 2024-09-29T12:05:41-04:00
Don't depend on registerPackage function in Cabal
More recent versions of Cabal modify the behaviour of libAbiHash which
breaks our usage of registerPackage.
It is simpler to inline the part of registerPackage that we need and
avoid any additional dependency and complication using the higher-level
function introduces.
(cherry picked from commit 3fff09779d5830549ae455a15907b7bb9fe7859a)
- - - - -
e34ba65f by Teo Camarasu at 2024-09-29T12:05:41-04:00
Fix ghc API link in docs/index.html
This was missing part of the unit ID meaning it would 404.
Resolves #24674
(cherry picked from commit f30e4984fb048818051465698ef8e4e20dacb577)
- - - - -
2459880b by Torsten Schmits at 2024-09-30T10:01:24-04:00
refactor quadratic search in warnMissingHomeModules
(cherry picked from commit bc672166acd8f2815d58b6d214e69373abec4486)
- - - - -
e3007eea by Simon Peyton Jones at 2024-09-30T10:19:37-04:00
Track in-scope variables in ruleCheckProgram
This small patch fixes #24726, by tracking in-scope variables
properly in -drule-check. Not hard to do!
(cherry picked from commit be1e60eec0ec37da41643af17d78c698ab2a7083)
- - - - -
d3e48ec3 by Simon Peyton Jones at 2024-09-30T10:19:38-04:00
Add a couple more HasCallStack constraints in SimpleOpt
Just for debugging, no effect on normal code
(cherry picked from commit 58408c77f126e685969756d30e050d308fea3786)
- - - - -
f330b422 by Simon Peyton Jones at 2024-09-30T10:29:29-04:00
Use HasDebugCallStack, rather than HasCallStack
(cherry picked from commit e56871861c8a531feaa1a24e37fb56ba6c8cc690)
- - - - -
7fed4765 by Simon Peyton Jones at 2024-09-30T14:15:22-04:00
Don't generate wrappers for `type data` constructors with StrictData
Previously, the logic for checking if a data constructor needs a wrapper or not
would take into account whether the constructor's fields have explicit
strictness (e.g., `data T = MkT !Int`), but the logic would _not_ take into
account whether `StrictData` was enabled. This meant that something like `type
data T = MkT Int` would incorrectly generate a wrapper for `MkT` if
`StrictData` was enabled, leading to the horrible errors seen in #24620. To fix
this, we disable generating wrappers for `type data` constructors altogether.
Fixes #24620.
Co-authored-by: Ryan Scott
(cherry picked from commit 5e4f4ba835fd24135759ee7a2d0d5c636a8a1505)
- - - - -
491ec3a9 by Andreas Klebinger at 2024-09-30T14:15:43-04:00
NCG: Fix a bug where we errounously removed a required jump instruction.
Add a new method to the Instruction class to check if we can eliminate a
jump in favour of fallthrough control flow.
Fixes #24507
(cherry picked from commit 0fe2b410ac0d8951f07ffcc9f3c6c97bc312df48)
- - - - -
692474e0 by Matthew Pickering at 2024-09-30T14:16:08-04:00
Fix off by one error in seekBinNoExpand and seekBin
(cherry picked from commit 28009fbc26e4aca7a3b05cedb60c5c9baa31223d)
- - - - -
ddf9da28 by Ben Gamari at 2024-09-30T14:16:54-04:00
Fix type of _get_osfhandle foreign import
Fixes #24601.
(cherry picked from commit f8f384a8cc7212284379d109f6dc78c6188f3f18)
- - - - -
bcdf3e2c by Sylvain Henry at 2024-09-30T16:10:28-04:00
JS: reenable h$appendToHsString optimization (#24495)
The optimization introducing h$appendToHsString wasn't kicking in
anymore (while it did in 9.8.1) because of the changes introduced in #23270 (7e0c8b3bab30).
This patch reenables the optimization by matching on case-expression, as
done in Cmm for unpackCString# standard thunks.
The test is also T24495 added in the next commits (two commits for ease
of backporting to 9.8).
(cherry picked from commit b36ee57bfbecc628b7f0919e1e59b7066495034f)
- - - - -
e16be40c by Luite Stegeman at 2024-09-30T16:10:28-04:00
Update correct counter in bumpTickyAllocd
(cherry picked from commit 0c4a96862081f03e2946a2ed7e80c108f06205a1)
- - - - -
10a6aa18 by Rodrigo Mesquita at 2024-09-30T16:10:28-04:00
configure: Use LDFLAGS when trying linkers
A user may configure `LDFLAGS` but not `LD`. When choosing a linker, we
will prefer `ldd`, then `ld.gold`, then `ld.bfd` -- however, we have to
check for a working linker. If either of these fail, we try the next in
line.
However, we were not considering the `$LDFLAGS` when checking if these
linkers worked. So we would pick a linker that does not support the
current $LDFLAGS and fail further down the line when we used that linker
with those flags.
Fixes #24565, where `LDFLAGS=-Wl,-z,pack-relative-relocs` is not
supported by `ld.gold` but that was being picked still.
(cherry picked from commit 32a8103f3b3e22907fdd67b69c919c5251d8cc20)
- - - - -
067aa6e0 by Zubin Duggal at 2024-09-30T16:10:28-04:00
driver: Make `checkHomeUnitsClosed` faster
The implementation of `checkHomeUnitsClosed` was traversing every single path
in the unit dependency graph - this grows exponentially and quickly grows to be
infeasible on larger unit dependency graphs.
Instead we replace this with a faster implementation which follows from the
specificiation of the closure property - there is a closure error if there are
units which are both are both (transitively) depended upon by home units and
(transitively) depend on home units, but are not themselves home units.
To compute the set of units required for closure, we first compute the closure
of the unit dependency graph, then the transpose of this closure, and find all
units that are reachable from the home units in the transpose of the closure.
(cherry picked from commit a933aff37992ea311a60be878379e7abf650e9fb)
- - - - -
b0a30ae7 by Cheng Shao at 2024-09-30T16:10:28-04:00
rts: fix clang compilation on aarch64
This patch fixes function prototypes in ARMOutlineAtomicsSymbols.h
which causes "error: address argument to atomic operation must be a
pointer to _Atomic type" when compiling with clang on aarch64.
(cherry picked from commit 7db8c9927fae3369fc4ecff68f80c4cb32eea757)
- - - - -
ad7b46e7 by Cheng Shao at 2024-09-30T16:10:28-04:00
libffi-tarballs: bump libffi-tarballs submodule to libffi 3.4.6
This commit bumps the libffi-tarballs submodule to libffi 3.4.6, which
includes numerous upstream libffi fixes, especially
https://github.com/libffi/libffi/issues/760.
(cherry picked from commit 810660b780e1111b36c91326bcd0041e1f62706b)
- - - - -
66148140 by Teo Camarasu at 2024-09-30T16:10:28-04:00
rts: avoid checking bdescr of value outside of Haskell heap
In nonmovingTidyWeaks we want to check if the key of a weak pointer
lives in the non-moving heap. We do this by checking the flags of the
block the key lives in. But we need to be careful with values that live
outside the Haskell heap, since they will lack a block descriptor and
looking for one may lead to a segfault. In this case we should just
accept that it isn't on the non-moving heap.
Resolves #24492
(cherry picked from commit 74b24a9b0084459b8aa426a502956bd332b4d0fb)
- - - - -
894710fb by Rodrigo Mesquita at 2024-09-30T16:10:28-04:00
configure: Do not override existing linker flags in FP_LD_NO_FIXUP_CHAINS
(cherry picked from commit 9460d5044b8c7239fb7a6ce875d084617f159c7f)
- - - - -
5b3dc9c4 by Zubin Duggal at 2024-09-30T16:10:28-04:00
rel-eng/fetch-gitlab.py: Fix name of aarch64 alpine 3_18 release job
(cherry picked from commit f3de8a3c6f25b2c7eeb2ec6da95be24eeb496914)
- - - - -
98b04cea by Andreas Klebinger at 2024-09-30T16:10:28-04:00
x86-ncg: Fix fma codegen when arguments are globals
Fix a bug in the x86 ncg where results would be wrong when the desired output
register and one of the input registers were the same global.
Also adds a tiny optimization to make use of the memory addressing
support when convenient.
Fixes #24496
(cherry picked from commit 82ccb8012ba532f0fa06dc6ff96d33217560088a)
- - - - -
69ed198f by Ian-Woo Kim at 2024-09-30T16:10:28-04:00
Add missing BCO handling in scavenge_one.
(cherry picked from commit 902ebcc2b95707319d37a19d6b23c342cc14b162)
- - - - -
db376284 by Matthew Craven at 2024-09-30T16:10:28-04:00
Add @since annotation to Data.Data.mkConstrTag
(cherry picked from commit 249caf0d2345ac2e6046847522bb8f2fff7f8835)
- - - - -
2c18ff79 by Vladislav Zavialov at 2024-09-30T16:10:28-04:00
Fix (~) and (@) infix operators in TH splices (#23748)
8168b42a "Whitespace-sensitive bang patterns" allows GHC to accept
the following infix operators:
a ~ b = ()
a @ b = ()
But not if TH is used to generate those declarations:
$([d| a ~ b = ()
a @ b = ()
|])
-- Test.hs:5:2: error: [GHC-55017]
-- Illegal variable name: ‘~’
-- When splicing a TH declaration: (~_0) a_1 b_2 = GHC.Tuple.Prim.()
This is easily fixed by modifying `reservedOps` in GHC.Utils.Lexeme
(cherry picked from commit 46fd8ced0cc031f2e50a1a4b348738fd39b4a741)
- - - - -
c6a95d27 by Jade at 2024-09-30T16:10:29-04:00
Enhance documentation of Data.Complex
(cherry picked from commit cdd939e77f2bb20f80310280400b3426598b4eca)
- - - - -
930eb181 by Matthew Craven at 2024-10-03T11:30:15-04:00
testsuite: Give the pre_cmd for mhu-perf more time
(cherry picked from commit dba03aababff057c03e2d92677de02d8375cd23a)
- - - - -
0c24f3e2 by Cheng Shao at 2024-10-03T11:30:15-04:00
testsuite: give pre_cmd for mhu-perf 5x time
(cherry picked from commit 0820750140af2972ca254a42c0fdc537f3b7c447)
- - - - -
6bd62051 by Ben Gamari at 2024-10-03T18:16:53-04:00
Accept performance shifts
MultiLayerModulesTH_Make performance regresses considerably, but
bizarrely only on Darwin.
Metric Increase:
MultiLayerModulesTH_Make
- - - - -
fede0d99 by Teo Camarasu at 2024-10-04T16:05:22-04:00
rts: only collect live words in nonmoving census when non-concurrent
This avoids segfaults when the mutator modifies closures as we examine
them.
Resolves #24393
(cherry picked from commit 84357d1143fe4f9076253160f78fac6c2acc8e5b)
- - - - -
47182b77 by Andreas Klebinger at 2024-10-04T16:05:22-04:00
Fix ffi callbacks with >6 args and non-64bit args.
Check for ptr/int arguments rather than 64-bit width arguments when counting
integer register arguments.
The old approach broke when we stopped using exclusively W64-sized types to represent
sub-word sized integers.
Fixes #24314
(cherry picked from commit de589554386fc173a9019922851c05bb727e3450)
- - - - -
72c537ce by Teo Camarasu at 2024-10-04T16:05:22-04:00
nonmoving: Add support for heap profiling
Add support for heap profiling while using the nonmoving collector.
We greatly simply the implementation by disabling concurrent collection for
GCs when heap profiling is enabled. This entails that the marked objects on
the nonmoving heap are exactly the live objects.
Note that we match the behaviour for live bytes accounting by taking the size
of objects on the nonmoving heap to be that of the segment's block
rather than the object itself.
Resolves #22221
(cherry picked from commit bedb4f0de102936099bda4e995cc83f1c344366c)
- - - - -
b2712f69 by Teo Camarasu at 2024-10-04T16:05:22-04:00
docs: move -xn flag beside --nonmoving-gc
It makes sense to have these beside each other as they are aliases.
(cherry picked from commit 98166389e166d4ab7cc2ddbc044261e508859de1)
- - - - -
60f97ccb by Teo Camarasu at 2024-10-04T16:05:22-04:00
nonmoving: introduce a family of dense allocators
Supplement the existing power 2 sized nonmoving allocators with a family
of dense allocators up to a configurable threshold.
This should reduce waste from rounding up block sizes while keeping the
amount of allocator sizes manageable.
This patch:
- Adds a new configuration option `--nonmoving-dense-allocator-count`
to control the amount of these new dense allocators.
- Adds some constants to `NonmovingAllocator` in order to keep
marking fast with the new allocators.
Resolves #23340
(cherry picked from commit f830d5a34c4c972cced73b6dc25954cedf336747)
(cherry picked from commit 47e02c2ae0ea4713a2f22edf21b9a4eb5fe635be)
- - - - -
8031ebaa by Teo Camarasu at 2024-10-04T16:05:22-04:00
rts: use live words to estimate heap size
We use live words rather than live blocks to determine the size of the
heap for determining memory retention.
Most of the time these two metrics align, but they can come apart in
normal usage when using the nonmoving collector.
The nonmoving collector leads to a lot of partially occupied blocks. So,
using live words is more accurate.
They can also come apart when the heap is suffering from high levels
fragmentation caused by small pinned objects, but in this case, the
block size is the more accurate metric. Since this case is best avoided
anyway. It is ok to accept the trade-off that we might try (and
probably) fail to return more memory in this case.
See also the Note [Statistics for retaining memory]
Resolves #23397
(cherry picked from commit 35ef8dc83428f5405e092b12eb8cfc440b6504d8)
(cherry picked from commit 7991656954a2ba7d66fd75a8202af7d86327f279)
- - - - -
c71191f7 by Ben Gamari at 2024-10-04T16:05:22-04:00
Add changelog entry for #23340
(cherry picked from commit 2b07bf2e8bcb24520fe78b469c3550b9f4099526)
- - - - -
3ff6bbbe by Simon Peyton Jones at 2024-10-04T16:05:22-04:00
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.
- - - - -
7e5f2ac0 by Fendor at 2024-10-04T16:05:22-04:00
Escape multiple arguments in the settings file
Uses responseFile syntax.
The issue arises when GHC is installed on windows into a location that
has a space, for example the user name is 'Fake User'.
The $topdir will also contain a space, consequentially.
When we resolve the top dir in the string `-I$topdir/mingw/include`,
then `words` will turn this single argument into `-I/C/Users/Fake` and
`User/.../mingw/include` which trips up the flag argument parser of
various tools such as gcc or clang.
We avoid this by escaping the $topdir before replacing it in
`initSettngs`.
Additionally, we allow to escape spaces and quotation marks for
arguments in `settings` file.
Add regression test case to count the number of options after variable
expansion and argument escaping took place.
Additionally, we check that escaped spaces and double quotation marks are
correctly parsed.
(cherry picked from commit 31bf85ee49fe2ca0b17eaee0774e395f017a9373)
(cherry picked from commit d74ffbbb93cb377e64c557f777089b81710ef873)
- - - - -
3d90849d by Ben Gamari at 2024-10-04T16:05:44-04:00
Accept performance shifts
The metrics of MultiLayerModulesTH_Make are remarkably unstable but
bizarrely only on Darwin.
Metric Decrease:
MultiLayerModulesTH_Make
- - - - -
c4412f8d by Ben Gamari at 2024-10-10T16:11:51-04:00
Bump Cabal to 3.10.3.0
Bumps Cabal submodule.
- - - - -
f52257b8 by Ben Gamari at 2024-10-10T16:11:55-04:00
Bump directory to 1.3.8.5
Bumps directory submodule.
- - - - -
26f300dc by Matthew Pickering at 2024-10-10T16:11:55-04:00
Compatibility with 9.8.1 as boot compiler
This fixes several compatability issues when using 9.8.1 as the boot
compiler.
* An incorrect version guard on the stack decoding logic in ghc-heap
* Some ghc-prim bounds need relaxing
* ghc is no longer wired in, so we have to remove the -this-unit-id ghc
call.
Fixes #24077
(cherry picked from commit ef3d20f83499cf129b1cacac07906b8d6188fc17)
- - - - -
44e119c9 by Andreas Klebinger at 2024-10-10T16:11:55-04:00
NCG: Fix a bug in jump shortcutting.
When checking if a jump has more than one destination account for the
possibility of some jumps not being representable by a BlockId.
We do so by having isJumpishInstr return a `Maybe BlockId` where Nothing
represents non-BlockId jump destinations.
Fixes #24507
(cherry picked from commit 5bd8ed53dcefe10b72acb5729789e19ceb22df66)
- - - - -
f97d7fdf by Ben Gamari at 2024-10-10T16:11:55-04:00
hadrian/bindist: Ensure that phony rules are marked as such
Otherwise make may not run the rule if file with the same name as the
rule happens to exist.
(cherry picked from commit d04f384f35b76a6865dfb3b17098ef69563b3779)
- - - - -
3dc62f2e by Matthew Pickering at 2024-10-11T11:16:35-04:00
Fix haddock source links and hyperlinked source
There were a few issues with the hackage links:
1. We were using the package id rather than the package name for the
package links. This is fixed by now allowing the template to mention
%pkg% or %pkgid% and substituing both appropiatly.
2. The `--haddock-base-url` flag is renamed to `--haddock-for-hackage`
as the new base link works on a local or remote hackage server.
3. The "src" path including too much stuff, so cross-package source
links were broken as the template was getting double expanded.
Fixes #24086
(cherry picked from commit 23f2a478b7dc6b61cab86cf7d0db7fec8a6d9a1f)
- - - - -
3a033e29 by Rodrigo Mesquita at 2024-10-11T11:16:35-04:00
rts: free error message before returning
Fixes a memory leak in rts/linker/PEi386.c
(cherry picked from commit dd530bb7e22e953e4cec64a5fd6c39fddc152c6f)
- - - - -
20f80b77 by Cheng Shao at 2024-10-11T11:16:35-04:00
rts: add missing ccs_mutex guard to internal_dlopen
See added comment for details. Closes #24423.
- - - - -
2166d290 by Ben Gamari at 2024-10-11T11:16:35-04:00
rts/linker: Don't unload native objects when dlinfo isn't available
To do so is unsafe as we have no way of identifying references to
symbols provided by the object.
Fixes #24513. Fixes #23993.
- - - - -
fc1dcd02 by Alexis King at 2024-10-11T11:16:35-04:00
linker: Avoid linear search when looking up Haskell symbols via dlsym
See the primary Note [Looking up symbols in the relevant objects] for a
more in-depth explanation.
When dynamically loading a Haskell symbol (typical when running a splice or
GHCi expression), before this commit we would search for the symbol in
all dynamic libraries that were loaded. However, this could be very
inefficient when too many packages are loaded (which can happen if there are
many package dependencies) because the time to lookup the would be
linear in the number of packages loaded.
This commit drastically improves symbol loading performance by
introducing a mapping from units to the handles of corresponding loaded
dlls. These handles are returned by dlopen when we load a dll, and can
then be used to look up in a specific dynamic library.
Looking up a given Name is now much more precise because we can get
lookup its unit in the mapping and lookup the symbol solely in the
handles of the dynamic libraries loaded for that unit.
In one measurement, the wait time before the expression was executed
went from +-38 seconds down to +-2s.
This commit also includes Note [Symbols may not be found in pkgs_loaded],
explaining the fallback to the old behaviour in case no dll can be found
in the unit mapping for a given Name.
Fixes #23415
Co-authored-by: Rodrigo Mesquita (@alt-romes)
(cherry picked from commit e008a19a7f9e8f22aada0b4e1049744f49d39aad)
- - - - -
9d1ecdb9 by Ben Gamari at 2024-10-11T11:16:35-04:00
hadrian: Update bootstrap plans
- - - - -
1413e1dd by Rodrigo Mesquita at 2024-10-11T11:16:35-04:00
rts: Make addDLL a wrapper around loadNativeObj
Rewrite the implementation of `addDLL` as a wrapper around the more
principled `loadNativeObj` rts linker function. The latter should be
preferred while the former is preserved for backwards compatibility.
`loadNativeObj` was previously only available on ELF platforms, so this
commit further refactors the rts linker to transform loadNativeObj_ELF
into loadNativeObj_POSIX, which is available in ELF and MachO platforms.
The refactor made it possible to remove the `dl_mutex` mutex in favour
of always using `linker_mutex` (rather than a combination of both).
Lastly, we implement `loadNativeObj` for Windows too.
(cherry picked from commit dcfaa190e1e1182a2efe4e2f601affbb832a49bb)
- - - - -
54a48fa8 by Rodrigo Mesquita at 2024-10-11T18:33:02-04:00
Use symbol cache in internal interpreter too
This commit makes the symbol cache that was used by the external
interpreter available for the internal interpreter too.
This follows from the analysis in #23415 that suggests the internal
interpreter could benefit from this cache too, and that there is no good
reason not to have the cache for it too. It also makes it a bit more
uniform to have the symbol cache range over both the internal and
external interpreter.
This commit also refactors the cache into a function which is used by
both `lookupSymbol` and also by `lookupSymbolInDLL`, extending the
caching logic to `lookupSymbolInDLL` too.
- - - - -
2eb97a8c by Ben Gamari at 2024-10-12T11:39:11-04:00
Bump process submodule to v1.6.25.0
(cherry picked from commit 18f532f3ed021fff9529f50da2006b8a8d8b1df7)
- - - - -
20157588 by Ben Gamari at 2024-10-12T11:39:11-04:00
testsuite: Tests broken due to #22349 are fixed
- - - - -
846acd22 by Ben Gamari at 2024-10-13T22:13:57-04:00
docs: Release notes for 9.8.3
- - - - -
503890bb by Hécate Moonlight at 2024-10-14T09:25:29-04:00
Improve the synopsis and description of base
(cherry picked from commit 0eb2265d816f733094506034ba6285a447ebd3a5)
- - - - -
fb82ee70 by Torsten Schmits at 2024-10-14T10:11:21-04:00
finder: Add `IsBootInterface` to finder cache keys
Backport note: I have ported `uncacheModule` instead of removing it as
is done in 0d170eafacba55325dc00d0434d4462275d4376e since the necessary
type change is likely easier for possible GHC API users to accommodate
than outright removal.
(cherry picked from commit fff55592a7b9c9487c043d055f2d0d77fa549f4e)
- - - - -
c6c76e2e by Cheng Shao at 2024-10-14T10:17:28-04:00
driver: always merge objects when possible
This patch makes the driver always merge objects with `ld -r` when
possible, and only fall back to calling `ar -L` when merge objects
command is unavailable. This completely reverts !8887 and !12313,
given more fixes in Cabal seems to be needed to avoid breaking certain
configurations and the maintainence cost is exceeding the behefits in
this case :/
(cherry picked from commit 631cefec222e2db951c58db0b15a8d80ef5549cb)
- - - - -
dd93c425 by Simon Peyton Jones at 2024-10-14T10:31:21-04:00
Deal with duplicate tyvars in type declarations
GHC was outright crashing before this fix: #24604
(cherry picked from commit faa30b41a6f941627ddeeba805815b2742d312d1)
- - - - -
6101a9b5 by sheaf at 2024-10-14T10:35:26-04:00
LLVM: use sse4.2 instead of sse42
LLVM expects the former instead of the latter since version 3.4.
Fixes #25019
(cherry picked from commit 694489edf35c35b29fbdf09a8e3fdc404469858f)
- - - - -
5ea0140c by sheaf at 2024-10-14T10:35:26-04:00
LLVM: make SSE4.2 imply +popcnt
For consistency with the NCG as well as with Clang and GCC, we make
the SSE4.2 feature flag imply +popcnt when using the LLVM backend.
Fixes #25353
(cherry picked from commit 06ae85071b95376bd1eb354f7cc7901aed45b625)
- - - - -
05152a57 by Zubin Duggal at 2024-10-14T10:59:21-04:00
testsuite: use copy_files in T23405
This prevents the tree from being dirtied when the file is modified.
(cherry picked from commit 8106e695bb912e60a338908a2b6efc5b0644c9c1)
- - - - -
7326051e by Simon Peyton Jones at 2024-10-14T11:53:29-04:00
Consider Wanteds with rewriters as insoluble
This MR fixes #25325
See GHC.Tc.Types.Constraint, Note [Insoluble Wanteds], especially (IW2)
There is a small change in the error message for T14172, but it looks
entirely acceptable to me.
(cherry picked from commit 083703a12cd34369e7ed2f0efc4a5baee47aedab)
- - - - -
6b790e6c by Simon Peyton Jones at 2024-10-14T11:53:58-04:00
Wibbles
(cherry picked from commit 0dfaeb66fb8457e7339abbd44d5c53a81ad8ae3a)
- - - - -
454e2165 by Simon Peyton Jones at 2024-10-14T11:53:58-04:00
Spelling errors
(cherry picked from commit 09d24d828e48c2588a317e6dad711f8673983703)
- - - - -
a3a6da7e by Torsten Schmits at 2024-10-14T11:53:58-04:00
add test that runs MakeDepend on thousands of modules
(cherry picked from commit 7875e8cbe5d9b69a1a77354317b2bf9478172686)
- - - - -
2e6704de by Matthew Pickering at 2024-10-14T11:59:27-04:00
Compatibility with 9.8.1 as boot compiler
This fixes several compatability issues when using 9.8.1 as the boot
compiler.
* Some ghc-prim bounds need relaxing
* ghc is no longer wired in, so we have to remove the -this-unit-id ghc
call.
Fixes #24605
(cherry picked from commit ef3d20f83499cf129b1cacac07906b8d6188fc17)
- - - - -
a5ce5c45 by Ben Gamari at 2024-10-14T12:18:06-04:00
Revert "NCG: Fix a bug in jump shortcutting."
This commit was wrong, as noted in the `master` revert cfeb70d3fed9c135295359296208bd800bab418f.
It appears to have ultimately been superceded by 0fe2b410ac0d8951f07ffcc9f3c6c97bc312df48
which is already present in `ghc-9.8`.
This reverts commit 44e119c9b7622f76b1b7e8d22548376b2591402d.
- - - - -
1f43950e by Ben Gamari at 2024-10-14T12:36:03-04:00
hadrian: Update bootstrap plans
- - - - -
8f7adb8a by Ben Gamari at 2024-10-15T08:58:56-04:00
Bump version to 9.8.3
- - - - -
c3dedd00 by Ben Gamari at 2024-10-15T12:51:53-04:00
Bump semaphore-compat submodule back to 1.0.0
This only drops a one-sentence change in Haddocks.
- - - - -
4a9f4d76 by Ben Gamari at 2024-10-15T13:28:36-04:00
docs: Drop Included Libraries from old release notes
- - - - -
6cc77976 by Ben Gamari at 2024-10-15T13:29:18-04:00
Update autoconf scripts
Scripts taken from autoconf 00b15927496058d23e6258a28d8996f87cf1f191
- - - - -
c332cb09 by Ben Gamari at 2024-10-15T13:32:31-04:00
gitlab-ci: Update bootstrap_matrix
- - - - -
bb8f9dc0 by Ben Gamari at 2024-10-15T13:46:09-04:00
Revert "finder: Add `IsBootInterface` to finder cache keys"
There are objections raised on the MR (!13237) and the interface change
makes me rather uncomfortable.
This reverts commit fb82ee70d9f7fe43cd1cd2aa7263e9aef6cf9238.
- - - - -
036044df by Ben Gamari at 2024-10-15T17:30:09-04:00
Revert "gitlab-ci: Update bootstrap_matrix"
This reverts commit c332cb09f1bc767536bd2afd12c9ccbcf0a34289.
- - - - -
e9aabcf5 by Matthew Pickering at 2024-10-17T13:10:09-04:00
bindist: Use complete relative paths when cding to directories
If a user has configured CDPATH on their system then `cd lib` may change
into an unexpected directory during the installation process.
If you write `cd ./lib` then it will not consult `CDPATH` to determine
what you mean.
I have added a check on ghcup-ci to verify that the bindist installation
works in this situation.
Fixes #24951
(cherry picked from commit 383c01a8928779920b4edea2f9d886ff303b8bd3)
- - - - -
24e765b4 by Ben Gamari at 2024-10-18T13:39:14-04:00
Bump base version to 4.19.2.0
- - - - -
f41b0bda by Brandon Chinn at 2024-10-19T08:13:42-04:00
Simplify regexes with raw strings
(cherry picked from commit c91946f994ad8b734b09cf3023f1fc9671a7475a)
- - - - -
72e04175 by Ben Gamari at 2024-10-19T08:41:21-04:00
testsuite: More aggressive version number normalization
Component names can sometimes have hashes.
- - - - -
b6639a64 by Ben Gamari at 2024-10-19T14:22:45-04:00
testsuite: Elide progress output from bkpfail{16,18,19}
These tests are seemingly testing the error message, not the progress
output and the latter contains filenames with unstable hashes.
- - - - -
85dd5c10 by Ben Gamari at 2024-11-09T11:29:04-05:00
Bump filepath submodule to v1.4.300.2
This includes a fix for filepath#219.
Fixes #24597.
- - - - -
da9912f3 by Matthew Pickering at 2024-11-11T12:07:22-05:00
ci: Enable more documentation building
Here we enable documentation building on
1. Darwin: The sphinx toolchain was already installed so we enable html
and manpages.
2. Rocky8: Full documentation (toolchain already installed)
3. Alpine: Full documetnation (toolchain already installed)
4. Windows: HTML and manpages (toolchain already installed)
Fixes #24465
(cherry picked from commit 67ace1c59dd582919bceb4fdadbefc1d98d3449a)
- - - - -
90c7d9a6 by Zubin Duggal at 2024-11-11T20:10:03-05:00
testsuite: Skip MultiLayerModulesTH_OneShot on darwin
See #24177
(cherry picked from commit 1bf7ce0e3ec4be3bacea015c42a2a218c33bea43)
- - - - -
4603513b by Zubin Duggal at 2024-11-12T10:42:36-05:00
release: Sign .gz bindists too
Fixes #25447
(cherry picked from commit bbdbe2254df1bfc9157cfb409afc93f8157712cd)
- - - - -
e7b2a216 by Ben Gamari at 2024-11-13T10:25:00-05:00
Bump version to 9.8.4
- - - - -
81cee582 by Matthew Pickering at 2024-11-13T14:25:24-05:00
driver: Fix -Wmissing-home-modules when multiple units have the same module name
It was assumed that module names were unique but that isn't true with
multiple units.
The fix is quite simple, maintain a set of `(ModuleName, UnitId)` and
query that to see whether the module has been specified.
Fixes #25122
(cherry picked from commit 951ce3d5904a1d34d49787d444f99e251e24d4e7)
- - - - -
4e14b9f8 by Ben Gamari at 2024-11-13T18:53:42-05:00
Release notes for 9.8.4
- - - - -
74437b9a by Sebastian Graf at 2024-11-13T19:06:12-05:00
DmdAnal: Make `prompt#` lazy (#25439)
This applies the same treatment to `prompt#` as for `catch#`.
See `Note [Strictness for mask/unmask/catch/prompt]`.
Fixes #25439.
(cherry picked from commit 00d58ae18a7ce8db6b2d57261a08ba8c1c2549b5)
- - - - -
68cd09f6 by Ben Gamari at 2024-11-13T19:23:35-05:00
Mention fix of #25439 in release notes
- - - - -
f0ab9204 by Ben Gamari at 2024-11-18T10:35:38-05:00
Bump filepath submodule to v1.4.301.0
Fixes inappropriate catching of asynchronous exceptions.
- - - - -
e6cc8610 by Ben Gamari at 2024-11-19T11:53:29-05:00
Bump unix submodule to 2.8.6.0
- - - - -
ea2ea2d5 by Ben Gamari at 2024-11-19T16:54:17-05:00
ghci: Don't rely on Uniques in BRK_FUN
This is a partial backport of the treatment given to modules names in
!10448, removing the dependence of BRK_FUN on the representation of
`Unique`.
- - - - -
f4f6c1cd by Jaro Reinders at 2024-11-19T16:54:17-05:00
Refactor Unique to be represented by Word64
In #22010 we established that Int was not always sufficient to store all
the uniques we generate during compilation on 32-bit platforms. This
commit addresses that problem by using Word64 instead of Int for
uniques.
The core of the change is in GHC.Core.Types.Unique and
GHC.Core.Types.Unique.Supply. However, the representation of uniques is
used in many other places, so those needed changes too. Additionally, the RTS
has been extended with an atomic_inc64 operation.
One major change from this commit is the introduction of the Word64Set and
Word64Map data types. These are adapted versions of IntSet and IntMap
from the containers package. These are planned to be upstreamed in the
future.
As a natural consequence of these changes, the compiler will be a bit
slower and take more space on 32-bit platforms. Our CI tests indicate
around a 5% residency increase.
Metric Increase:
CoOpt_Read
CoOpt_Singletons
LargeRecord
ManyAlternatives
ManyConstructors
MultiComponentModules
MultiComponentModulesRecomp
MultiLayerModulesTH_OneShot
RecordUpdPerf
T10421
T10547
T12150
T12227
T12234
T12425
T12707
T13035
T13056
T13253
T13253-spj
T13379
T13386
T13719
T14683
T14697
T14766
T15164
T15703
T16577
T16875
T17516
T18140
T18223
T18282
T18304
T18698a
T18698b
T18923
T1969
T19695
T20049
T21839c
T3064
T3294
T4801
T5030
T5321FD
T5321Fun
T5631
T5642
T5837
T6048
T783
T8095
T9020
T9198
T9233
T9630
T9675
T9872a
T9872b
T9872b_defer
T9872c
T9872d
T9961
TcPlugin_RewritePerf
UniqLoop
WWRec
hard_hole_fits
(cherry picked from commit 9edcb1fb02d799acd4a7d0c145796aecb6e54ea3)
- - - - -
1db0547d by Ben Gamari at 2024-11-20T08:59:37-05:00
hadrian: Accept unused imports in filepath
As noted in filepath#241 [1], `filepath-1.4.301.0` is not
`-Werror`-clean.
[1] https://github.com/haskell/filepath/issues/241
- - - - -
88d2ee34 by Ben Gamari at 2024-11-20T10:51:55-05:00
rel-notes: Note backport of #22010
- - - - -
e267aa7f by Ben Gamari at 2024-11-20T18:19:58-05:00
hadrian-ghci-multi: Pass -this-package-name in unit response files
As noted in #25509, the `-this-package-name` must be passed for each
package to ensure that GHC can response references to the packages'
exposed modules via package-qualified imports. Fix this.
Closes #25509.
- - - - -
1b2f40f9 by Ben Gamari at 2024-11-22T13:12:51-05:00
testsuite: Bump compile timeout of T22744
This has failed repeatedly on Darwin.
- - - - -
7a274a7f by Ben Gamari at 2024-11-25T14:20:29-05:00
compiler: Fix bootstrapping with 9.8.3
Bump the CPP in genSym to ensure that we don't look for
`ghc_unique_counter64` in any compilers earlier than 9.8.4.
Inconsistency noticed in #25519.
- - - - -
0768fe93 by Cheng Shao at 2024-11-26T13:25:31-05:00
testsuite: bump T22744 timeout to 5x
- - - - -
22559ece by Ben Gamari at 2024-11-27T10:09:54-05:00
testsuite: Skip T22744 due to #22524
This test has been routinely timing out on Darwin; this is being
investigated but for the time being we will disable it to move ahead
with the 9.8.4 release.
- - - - -
a3401159 by Mario Blažević at 2024-11-27T10:13:19-05:00
Bumped the upper bound of text to <2.2
(cherry picked from commit 471b267294bc5f17e4864ce9bb2f221c4d47eac8)
- - - - -
d5e3a630 by Ben Gamari at 2024-12-02T10:25:22-05:00
ghcup-metadata: Don't populate dlOutput unless necessary
ghcup can apparently infer the output name of an artifact from its URL.
Consequently, we should only include the `dlOutput` field when it would
differ from the filename of `dlUri`.
Fixes #24547.
(cherry picked from commit 6d398066b6084a971248da8ce37bc40c53a83525)
(cherry picked from commit 878e8529a09abc213d11f76e6bdafa769578aa30)
- - - - -
a60b882c by Ben Gamari at 2024-12-02T19:57:56-05:00
mk-ghcup-metadata: Fix directory of testsuite tarball
As reported in #24546, the `dlTest` artifact should be extracted into
the `testsuite` directory.
(cherry picked from commit 9d936c5799daadf96392211b03e38520925aea17)
- - - - -
6071fec3 by Matthew Pickering at 2024-12-10T09:58:11-05:00
compiler: Remove unused `containers.h` include
Fixes #23712
(cherry picked from commit 02e6a6ceac761d62ed30817b9525d952bca599ac)
- - - - -
2beabb11 by Ben Gamari at 2024-12-20T14:16:23-05:00
Set RELEASE=NO
- - - - -
058d661c by Ben Gamari at 2025-02-04T09:51:19-05:00
compiler: Fix CPP guards around ghc_unique_counter64
The `ghc_unique_counter64` symbol was introduced in the RTS in the
64-bit unique refactor (!10568) which has been backported to %9.6.7 and
%9.8.4. Update the CPP to reflect this.
Fixes #25576.
(cherry-picked from commit 63d74f4d15ecaa8d711bd12fa64f77fce72b5f79)
- - - - -
ed5155a3 by Ben Gamari at 2025-07-15T12:24:11-04:00
rts/nonmoving: Use atomic operations to update bd->flags
- - - - -
0316ea69 by Ben Gamari at 2025-07-15T12:24:11-04:00
rts/nonmoving: Fix comment spelling
- - - - -
a8a49b17 by Ben Gamari at 2025-07-15T12:24:11-04:00
Debug output
- - - - -
1207 changed files:
- .gitlab-ci.yml
- .gitlab/ci.sh
- .gitlab/gen_ci.hs
- .gitlab/jobs.yaml
- .gitlab/rel_eng/fetch-gitlab-artifacts/fetch_gitlab.py
- .gitlab/rel_eng/mk-ghcup-metadata/mk_ghcup_metadata.py
- .gitlab/rel_eng/upload.sh
- .gitlab/rel_eng/upload_ghc_libs.py
- .gitlab/test-metrics.sh
- compiler/CodeGen.Platform.h
- compiler/GHC.hs
- compiler/GHC/Builtin/Types.hs
- compiler/GHC/Builtin/Uniques.hs
- − compiler/GHC/Builtin/gen_bytearray_addr_access_ops.py
- compiler/GHC/Builtin/primops.txt.pp
- compiler/GHC/ByteCode/Asm.hs
- compiler/GHC/ByteCode/Instr.hs
- compiler/GHC/ByteCode/Linker.hs
- compiler/GHC/ByteCode/Types.hs
- compiler/GHC/Cmm.hs
- compiler/GHC/Cmm/CallConv.hs
- compiler/GHC/Cmm/CommonBlockElim.hs
- compiler/GHC/Cmm/Dataflow/Collections.hs
- compiler/GHC/Cmm/Dataflow/Label.hs
- compiler/GHC/Cmm/Dominators.hs
- compiler/GHC/Cmm/LRegSet.hs
- compiler/GHC/Cmm/MachOp.hs
- compiler/GHC/Cmm/Opt.hs
- compiler/GHC/Cmm/Sink.hs
- compiler/GHC/Cmm/Utils.hs
- compiler/GHC/CmmToAsm.hs
- compiler/GHC/CmmToAsm/AArch64.hs
- compiler/GHC/CmmToAsm/AArch64/CodeGen.hs
- compiler/GHC/CmmToAsm/AArch64/Cond.hs
- compiler/GHC/CmmToAsm/AArch64/Instr.hs
- compiler/GHC/CmmToAsm/AArch64/Ppr.hs
- compiler/GHC/CmmToAsm/AArch64/Regs.hs
- compiler/GHC/CmmToAsm/BlockLayout.hs
- compiler/GHC/CmmToAsm/CFG.hs
- compiler/GHC/CmmToAsm/CFG/Dominators.hs
- compiler/GHC/CmmToAsm/Instr.hs
- compiler/GHC/CmmToAsm/Monad.hs
- compiler/GHC/CmmToAsm/PPC.hs
- compiler/GHC/CmmToAsm/PPC/CodeGen.hs
- compiler/GHC/CmmToAsm/PPC/Instr.hs
- compiler/GHC/CmmToAsm/Ppr.hs
- compiler/GHC/CmmToAsm/Reg/Graph/TrivColorable.hs
- compiler/GHC/CmmToAsm/Reg/Linear/AArch64.hs
- compiler/GHC/CmmToAsm/Reg/Liveness.hs
- compiler/GHC/CmmToAsm/Wasm/Asm.hs
- compiler/GHC/CmmToAsm/Wasm/FromCmm.hs
- compiler/GHC/CmmToAsm/Wasm/Types.hs
- compiler/GHC/CmmToAsm/X86.hs
- compiler/GHC/CmmToAsm/X86/CodeGen.hs
- compiler/GHC/CmmToAsm/X86/Instr.hs
- compiler/GHC/CmmToLlvm/Base.hs
- compiler/GHC/CmmToLlvm/CodeGen.hs
- compiler/GHC/CmmToLlvm/Data.hs
- compiler/GHC/Core.hs
- compiler/GHC/Core/Class.hs
- compiler/GHC/Core/Coercion.hs
- compiler/GHC/Core/Coercion/Axiom.hs
- compiler/GHC/Core/InstEnv.hs
- compiler/GHC/Core/Opt/Arity.hs
- compiler/GHC/Core/Opt/CSE.hs
- compiler/GHC/Core/Opt/CprAnal.hs
- compiler/GHC/Core/Opt/DmdAnal.hs
- compiler/GHC/Core/Opt/FloatIn.hs
- compiler/GHC/Core/Opt/Monad.hs
- compiler/GHC/Core/Opt/Pipeline.hs
- compiler/GHC/Core/Opt/Simplify/Env.hs
- compiler/GHC/Core/Opt/Simplify/Iteration.hs
- compiler/GHC/Core/Opt/Simplify/Monad.hs
- compiler/GHC/Core/Opt/Simplify/Utils.hs
- compiler/GHC/Core/Opt/SpecConstr.hs
- compiler/GHC/Core/Opt/Specialise.hs
- compiler/GHC/Core/Predicate.hs
- compiler/GHC/Core/Rules.hs
- compiler/GHC/Core/SimpleOpt.hs
- compiler/GHC/Core/Subst.hs
- compiler/GHC/Core/TyCon.hs
- compiler/GHC/Core/Type.hs
- compiler/GHC/Core/Unify.hs
- compiler/GHC/Core/Utils.hs
- compiler/GHC/CoreToIface.hs
- compiler/GHC/CoreToStg.hs
- compiler/GHC/Data/Bag.hs
- compiler/GHC/Data/FastString.hs
- compiler/GHC/Data/Graph/Directed.hs
- compiler/GHC/Data/Graph/UnVar.hs
- compiler/GHC/Data/Maybe.hs
- + compiler/GHC/Data/Word64Map.hs
- + compiler/GHC/Data/Word64Map/Internal.hs
- + compiler/GHC/Data/Word64Map/Lazy.hs
- + compiler/GHC/Data/Word64Map/Strict.hs
- + compiler/GHC/Data/Word64Map/Strict/Internal.hs
- + compiler/GHC/Data/Word64Set.hs
- + compiler/GHC/Data/Word64Set/Internal.hs
- compiler/GHC/Driver/Backend.hs
- compiler/GHC/Driver/CmdLine.hs
- compiler/GHC/Driver/CodeOutput.hs
- compiler/GHC/Driver/Config/Core/Opt/Simplify.hs
- compiler/GHC/Driver/Config/HsToCore/Ticks.hs
- compiler/GHC/Driver/Config/StgToCmm.hs
- compiler/GHC/Driver/DynFlags.hs
- compiler/GHC/Driver/Errors/Ppr.hs
- compiler/GHC/Driver/Flags.hs
- compiler/GHC/Driver/GenerateCgIPEStub.hs
- compiler/GHC/Driver/Main.hs
- compiler/GHC/Driver/Make.hs
- compiler/GHC/Driver/Pipeline.hs
- compiler/GHC/Driver/Pipeline/Execute.hs
- compiler/GHC/Driver/Plugins.hs
- compiler/GHC/Driver/Session.hs
- compiler/GHC/Hs/Decls.hs
- compiler/GHC/Hs/Expr.hs
- compiler/GHC/Hs/Pat.hs
- compiler/GHC/Hs/Type.hs
- compiler/GHC/Hs/Utils.hs
- compiler/GHC/HsToCore.hs
- compiler/GHC/HsToCore/Arrows.hs
- compiler/GHC/HsToCore/Binds.hs
- compiler/GHC/HsToCore/Breakpoints.hs
- compiler/GHC/HsToCore/Errors/Ppr.hs
- compiler/GHC/HsToCore/Errors/Types.hs
- compiler/GHC/HsToCore/Expr.hs
- compiler/GHC/HsToCore/Foreign/C.hs
- compiler/GHC/HsToCore/Foreign/JavaScript.hs
- compiler/GHC/HsToCore/GuardedRHSs.hs
- compiler/GHC/HsToCore/ListComp.hs
- compiler/GHC/HsToCore/Match.hs
- compiler/GHC/HsToCore/Match.hs-boot
- compiler/GHC/HsToCore/Match/Constructor.hs
- compiler/GHC/HsToCore/Match/Literal.hs
- compiler/GHC/HsToCore/Monad.hs
- compiler/GHC/HsToCore/Pmc.hs
- compiler/GHC/HsToCore/Pmc/Utils.hs
- compiler/GHC/HsToCore/Quote.hs
- compiler/GHC/HsToCore/Types.hs
- compiler/GHC/HsToCore/Utils.hs
- compiler/GHC/Iface/Errors/Ppr.hs
- compiler/GHC/Iface/Errors/Types.hs
- compiler/GHC/Iface/Ext/Ast.hs
- compiler/GHC/Iface/Make.hs
- compiler/GHC/Iface/Recomp/Flags.hs
- compiler/GHC/Iface/Syntax.hs
- compiler/GHC/Iface/Tidy.hs
- compiler/GHC/Iface/Type.hs
- compiler/GHC/IfaceToCore.hs
- compiler/GHC/Linker/Deps.hs
- compiler/GHC/Linker/Dynamic.hs
- compiler/GHC/Linker/Loader.hs
- compiler/GHC/Linker/MacOS.hs
- compiler/GHC/Linker/Types.hs
- compiler/GHC/Llvm/Ppr.hs
- compiler/GHC/Llvm/Syntax.hs
- compiler/GHC/Parser.y
- compiler/GHC/Parser/Annotation.hs
- compiler/GHC/Parser/Lexer.x
- compiler/GHC/Parser/PostProcess.hs
- compiler/GHC/Platform/Wasm32.hs
- compiler/GHC/Rename/Doc.hs
- compiler/GHC/Rename/Env.hs
- compiler/GHC/Rename/Expr.hs
- compiler/GHC/Rename/HsType.hs
- compiler/GHC/Rename/Module.hs
- compiler/GHC/Rename/Names.hs
- compiler/GHC/Rename/Pat.hs
- compiler/GHC/Rename/Unbound.hs
- compiler/GHC/Rename/Utils.hs
- compiler/GHC/Runtime/Eval.hs
- compiler/GHC/Runtime/Heap/Layout.hs
- compiler/GHC/Runtime/Interpreter.hs
- compiler/GHC/Runtime/Interpreter/JS.hs
- compiler/GHC/Runtime/Interpreter/Types.hs
- compiler/GHC/Runtime/Loader.hs
- compiler/GHC/Runtime/Utils.hs
- compiler/GHC/Settings.hs
- compiler/GHC/Settings/IO.hs
- compiler/GHC/Stg/CSE.hs
- compiler/GHC/Stg/Debug.hs
- compiler/GHC/Stg/InferTags/Rewrite.hs
- compiler/GHC/Stg/Lint.hs
- compiler/GHC/Stg/Pipeline.hs
- compiler/GHC/Stg/Subst.hs
- compiler/GHC/Stg/Syntax.hs
- compiler/GHC/Stg/Unarise.hs
- compiler/GHC/StgToByteCode.hs
- compiler/GHC/StgToCmm/ArgRep.hs
- compiler/GHC/StgToCmm/Bind.hs
- compiler/GHC/StgToCmm/CgUtils.hs
- compiler/GHC/StgToCmm/Closure.hs
- compiler/GHC/StgToCmm/Config.hs
- compiler/GHC/StgToCmm/Expr.hs
- compiler/GHC/StgToCmm/Heap.hs
- compiler/GHC/StgToCmm/InfoTableProv.hs
- compiler/GHC/StgToCmm/Lit.hs
- compiler/GHC/StgToCmm/Monad.hs
- compiler/GHC/StgToCmm/Prim.hs
- compiler/GHC/StgToCmm/Prof.hs
- compiler/GHC/StgToCmm/Sequel.hs
- compiler/GHC/StgToCmm/Ticky.hs
- compiler/GHC/StgToCmm/Utils.hs
- compiler/GHC/StgToJS/Apply.hs
- compiler/GHC/StgToJS/Deps.hs
- compiler/GHC/StgToJS/Expr.hs
- compiler/GHC/StgToJS/Ids.hs
- compiler/GHC/StgToJS/Linker/Linker.hs
- compiler/GHC/StgToJS/Linker/Utils.hs
- compiler/GHC/StgToJS/Literal.hs
- compiler/GHC/StgToJS/Rts/Rts.hs
- compiler/GHC/StgToJS/Symbols.hs
- compiler/GHC/StgToJS/Types.hs
- compiler/GHC/StgToJS/Utils.hs
- compiler/GHC/SysTools/Cpp.hs
- compiler/GHC/Tc/Deriv/Generate.hs
- compiler/GHC/Tc/Deriv/Utils.hs
- compiler/GHC/Tc/Errors.hs
- compiler/GHC/Tc/Errors/Hole.hs
- compiler/GHC/Tc/Errors/Ppr.hs
- compiler/GHC/Tc/Errors/Types.hs
- compiler/GHC/Tc/Gen/Export.hs
- compiler/GHC/Tc/Gen/Expr.hs
- compiler/GHC/Tc/Gen/Foreign.hs
- compiler/GHC/Tc/Gen/HsType.hs
- compiler/GHC/Tc/Gen/Splice.hs
- compiler/GHC/Tc/Instance/Class.hs
- compiler/GHC/Tc/Module.hs
- compiler/GHC/Tc/Solver.hs
- compiler/GHC/Tc/Solver/Dict.hs
- compiler/GHC/Tc/Solver/Equality.hs
- compiler/GHC/Tc/Solver/InertSet.hs
- compiler/GHC/Tc/Solver/Irred.hs
- compiler/GHC/Tc/Solver/Monad.hs
- compiler/GHC/Tc/Solver/Solve.hs
- compiler/GHC/Tc/TyCl.hs
- compiler/GHC/Tc/TyCl/Build.hs
- compiler/GHC/Tc/TyCl/Class.hs
- compiler/GHC/Tc/TyCl/Instance.hs
- compiler/GHC/Tc/TyCl/PatSyn.hs
- compiler/GHC/Tc/TyCl/Utils.hs
- compiler/GHC/Tc/Types.hs
- compiler/GHC/Tc/Types/Constraint.hs
- compiler/GHC/Tc/Types/Evidence.hs
- compiler/GHC/Tc/Types/Origin.hs
- compiler/GHC/Tc/Types/Origin.hs-boot
- compiler/GHC/Tc/Utils/Backpack.hs
- compiler/GHC/Tc/Utils/Instantiate.hs
- compiler/GHC/Tc/Utils/Monad.hs
- compiler/GHC/Tc/Utils/TcMType.hs
- compiler/GHC/Tc/Utils/TcType.hs
- compiler/GHC/Tc/Utils/TcType.hs-boot
- compiler/GHC/Tc/Validity.hs
- compiler/GHC/Tc/Zonk/Type.hs
- compiler/GHC/ThToHs.hs
- compiler/GHC/Types/Avail.hs
- compiler/GHC/Types/Basic.hs
- compiler/GHC/Types/Error/Codes.hs
- compiler/GHC/Types/GREInfo.hs
- compiler/GHC/Types/Hint.hs
- compiler/GHC/Types/Hint/Ppr.hs
- compiler/GHC/Types/Id.hs
- compiler/GHC/Types/Id/Make.hs
- compiler/GHC/Types/Literal.hs
- compiler/GHC/Types/Name/Cache.hs
- compiler/GHC/Types/Name/Occurrence.hs
- compiler/GHC/Types/Name/Ppr.hs
- compiler/GHC/Types/Name/Reader.hs
- compiler/GHC/Types/RepType.hs
- compiler/GHC/Types/TyThing.hs
- compiler/GHC/Types/Unique.hs
- compiler/GHC/Types/Unique/DFM.hs
- compiler/GHC/Types/Unique/FM.hs
- compiler/GHC/Types/Unique/Supply.hs
- compiler/GHC/Types/Var.hs
- compiler/GHC/Types/Var/Env.hs
- compiler/GHC/Unit/Finder.hs
- compiler/GHC/Unit/Finder/Types.hs
- compiler/GHC/Unit/Module/ModIface.hs
- compiler/GHC/Unit/Module/Warnings.hs
- compiler/GHC/Unit/State.hs
- compiler/GHC/Unit/Types.hs
- compiler/GHC/Utils/Binary.hs
- + compiler/GHC/Utils/Containers/Internal/BitUtil.hs
- + compiler/GHC/Utils/Containers/Internal/StrictPair.hs
- compiler/GHC/Utils/Lexeme.hs
- compiler/GHC/Utils/Misc.hs
- compiler/GHC/Utils/Outputable.hs
- + compiler/GHC/Utils/Unique.hs
- + compiler/GHC/Utils/Word64.hs
- compiler/Language/Haskell/Syntax/Concrete.hs
- compiler/Language/Haskell/Syntax/Expr.hs
- compiler/cbits/genSym.c
- compiler/ghc.cabal.in
- + compiler/jsbits/genSym.js
- config.guess
- config.sub
- configure.ac
- distrib/configure.ac.in
- docs/index.html.in
- − docs/users_guide/9.6.1-notes.rst
- docs/users_guide/9.8.1-notes.rst
- + docs/users_guide/9.8.2-notes.rst
- + docs/users_guide/9.8.3-notes.rst
- + docs/users_guide/9.8.4-notes.rst
- docs/users_guide/debug-info.rst
- docs/users_guide/debugging.rst
- docs/users_guide/eventlog-formats.rst
- docs/users_guide/extending_ghc.rst
- docs/users_guide/exts/ffi.rst
- docs/users_guide/exts/gadt.rst
- docs/users_guide/exts/implicit_parameters.rst
- docs/users_guide/exts/multiway_if.rst
- docs/users_guide/exts/overloaded_labels.rst
- docs/users_guide/exts/pragmas.rst
- docs/users_guide/exts/safe_haskell.rst
- docs/users_guide/exts/scoped_type_variables.rst
- docs/users_guide/exts/type_families.rst
- docs/users_guide/exts/view_patterns.rst
- docs/users_guide/flags.py
- docs/users_guide/ghc_config.py.in
- docs/users_guide/ghci.rst
- docs/users_guide/phases.rst
- docs/users_guide/release-notes.rst
- docs/users_guide/runtime_control.rst
- docs/users_guide/using-optimisation.rst
- docs/users_guide/using-warnings.rst
- docs/users_guide/using.rst
- docs/users_guide/utils.py
- ghc/GHCi/UI.hs
- ghc/Main.hs
- ghc/ghc-bin.cabal.in
- hadrian/README.md
- hadrian/bindist/Makefile
- hadrian/bindist/config.mk.in
- hadrian/bootstrap/generate_bootstrap_plans
- − hadrian/bootstrap/plan-9_2_1.json
- − hadrian/bootstrap/plan-9_2_2.json
- − hadrian/bootstrap/plan-9_2_3.json
- − hadrian/bootstrap/plan-9_2_4.json
- − hadrian/bootstrap/plan-9_2_5.json
- − hadrian/bootstrap/plan-9_2_6.json
- − hadrian/bootstrap/plan-9_2_7.json
- hadrian/bootstrap/plan-9_4_1.json
- hadrian/bootstrap/plan-9_4_2.json
- hadrian/bootstrap/plan-9_4_3.json
- hadrian/bootstrap/plan-9_4_4.json
- hadrian/bootstrap/plan-9_6_1.json
- + hadrian/bootstrap/plan-9_6_2.json
- + hadrian/bootstrap/plan-9_6_3.json
- + hadrian/bootstrap/plan-9_6_4.json
- + hadrian/bootstrap/plan-9_6_5.json
- + hadrian/bootstrap/plan-9_8_1.json
- + hadrian/bootstrap/plan-9_8_2.json
- − hadrian/bootstrap/plan-bootstrap-9_2_5.json
- − hadrian/bootstrap/plan-bootstrap-9_2_6.json
- − hadrian/bootstrap/plan-bootstrap-9_2_7.json
- hadrian/bootstrap/plan-bootstrap-9_4_1.json
- hadrian/bootstrap/plan-bootstrap-9_4_2.json
- hadrian/bootstrap/plan-bootstrap-9_4_3.json
- hadrian/bootstrap/plan-bootstrap-9_4_4.json
- hadrian/bootstrap/plan-bootstrap-9_6_1.json
- hadrian/bootstrap/plan-bootstrap-9_2_1.json → hadrian/bootstrap/plan-bootstrap-9_6_2.json
- hadrian/bootstrap/plan-bootstrap-9_2_4.json → hadrian/bootstrap/plan-bootstrap-9_6_3.json
- hadrian/bootstrap/plan-bootstrap-9_2_3.json → hadrian/bootstrap/plan-bootstrap-9_6_4.json
- + hadrian/bootstrap/plan-bootstrap-9_6_5.json
- hadrian/bootstrap/plan-bootstrap-9_2_2.json → hadrian/bootstrap/plan-bootstrap-9_8_1.json
- + hadrian/bootstrap/plan-bootstrap-9_8_2.json
- hadrian/cabal.project
- hadrian/cfg/system.config.in
- hadrian/doc/flavours.md
- hadrian/hadrian.cabal
- hadrian/src/Builder.hs
- hadrian/src/CommandLine.hs
- hadrian/src/Flavour.hs
- hadrian/src/Hadrian/Haskell/Cabal/Parse.hs
- hadrian/src/Oracles/Setting.hs
- hadrian/src/Rules/BinaryDist.hs
- hadrian/src/Rules/Documentation.hs
- hadrian/src/Rules/Generate.hs
- hadrian/src/Rules/SourceDist.hs
- hadrian/src/Rules/ToolArgs.hs
- + hadrian/src/Settings/Builders/GenApply.hs
- hadrian/src/Settings/Builders/Ghc.hs
- hadrian/src/Settings/Builders/Haddock.hs
- hadrian/src/Settings/Builders/RunTest.hs
- hadrian/src/Settings/Default.hs
- hadrian/src/Settings/Default.hs-boot
- hadrian/src/Settings/Flavours/Benchmark.hs
- hadrian/src/Settings/Flavours/Development.hs
- hadrian/src/Settings/Flavours/Performance.hs
- hadrian/src/Settings/Flavours/Validate.hs
- hadrian/src/Settings/Packages.hs
- hadrian/src/Settings/Warnings.hs
- libffi-tarballs
- libraries/Cabal
- libraries/array
- libraries/base/Data/Complex.hs
- libraries/base/Data/Data.hs
- libraries/base/Data/Foldable1.hs
- libraries/base/Data/Function.hs
- libraries/base/Data/List.hs
- libraries/base/Data/Monoid.hs
- libraries/base/Data/OldList.hs
- libraries/base/Data/Semigroup.hs
- libraries/base/Data/Semigroup/Internal.hs
- libraries/base/Data/String.hs
- libraries/base/GHC/Base.hs
- libraries/base/GHC/Clock.hsc
- libraries/base/GHC/Conc/POSIX.hs
- libraries/base/GHC/Event/KQueue.hsc
- libraries/base/GHC/Float.hs
- libraries/base/GHC/IO/Encoding/Types.hs
- libraries/base/GHC/IO/Handle/Text.hs
- libraries/base/GHC/List.hs
- libraries/base/GHC/Unicode/Internal/Char/DerivedCoreProperties.hs
- libraries/base/GHC/Unicode/Internal/Char/UnicodeData/GeneralCategory.hs
- libraries/base/GHC/Unicode/Internal/Char/UnicodeData/SimpleLowerCaseMapping.hs
- libraries/base/GHC/Unicode/Internal/Char/UnicodeData/SimpleTitleCaseMapping.hs
- libraries/base/GHC/Unicode/Internal/Char/UnicodeData/SimpleUpperCaseMapping.hs
- libraries/base/GHC/Unicode/Internal/Version.hs
- libraries/base/Numeric.hs
- libraries/base/System/Posix/Internals.hs
- libraries/base/aclocal.m4
- libraries/base/base.cabal
- libraries/base/changelog.md
- libraries/base/configure.ac
- libraries/base/include/HsBase.h
- libraries/base/jsbits/base.js
- libraries/base/jsbits/errno.js
- libraries/base/tests/IO/all.T
- + libraries/base/tests/IO/openFile003.stdout-javascript-unknown-ghcjs
- libraries/base/tests/Makefile
- libraries/base/tests/System/all.T
- + libraries/base/tests/T23687.hs
- + libraries/base/tests/T23697.hsc
- + libraries/base/tests/T23697.stdout
- libraries/base/tests/all.T
- libraries/base/tests/unicode003.stdout
- libraries/base/tools/ucd2haskell/ucd.sh
- libraries/base/tools/ucd2haskell/unicode_version
- libraries/bytestring
- libraries/containers
- libraries/deepseq
- libraries/directory
- libraries/exceptions
- libraries/filepath
- libraries/ghc-bignum/ghc-bignum.cabal
- libraries/ghc-bignum/src/GHC/Num/Backend/Native.hs
- libraries/ghc-bignum/src/GHC/Num/BigNat.hs
- libraries/ghc-boot-th/ghc-boot-th.cabal.in
- libraries/ghc-boot/ghc-boot.cabal.in
- libraries/ghc-compact/ghc-compact.cabal
- libraries/ghc-heap/ghc-heap.cabal.in
- libraries/ghc-prim/GHC/Tuple/Prim.hs
- libraries/ghc-prim/GHC/Types.hs
- libraries/ghc-prim/changelog.md
- libraries/ghc-prim/ghc-prim.cabal → libraries/ghc-prim/ghc-prim.cabal.in
- libraries/ghci/GHCi/FFI.hsc
- libraries/ghci/GHCi/Message.hs
- libraries/ghci/GHCi/ObjLink.hs
- libraries/ghci/GHCi/Run.hs
- libraries/ghci/ghci.cabal.in
- libraries/haskeline
- libraries/hpc
- libraries/parsec
- libraries/process
- libraries/semaphore-compat
- libraries/stm
- libraries/template-haskell/Language/Haskell/TH/Ppr.hs
- libraries/template-haskell/changelog.md
- libraries/template-haskell/template-haskell.cabal.in
- libraries/terminfo
- libraries/text
- libraries/unix
- linters/lint-commit-msg/lint-commit-msg.cabal
- linters/lint-submodule-refs/Main.hs
- linters/lint-submodule-refs/lint-submodule-refs.cabal
- linters/lint-whitespace/lint-whitespace.cabal
- linters/linters-common/Linters/Common.hs
- linters/linters-common/linters-common.cabal
- + m4/emsdk_version.m4
- m4/find_ld.m4
- + m4/fp_armv8_outline_atomics.m4
- m4/fp_cc_linker_flag_try.m4
- m4/fp_find_libnuma.m4
- m4/fp_ld_no_fixup_chains.m4
- + m4/fp_ld_no_warn_duplicate_libraries.m4
- + m4/fp_prog_ld_single_module.m4
- + m4/fp_prog_move_to_flags.m4
- m4/fptools_alex.m4
- − m4/library_version.m4
- − m4/xcode_version.m4
- + mk/hsc2hs.in
- mk/system-cxx-std-lib-1.0.conf.in
- nofib
- + rts/ARMOutlineAtomicsSymbols.h
- rts/Apply.cmm
- rts/Capability.h
- rts/CheckUnload.c
- rts/Compact.cmm
- rts/Continuation.c
- rts/Disassembler.c
- rts/Exception.cmm
- rts/ExecPage.c
- rts/ForeignExports.c
- rts/Globals.c
- rts/Heap.c
- rts/HeapStackCheck.cmm
- rts/IPE.c
- rts/Interpreter.c
- rts/Libdw.c
- rts/Linker.c
- rts/LinkerInternals.h
- rts/Messages.c
- rts/OldARMAtomic.c
- rts/PrimOps.cmm
- rts/Printer.c
- rts/ProfHeap.c
- rts/ProfilerReportJson.c
- rts/Profiling.c
- rts/Profiling.h
- rts/RaiseAsync.c
- rts/ReportMemoryMap.c
- rts/RtsAPI.c
- rts/RtsFlags.c
- rts/RtsMessages.c
- rts/RtsSymbols.c
- rts/Schedule.c
- rts/Sparks.c
- rts/StableName.c
- rts/StaticPtrTable.c
- rts/Stats.c
- rts/StgMiscClosures.cmm
- rts/ThreadPaused.c
- rts/Threads.c
- rts/Ticky.c
- rts/Trace.c
- rts/Trace.h
- rts/TraverseHeap.c
- rts/Updates.cmm
- rts/Updates.h
- rts/adjustor/LibffiAdjustor.c
- rts/adjustor/NativeAmd64.c
- rts/adjustor/NativeAmd64Mingw.c
- rts/adjustor/NativeIA64.c
- rts/adjustor/NativePowerPC.c
- rts/adjustor/Nativei386.c
- rts/eventlog/EventLog.c
- rts/eventlog/EventLog.h
- rts/gen_event_types.py
- rts/include/Cmm.h
- rts/include/Stg.h
- rts/include/rts/Flags.h
- rts/include/rts/Globals.h
- rts/include/rts/Linker.h
- rts/include/rts/Messages.h
- rts/include/rts/TSANUtils.h
- + rts/include/rts/ghc_ffi.h
- rts/include/rts/storage/Block.h
- rts/include/rts/storage/Closures.h
- rts/include/stg/MachRegs.h
- rts/include/stg/MachRegsForHost.h
- rts/include/stg/SMP.h
- rts/js/arith.js
- rts/js/globals.js
- rts/js/rts.js
- rts/js/string.js
- rts/js/verify.js
- rts/linker/Elf.c
- rts/linker/Elf.h
- + rts/linker/LoadNativeObjPosix.c
- + rts/linker/LoadNativeObjPosix.h
- rts/linker/M32Alloc.c
- rts/linker/PEi386.c
- rts/linker/PEi386.h
- rts/linker/elf_plt.c
- rts/linker/elf_reloc_aarch64.c
- rts/linker/macho/plt.c
- rts/posix/GetTime.c
- rts/posix/Signals.c
- rts/rts.cabal.in
- rts/sm/BlockAlloc.c
- rts/sm/GC.c
- rts/sm/MarkWeak.c
- rts/sm/NonMoving.c
- rts/sm/NonMoving.h
- rts/sm/NonMovingAllocate.c
- rts/sm/NonMovingCensus.c
- rts/sm/NonMovingMark.c
- rts/sm/NonMovingSweep.c
- rts/sm/Sanity.c
- rts/sm/Scav.c
- rts/sm/Storage.c
- rts/sm/Storage.h
- rts/wasm/GetTime.c
- rts/win32/AsyncMIO.c
- rts/win32/AsyncWinIO.c
- rts/win32/ConsoleHandler.c
- rts/win32/GetTime.c
- rts/win32/OSThreads.c
- rts/win32/ThrIOManager.c
- rts/win32/WorkQueue.c
- testsuite/driver/testglobals.py
- testsuite/driver/testlib.py
- testsuite/tests/ado/T16135.stderr
- testsuite/tests/backpack/cabal/bkpcabal08/all.T
- testsuite/tests/backpack/cabal/bkpcabal08/bkpcabal08.stdout
- testsuite/tests/backpack/should_compile/bkp16.stderr
- testsuite/tests/backpack/should_fail/all.T
- testsuite/tests/backpack/should_fail/bkpfail16.stderr
- testsuite/tests/backpack/should_fail/bkpfail17.stderr
- testsuite/tests/backpack/should_fail/bkpfail19.stderr
- testsuite/tests/cabal/all.T
- + testsuite/tests/cabal/fileStatus.hs
- + testsuite/tests/cabal/fileStatus.stdout
- testsuite/tests/cmm/should_compile/Makefile
- + testsuite/tests/cmm/should_compile/T23610.cmm
- testsuite/tests/cmm/should_compile/all.T
- + testsuite/tests/codeGen/should_compile/T25177.hs
- + testsuite/tests/codeGen/should_compile/T25177.stderr
- testsuite/tests/codeGen/should_compile/all.T
- + testsuite/tests/codeGen/should_gen_asm/T24941.hs
- testsuite/tests/codeGen/should_gen_asm/all.T
- + testsuite/tests/codeGen/should_run/MulMayOflo.hs
- + testsuite/tests/codeGen/should_run/MulMayOflo_full.cmm
- + testsuite/tests/codeGen/should_run/T23034.h
- + testsuite/tests/codeGen/should_run/T23034.hs
- + testsuite/tests/codeGen/should_run/T23034.stdout
- + testsuite/tests/codeGen/should_run/T23034_c.c
- + testsuite/tests/codeGen/should_run/T24295a.hs
- + testsuite/tests/codeGen/should_run/T24295a.stdout
- + testsuite/tests/codeGen/should_run/T24295b.hs
- + testsuite/tests/codeGen/should_run/T24507.hs
- + testsuite/tests/codeGen/should_run/T24507.stdout
- + testsuite/tests/codeGen/should_run/T24507_cmm.cmm
- + testsuite/tests/codeGen/should_run/T24664a.hs
- + testsuite/tests/codeGen/should_run/T24664a.stdout
- + testsuite/tests/codeGen/should_run/T24664b.hs
- + testsuite/tests/codeGen/should_run/T24664b.stdout
- + testsuite/tests/codeGen/should_run/T24700.hs
- + testsuite/tests/codeGen/should_run/T24700.stdin
- + testsuite/tests/codeGen/should_run/T24700.stdout
- + testsuite/tests/codeGen/should_run/T24893.hs
- + testsuite/tests/codeGen/should_run/T24893.stdout
- testsuite/tests/codeGen/should_run/all.T
- testsuite/tests/concurrent/should_run/all.T
- + testsuite/tests/core-to-stg/T23914.hs
- + testsuite/tests/core-to-stg/T24718.hs
- testsuite/tests/core-to-stg/all.T
- testsuite/tests/count-deps/CountDepsAst.stdout
- testsuite/tests/count-deps/CountDepsParser.stdout
- + testsuite/tests/cpranal/should_compile/T23862.hs
- + testsuite/tests/cpranal/should_compile/T23862.stderr
- testsuite/tests/cpranal/should_compile/all.T
- testsuite/tests/dependent/should_compile/T14066a.stderr
- testsuite/tests/dependent/should_compile/T16391a.hs
- testsuite/tests/dependent/should_fail/BadTelescope.stderr
- testsuite/tests/dependent/should_fail/BadTelescope3.stderr
- testsuite/tests/dependent/should_fail/BadTelescope4.stderr
- testsuite/tests/dependent/should_fail/T14066f.stderr
- testsuite/tests/dependent/should_fail/T14066g.stderr
- testsuite/tests/dependent/should_fail/T15591b.stderr
- testsuite/tests/dependent/should_fail/T15591c.stderr
- testsuite/tests/dependent/should_fail/T15743c.stderr
- testsuite/tests/dependent/should_fail/T15743d.stderr
- + testsuite/tests/deriving/should_fail/T23522.stderr
- testsuite/tests/deriving/should_fail/T8165_fail2.stderr
- testsuite/tests/driver/Makefile
- testsuite/tests/driver/T1372/all.T
- testsuite/tests/driver/T20436/T20436.stderr
- testsuite/tests/driver/T20604/T20604.stdout
- + testsuite/tests/driver/T21097/Makefile
- + testsuite/tests/driver/T21097/T21097.stderr
- + testsuite/tests/driver/T21097/Test.hs
- + testsuite/tests/driver/T21097/all.T
- + testsuite/tests/driver/T21097/pkgdb/a.conf
- + testsuite/tests/driver/T21097/pkgdb/b.conf
- + testsuite/tests/driver/T21097/pkgdb/c.conf
- + testsuite/tests/driver/T21097b/Makefile
- + testsuite/tests/driver/T21097b/T21097b.stdout
- + testsuite/tests/driver/T21097b/Test.hs
- + testsuite/tests/driver/T21097b/all.T
- + testsuite/tests/driver/T21097b/pkgdb/a.conf
- + testsuite/tests/driver/T21097b/pkgdb/b.conf
- + testsuite/tests/driver/T21097b/pkgdb/c.conf
- + testsuite/tests/driver/T23613.hs
- + testsuite/tests/driver/T24196/T24196.stderr
- + testsuite/tests/driver/T24196/T24196A.hs
- + testsuite/tests/driver/T24196/T24196A.hs-boot
- + testsuite/tests/driver/T24196/T24196B.hs
- + testsuite/tests/driver/T24196/all.T
- + testsuite/tests/driver/T24275/T24275.stderr
- + testsuite/tests/driver/T24275/T24275A.hs
- + testsuite/tests/driver/T24275/T24275A.hs-boot
- + testsuite/tests/driver/T24275/T24275B.hs
- + testsuite/tests/driver/T24275/T24275B.hs-boot
- + testsuite/tests/driver/T24275/all.T
- testsuite/tests/driver/T4437.hs
- testsuite/tests/driver/all.T
- + testsuite/tests/driver/multipleHomeUnits/T25122/T25122.hs
- testsuite/tests/driver/multipleHomeUnits/all.T
- testsuite/tests/driver/multipleHomeUnits/hi-dir/all.T
- + testsuite/tests/driver/multipleHomeUnits/mhu-perf/Makefile
- + testsuite/tests/driver/multipleHomeUnits/mhu-perf/Setup.hs
- + testsuite/tests/driver/multipleHomeUnits/mhu-perf/all.T
- + testsuite/tests/driver/multipleHomeUnits/mhu-perf/genLargeHMU
- + testsuite/tests/driver/multipleHomeUnits/mhu-perf/mhu-perf.stderr
- testsuite/tests/driver/multipleHomeUnits/o-files/all.T
- testsuite/tests/driver/multipleHomeUnits/target-file-path/all.T
- + testsuite/tests/driver/multipleHomeUnits/unitSame1
- + testsuite/tests/driver/multipleHomeUnits/unitSame2
- testsuite/tests/driver/recomp007/all.T
- testsuite/tests/driver/recomp007/recomp007.stdout
- + testsuite/tests/driver/recomp24656/A.hs
- + testsuite/tests/driver/recomp24656/Makefile
- + testsuite/tests/driver/recomp24656/all.T
- + testsuite/tests/driver/recomp24656/recomp24656.stdout
- + testsuite/tests/driver/t23724/LICENSE
- + testsuite/tests/driver/t23724/Makefile
- + testsuite/tests/driver/t23724/README.md
- + testsuite/tests/driver/t23724/Setup.hs
- + testsuite/tests/driver/t23724/all.T
- + testsuite/tests/driver/t23724/cabal.project
- + testsuite/tests/driver/t23724/packageA/Setup.hs
- + testsuite/tests/driver/t23724/packageA/packageA.cabal
- + testsuite/tests/driver/t23724/packageA/src/LibA.hs
- + testsuite/tests/driver/t23724/packageA/src/LibA1.hs
- + testsuite/tests/driver/t23724/packageA/src/LibA2.hs
- + testsuite/tests/driver/t23724/packageB/Setup.hs
- + testsuite/tests/driver/t23724/packageB/app/Main.hs
- + testsuite/tests/driver/t23724/packageB/packageB.cabal
- + testsuite/tests/driver/t23724/packageB/src/LibB.hs
- + testsuite/tests/driver/t23724/recompPkgLink.stdout
- + testsuite/tests/ffi/should_run/T24314.hs
- + testsuite/tests/ffi/should_run/T24314.stdout
- + testsuite/tests/ffi/should_run/T24314_c.c
- testsuite/tests/ffi/should_run/all.T
- testsuite/tests/gadt/T19847.hs
- testsuite/tests/gadt/T19847a.stderr
- testsuite/tests/ghc-api/T10052/T10052.stderr
- testsuite/tests/ghc-api/T18522-dbg-ppr.hs
- testsuite/tests/ghc-api/all.T
- testsuite/tests/ghc-api/annotations-literals/all.T
- testsuite/tests/ghc-api/downsweep/all.T
- + testsuite/tests/ghc-api/settings-escape/T11938.hs
- + testsuite/tests/ghc-api/settings-escape/T11938.stderr
- + testsuite/tests/ghc-api/settings-escape/all.T
- + testsuite/tests/ghc-api/settings-escape/ghc-install-folder/lib/.gitkeep
- + testsuite/tests/ghc-api/settings-escape/ghc-install-folder/mingw/.gitkeep
- testsuite/tests/ghc-api/target-contents/all.T
- testsuite/tests/ghc-e/should_fail/Makefile
- testsuite/tests/ghc-e/should_fail/T18441fail2.stderr
- + testsuite/tests/ghc-e/should_fail/T23663.stderr
- testsuite/tests/ghc-e/should_fail/all.T
- + testsuite/tests/ghci.debugger/scripts/T23057.hs
- + testsuite/tests/ghci.debugger/scripts/T23057.script
- + testsuite/tests/ghci.debugger/scripts/T23057.stdout
- + testsuite/tests/ghci.debugger/scripts/T25109.hs
- + testsuite/tests/ghci.debugger/scripts/T25109.script
- + testsuite/tests/ghci.debugger/scripts/T25109.stdout
- testsuite/tests/ghci.debugger/scripts/all.T
- + testsuite/tests/ghci/T23405/T23405.hs
- + testsuite/tests/ghci/T23405/T23405.script
- + testsuite/tests/ghci/T23405/all.T
- + testsuite/tests/ghci/T23612/T23612.hs
- + testsuite/tests/ghci/T23612/T23612.script
- + testsuite/tests/ghci/T23612/T23612b.script
- + testsuite/tests/ghci/T23612/T23612bA.hs
- + testsuite/tests/ghci/T23612/T23612bB.hs
- + testsuite/tests/ghci/T23612/all.T
- testsuite/tests/ghci/linking/all.T
- testsuite/tests/ghci/linking/dyn/T3372.hs
- testsuite/tests/ghci/scripts/T15898.stderr
- + testsuite/tests/ghci/scripts/T16468.script
- + testsuite/tests/ghci/scripts/T16468.stdout
- testsuite/tests/ghci/scripts/T21110.stderr
- testsuite/tests/ghci/scripts/T6018ghcifail.stderr
- testsuite/tests/ghci/scripts/T7939.stdout
- testsuite/tests/ghci/scripts/T9881.stdout
- testsuite/tests/ghci/scripts/all.T
- testsuite/tests/ghci/scripts/ghci024.stdout
- testsuite/tests/ghci/scripts/ghci024.stdout-mingw32
- testsuite/tests/ghci/should_fail/T10549.stderr
- + testsuite/tests/ghci/should_run/LargeBCO.hs
- + testsuite/tests/ghci/should_run/LargeBCO.stdout
- + testsuite/tests/ghci/should_run/LargeBCO_A.hs
- testsuite/tests/ghci/should_run/T16096.stdout
- + testsuite/tests/ghci/should_run/T22888.hs
- + testsuite/tests/ghci/should_run/T24115.hs
- + testsuite/tests/ghci/should_run/T24115.script
- testsuite/tests/ghci/should_run/all.T
- + testsuite/tests/hiefile/should_run/T23492.hs
- + testsuite/tests/hiefile/should_run/T23492.stdout
- testsuite/tests/hiefile/should_run/all.T
- testsuite/tests/hpc/T17073.stdout
- testsuite/tests/indexed-types/should_compile/Simple14.stderr
- testsuite/tests/indexed-types/should_compile/T11361a.stderr
- testsuite/tests/indexed-types/should_compile/T15352.hs
- testsuite/tests/indexed-types/should_compile/T16356_Compile1.hs
- + testsuite/tests/indexed-types/should_compile/T24134.hs
- testsuite/tests/indexed-types/should_compile/T9085.stderr
- testsuite/tests/indexed-types/should_compile/all.T
- testsuite/tests/indexed-types/should_fail/ClosedFam3.stderr
- testsuite/tests/indexed-types/should_fail/ExplicitForAllFams4a.stderr
- testsuite/tests/indexed-types/should_fail/ExplicitForAllFams4b.stderr
- testsuite/tests/indexed-types/should_fail/NotRelaxedExamples.stderr
- testsuite/tests/indexed-types/should_fail/Overlap4.stderr
- testsuite/tests/indexed-types/should_fail/SimpleFail13.stderr
- testsuite/tests/indexed-types/should_fail/SimpleFail2a.stderr
- testsuite/tests/indexed-types/should_fail/SimpleFail3a.stderr
- testsuite/tests/indexed-types/should_fail/SimpleFail4.stderr
- testsuite/tests/indexed-types/should_fail/SimpleFail9.stderr
- testsuite/tests/indexed-types/should_fail/T10817.stderr
- testsuite/tests/indexed-types/should_fail/T11136.stderr
- testsuite/tests/indexed-types/should_fail/T11450.stderr
- testsuite/tests/indexed-types/should_fail/T12041.stderr
- testsuite/tests/indexed-types/should_fail/T13971.stderr
- testsuite/tests/indexed-types/should_fail/T13971b.stderr
- testsuite/tests/indexed-types/should_fail/T14230.stderr
- testsuite/tests/indexed-types/should_fail/T14230a.stderr
- testsuite/tests/indexed-types/should_fail/T14887.stderr
- testsuite/tests/indexed-types/should_fail/T15172.stderr
- testsuite/tests/indexed-types/should_fail/T15764.stderr
- testsuite/tests/indexed-types/should_fail/T16110_Fail2.stderr
- testsuite/tests/indexed-types/should_fail/T16110_Fail3.stderr
- testsuite/tests/indexed-types/should_fail/T16356_Fail1.stderr
- testsuite/tests/indexed-types/should_fail/T16356_Fail2.stderr
- testsuite/tests/indexed-types/should_fail/T17008a.stderr
- testsuite/tests/indexed-types/should_fail/T18648.stderr
- testsuite/tests/indexed-types/should_fail/T2203a.stderr
- testsuite/tests/indexed-types/should_fail/T3092.stderr
- testsuite/tests/indexed-types/should_fail/T5515.stderr
- testsuite/tests/indexed-types/should_fail/T7536.stderr
- testsuite/tests/indexed-types/should_fail/T7788.stderr
- testsuite/tests/indexed-types/should_fail/T8550.stderr
- testsuite/tests/indexed-types/should_fail/T9097.stderr
- testsuite/tests/indexed-types/should_fail/T9160.stderr
- testsuite/tests/indexed-types/should_fail/T9554.stderr
- testsuite/tests/indexed-types/should_fail/T9896.stderr
- testsuite/tests/indexed-types/should_fail/TyFamArity1.stderr
- testsuite/tests/indexed-types/should_fail/TyFamArity2.stderr
- testsuite/tests/indexed-types/should_fail/TyFamUndec.stderr
- + testsuite/tests/javascript/T23565.hs
- testsuite/tests/javascript/all.T
- testsuite/tests/javascript/js-ffi-string.hs
- testsuite/tests/javascript/js-ffi-string.stdout
- + testsuite/tests/javascript/js-mk_tup.hs
- + testsuite/tests/javascript/js-mk_tup.stdout
- + testsuite/tests/javascript/test-mk_tup.js
- + testsuite/tests/lib/base/T24672.hs
- + testsuite/tests/lib/base/T24672.stdout
- testsuite/tests/lib/base/all.T
- + testsuite/tests/linear/should_compile/T23814.hs
- testsuite/tests/linear/should_compile/all.T
- + testsuite/tests/linear/should_fail/T23814fail.hs
- + testsuite/tests/linear/should_fail/T23814fail.stderr
- testsuite/tests/linear/should_fail/all.T
- + testsuite/tests/llvm/should_compile/T25019.hs
- + testsuite/tests/llvm/should_compile/T25353.asm
- + testsuite/tests/llvm/should_compile/T25353.hs
- testsuite/tests/llvm/should_compile/all.T
- + testsuite/tests/numeric/should_compile/T23907.hs
- + testsuite/tests/numeric/should_compile/T23907.stderr
- testsuite/tests/numeric/should_compile/all.T
- + testsuite/tests/numeric/should_run/T24066.hs
- + testsuite/tests/numeric/should_run/T24066.stdout
- testsuite/tests/numeric/should_run/all.T
- testsuite/tests/overloadedrecflds/should_compile/BootFldReexport.stderr
- + testsuite/tests/overloadedrecflds/should_compile/T23279.hs
- + testsuite/tests/overloadedrecflds/should_compile/T23279.stderr
- + testsuite/tests/overloadedrecflds/should_compile/T23279_aux.hs
- + testsuite/tests/overloadedrecflds/should_compile/T23557.hs
- + testsuite/tests/overloadedrecflds/should_compile/T23557_aux.hs
- + testsuite/tests/overloadedrecflds/should_compile/T24293.hs
- + testsuite/tests/overloadedrecflds/should_compile/T24293b.hs
- + testsuite/tests/overloadedrecflds/should_compile/T24293c.hs
- + testsuite/tests/overloadedrecflds/should_compile/T24293c.stderr
- + testsuite/tests/overloadedrecflds/should_compile/T24381.hs
- testsuite/tests/overloadedrecflds/should_compile/all.T
- testsuite/tests/overloadedrecflds/should_fail/T16745.stderr
- testsuite/tests/overloadedrecflds/should_fail/T18999_NoDisambiguateRecordFields.stderr
- testsuite/tests/parser/should_fail/T3811c.stderr
- testsuite/tests/patsyn/should_compile/T13350/all.T
- testsuite/tests/patsyn/should_compile/T22328.hs
- testsuite/tests/patsyn/should_fail/T14507.hs
- testsuite/tests/patsyn/should_fail/T14507.stderr
- testsuite/tests/perf/compiler/CoOpt_Singletons.hs
- + testsuite/tests/perf/compiler/MultiLayerModulesDefsGhciReload.script
- testsuite/tests/perf/compiler/all.T
- + testsuite/tests/perf/compiler/large-project/all.T
- + testsuite/tests/perf/compiler/large-project/large-project.sh
- + testsuite/tests/perf/should_run/T25055.hs
- + testsuite/tests/perf/should_run/T25055.stdout
- testsuite/tests/perf/should_run/UniqLoop.hs
- testsuite/tests/perf/should_run/all.T
- testsuite/tests/plugins/Makefile
- + testsuite/tests/plugins/T23821.hs
- testsuite/tests/plugins/all.T
- + testsuite/tests/plugins/defaulting-plugin/DefaultInterference.hs
- testsuite/tests/plugins/defaulting-plugin/defaulting-plugin.cabal
- + testsuite/tests/pmcheck/should_compile/LongDistanceDo.hs
- + testsuite/tests/pmcheck/should_compile/LongDistanceGRHS.hs
- testsuite/tests/pmcheck/should_compile/T12957a.stderr
- testsuite/tests/pmcheck/should_compile/T17783.hs
- testsuite/tests/pmcheck/should_compile/T21360.hs
- + testsuite/tests/pmcheck/should_compile/T21360b.hs
- + testsuite/tests/pmcheck/should_compile/T23520.hs
- + testsuite/tests/pmcheck/should_compile/T23520.stderr
- testsuite/tests/pmcheck/should_compile/all.T
- testsuite/tests/polykinds/T11480b.hs
- testsuite/tests/polykinds/T11523.hs
- testsuite/tests/polykinds/T12055.hs
- testsuite/tests/polykinds/T12055a.hs
- testsuite/tests/polykinds/T12055a.stderr
- testsuite/tests/polykinds/T13267.stderr
- testsuite/tests/polykinds/T14110.stderr
- testsuite/tests/polykinds/T14172.stderr
- testsuite/tests/polykinds/T14450.stderr
- testsuite/tests/polykinds/T16244.hs
- testsuite/tests/polykinds/T16244.stderr
- testsuite/tests/polykinds/T16245.hs
- testsuite/tests/polykinds/T16245.stderr
- testsuite/tests/polykinds/T16245a.hs
- testsuite/tests/polykinds/T16245a.stderr
- + testsuite/tests/polykinds/T24083.hs
- + testsuite/tests/polykinds/T24083.stderr
- + testsuite/tests/polykinds/T24083a.hs
- testsuite/tests/polykinds/T7224.hs
- testsuite/tests/polykinds/T7224.stderr
- testsuite/tests/polykinds/T9574.stderr
- testsuite/tests/polykinds/TidyClassKinds.stderr
- testsuite/tests/polykinds/all.T
- + testsuite/tests/primops/Ben.dump-ds
- + testsuite/tests/primops/Ben.dump-ds-preopt
- + testsuite/tests/primops/Ben.dump-stg-final
- + testsuite/tests/primops/Ben.hs
- + testsuite/tests/primops/should_compile/T24160_FMA.hs
- testsuite/tests/primops/should_compile/all.T
- testsuite/tests/primops/should_run/ShowPrim.hs
- testsuite/tests/primops/should_run/ShowPrim.stdout
- + testsuite/tests/primops/should_run/T24496.hs
- + testsuite/tests/primops/should_run/T24496.stdout
- + testsuite/tests/primops/should_run/UnliftedWeakPtr.dump-ds
- + testsuite/tests/primops/should_run/UnliftedWeakPtr.dump-ds-preopt
- + testsuite/tests/primops/should_run/UnliftedWeakPtr.dump-stg-final
- testsuite/tests/primops/should_run/all.T
- testsuite/tests/printer/Makefile
- + testsuite/tests/printer/Test23465.hs
- + testsuite/tests/printer/Test23885.hs
- + testsuite/tests/printer/Test23887.hs
- testsuite/tests/printer/all.T
- + testsuite/tests/profiling/perf/Makefile
- + testsuite/tests/profiling/perf/T23103/all.T
- + testsuite/tests/profiling/perf/T23103/info_table_map_perf.stderr
- testsuite/tests/profiling/should_run/all.T
- testsuite/tests/programs/jtod_circint/test.T
- testsuite/tests/quantified-constraints/T15231.stderr
- testsuite/tests/quantified-constraints/T15316.stderr
- testsuite/tests/quantified-constraints/T15316A.stderr
- testsuite/tests/quantified-constraints/T17267.stderr
- testsuite/tests/quantified-constraints/T17267a.stderr
- testsuite/tests/quantified-constraints/T17267b.stderr
- testsuite/tests/quantified-constraints/T17267c.stderr
- testsuite/tests/quantified-constraints/T17267e.stderr
- testsuite/tests/quantified-constraints/T17458.stderr
- testsuite/tests/regalloc/all.T
- testsuite/tests/rename/prog006/all.T
- + testsuite/tests/rename/should_compile/T23664.hs
- + testsuite/tests/rename/should_compile/T24037.hs
- + testsuite/tests/rename/should_compile/T24084.hs
- + testsuite/tests/rename/should_compile/T24084_A.hs
- + testsuite/tests/rename/should_compile/T24084_B.hs
- testsuite/tests/rename/should_compile/all.T
- + testsuite/tests/rename/should_fail/RnFail059.hs
- + testsuite/tests/rename/should_fail/RnFail059.hs-boot
- + testsuite/tests/rename/should_fail/RnFail059_aux.hs
- + testsuite/tests/rename/should_fail/SimilarNamesImport.hs
- + testsuite/tests/rename/should_fail/SimilarNamesImport.stderr
- + testsuite/tests/rename/should_fail/SimilarNamesImport_aux.hs
- testsuite/tests/rename/should_fail/T15828.stderr
- testsuite/tests/rename/should_fail/T16385.stderr
- testsuite/tests/rename/should_fail/T18021.stderr
- testsuite/tests/rename/should_fail/T18240a.stderr
- testsuite/tests/rename/should_fail/T5513.stderr
- testsuite/tests/rename/should_fail/all.T
- testsuite/tests/rename/should_fail/rnfail055.stderr
- + testsuite/tests/rename/should_fail/rnfail059.stderr
- + testsuite/tests/rep-poly/T22291.hs
- + testsuite/tests/rep-poly/T22291b.hs
- testsuite/tests/rep-poly/all.T
- testsuite/tests/roles/should_fail/Roles12.stderr
- testsuite/tests/roles/should_fail/T23252.stderr
- testsuite/tests/roles/should_fail/T9204.stderr
- + testsuite/tests/rts/T22012.hs
- + testsuite/tests/rts/T22012.stdout
- + testsuite/tests/rts/T22012_c.c
- testsuite/tests/rts/T5644/all.T
- testsuite/tests/rts/all.T
- + testsuite/tests/rts/continuations/T23513.hs
- + testsuite/tests/rts/continuations/T23513.stdout
- testsuite/tests/rts/continuations/all.T
- + testsuite/tests/rts/ipe/IpeStats/Fold.hs
- + testsuite/tests/rts/ipe/IpeStats/Makefile
- + testsuite/tests/rts/ipe/IpeStats/all.T
- testsuite/tests/rts/linker/Makefile
- testsuite/tests/rts/linker/T2615.hs
- testsuite/tests/rts/linker/T7072-obj.c → testsuite/tests/rts/linker/T7072.c
- testsuite/tests/rts/linker/all.T
- testsuite/tests/rts/linker/T7072-main.c → testsuite/tests/rts/linker/load-object.c
- + testsuite/tests/rts/linker/reloc-none.c
- + testsuite/tests/rts/linker/reloc-none.stderr
- testsuite/tests/rts/linker/unload_multiple_objs/linker_unload_multiple_objs.c
- testsuite/tests/safeHaskell/check/pkg01/all.T
- testsuite/tests/safeHaskell/ghci/p12.stderr
- testsuite/tests/safeHaskell/ghci/p5.stderr
- testsuite/tests/saks/should_compile/saks018.hs
- testsuite/tests/saks/should_compile/saks021.hs
- testsuite/tests/saks/should_compile/saks030.hs
- testsuite/tests/saks/should_compile/saks032.hs
- testsuite/tests/saks/should_fail/all.T
- + testsuite/tests/saks/should_fail/saks018-fail.hs
- + testsuite/tests/saks/should_fail/saks018-fail.stderr
- + testsuite/tests/saks/should_fail/saks021-fail.hs
- + testsuite/tests/saks/should_fail/saks021-fail.stderr
- testsuite/tests/showIface/DocsInHiFile1.stdout
- testsuite/tests/showIface/DocsInHiFileTH.stdout
- testsuite/tests/showIface/HaddockIssue849.stdout
- testsuite/tests/showIface/HaddockOpts.stdout
- + testsuite/tests/showIface/HaddockSpanIssueT24378.hs
- + testsuite/tests/showIface/HaddockSpanIssueT24378.stdout
- testsuite/tests/showIface/MagicHashInHaddocks.stdout
- testsuite/tests/showIface/Makefile
- testsuite/tests/showIface/NoExportList.stdout
- testsuite/tests/showIface/PragmaDocs.stdout
- testsuite/tests/showIface/ReExports.stdout
- testsuite/tests/showIface/all.T
- testsuite/tests/simplCore/T9646/test.T
- testsuite/tests/simplCore/prog003/simplCore.oneShot.stderr → testsuite/tests/simplCore/prog003/simplCore-oneShot.stderr
- testsuite/tests/simplCore/prog003/simplCore.oneShot.stdout → testsuite/tests/simplCore/prog003/simplCore-oneShot.stdout
- testsuite/tests/simplCore/prog003/test.T
- + testsuite/tests/simplCore/should_compile/T23272.hs
- + testsuite/tests/simplCore/should_compile/T23272.script
- + testsuite/tests/simplCore/should_compile/T23567.hs
- + testsuite/tests/simplCore/should_compile/T23567A.hs
- + testsuite/tests/simplCore/should_compile/T23630.hs
- + testsuite/tests/simplCore/should_compile/T23922a.hs
- + testsuite/tests/simplCore/should_compile/T23938.hs
- + testsuite/tests/simplCore/should_compile/T23938A.hs
- + testsuite/tests/simplCore/should_compile/T23952.hs
- + testsuite/tests/simplCore/should_compile/T23952a.hs
- + testsuite/tests/simplCore/should_compile/T24370.hs
- + testsuite/tests/simplCore/should_compile/T24726.hs
- + testsuite/tests/simplCore/should_compile/T24726.stderr
- testsuite/tests/simplCore/should_compile/T8331.stderr
- testsuite/tests/simplCore/should_compile/all.T
- testsuite/tests/simplCore/should_run/T22448.hs
- testsuite/tests/simplCore/should_run/all.T
- + testsuite/tests/simplStg/should_run/T23783.hs
- + testsuite/tests/simplStg/should_run/T23783a.hs
- testsuite/tests/simplStg/should_run/all.T
- + testsuite/tests/stranal/should_run/T25439.hs
- + testsuite/tests/stranal/should_run/T25439.stdout
- testsuite/tests/stranal/should_run/all.T
- testsuite/tests/th/T15433b.hs
- testsuite/tests/th/T20454.hs
- testsuite/tests/th/T20454.stdout
- + testsuite/tests/th/T23748.hs
- + testsuite/tests/th/T24837.hs
- + testsuite/tests/th/T24837.stderr
- testsuite/tests/th/T7241.stderr
- testsuite/tests/th/T8333.stderr
- testsuite/tests/th/all.T
- + testsuite/tests/th/should_compile/T24870/Def.hs
- + testsuite/tests/th/should_compile/T24870/Use.hs
- + testsuite/tests/th/should_compile/T24870/all.T
- + testsuite/tests/type-data/should_run/T24620.hs
- testsuite/tests/type-data/should_run/all.T
- + testsuite/tests/typecheck/T16127/T16127.hs
- + testsuite/tests/typecheck/T16127/T16127.hs-boot
- + testsuite/tests/typecheck/T16127/T16127.stderr
- + testsuite/tests/typecheck/T16127/T16127Helper.hs
- + testsuite/tests/typecheck/T16127/all.T
- testsuite/tests/typecheck/bug1465/all.T
- testsuite/tests/typecheck/should_compile/T13343.hs
- testsuite/tests/typecheck/should_compile/T15473.stderr
- testsuite/tests/typecheck/should_compile/T18851d.hs
- testsuite/tests/typecheck/should_compile/T19577.hs
- testsuite/tests/typecheck/should_compile/T20443a.hs
- testsuite/tests/typecheck/should_compile/T22310.hs
- testsuite/tests/typecheck/should_compile/T22383.hs
- testsuite/tests/typecheck/should_compile/T22560a.hs
- testsuite/tests/typecheck/should_compile/T22560b.hs
- testsuite/tests/typecheck/should_compile/T22560c.hs
- testsuite/tests/typecheck/should_compile/T22560d.hs
- testsuite/tests/typecheck/should_compile/T22560e.hs
- + testsuite/tests/typecheck/should_compile/T23543.hs
- + testsuite/tests/typecheck/should_compile/T24146.hs
- testsuite/tests/typecheck/should_compile/T6018.hs
- testsuite/tests/typecheck/should_compile/T6018.stderr
- testsuite/tests/typecheck/should_compile/T9151.hs
- testsuite/tests/typecheck/should_compile/TyAppPat_Existential.hs
- testsuite/tests/typecheck/should_compile/TyAppPat_ExistentialMulti.hs
- testsuite/tests/typecheck/should_compile/TyAppPat_KindDependency.hs
- testsuite/tests/typecheck/should_compile/TyAppPat_Mixed.hs
- testsuite/tests/typecheck/should_compile/TyAppPat_TH.hs
- testsuite/tests/typecheck/should_compile/TyAppPat_Universal.hs
- testsuite/tests/typecheck/should_compile/TyAppPat_UniversalMulti1.hs
- testsuite/tests/typecheck/should_compile/TyAppPat_UniversalMulti2.hs
- testsuite/tests/typecheck/should_compile/TyAppPat_UniversalMulti3.hs
- testsuite/tests/typecheck/should_compile/TyAppPat_UniversalNested.hs
- testsuite/tests/typecheck/should_compile/TyAppPat_Wildcard.hs
- testsuite/tests/typecheck/should_compile/all.T
- testsuite/tests/typecheck/should_compile/tc265.stderr
- testsuite/tests/typecheck/should_fail/AssocTyDef02.stderr
- testsuite/tests/typecheck/should_fail/AssocTyDef03.stderr
- testsuite/tests/typecheck/should_fail/AssocTyDef05.stderr
- testsuite/tests/typecheck/should_fail/AssocTyDef06.stderr
- testsuite/tests/typecheck/should_fail/ContextStack1.stderr
- testsuite/tests/typecheck/should_fail/MultiAssocDefaults.stderr
- testsuite/tests/typecheck/should_fail/T12035.stderr
- testsuite/tests/typecheck/should_fail/T12035j.stderr
- testsuite/tests/typecheck/should_fail/T12042.stderr
- testsuite/tests/typecheck/should_fail/T15515.stderr
- testsuite/tests/typecheck/should_fail/T15552a.stderr
- + testsuite/tests/typecheck/should_fail/T17940.hs
- + testsuite/tests/typecheck/should_fail/T17940.stderr
- testsuite/tests/typecheck/should_fail/T18640a.hs
- testsuite/tests/typecheck/should_fail/T18640a.stderr
- testsuite/tests/typecheck/should_fail/T19187a.stderr
- testsuite/tests/typecheck/should_fail/T20588.stderr
- testsuite/tests/typecheck/should_fail/T20588c.stderr
- testsuite/tests/typecheck/should_fail/T21338.stderr
- testsuite/tests/typecheck/should_fail/T22560_fail_a.hs
- testsuite/tests/typecheck/should_fail/T22560_fail_a.stderr
- testsuite/tests/typecheck/should_fail/T22560_fail_b.hs
- testsuite/tests/typecheck/should_fail/T22560_fail_b.stderr
- testsuite/tests/typecheck/should_fail/T22560_fail_c.hs
- testsuite/tests/typecheck/should_fail/T22560_fail_c.stderr
- testsuite/tests/typecheck/should_fail/T22560_fail_d.hs
- testsuite/tests/typecheck/should_fail/T22560_fail_d.stderr
- testsuite/tests/typecheck/should_fail/T22570.stderr
- + testsuite/tests/typecheck/should_fail/T22684.hs
- + testsuite/tests/typecheck/should_fail/T22684.stderr
- testsuite/tests/typecheck/should_fail/T22924b.stderr
- + testsuite/tests/typecheck/should_fail/T23734.hs
- + testsuite/tests/typecheck/should_fail/T23734.stderr
- + testsuite/tests/typecheck/should_fail/T23776.hs
- + testsuite/tests/typecheck/should_fail/T23776.stderr
- + testsuite/tests/typecheck/should_fail/T23778.hs
- + testsuite/tests/typecheck/should_fail/T23778.stderr
- + testsuite/tests/typecheck/should_fail/T24279.hs
- + testsuite/tests/typecheck/should_fail/T24279.stderr
- + testsuite/tests/typecheck/should_fail/T25325.hs
- + testsuite/tests/typecheck/should_fail/T25325.stderr
- testsuite/tests/typecheck/should_fail/T3323.stderr
- testsuite/tests/typecheck/should_fail/T3468.stderr
- testsuite/tests/typecheck/should_fail/T6018fail.stderr
- testsuite/tests/typecheck/should_fail/TcCoercibleFail.stderr
- testsuite/tests/typecheck/should_fail/TyAppPat_ScopedTyVarConflict.hs
- testsuite/tests/typecheck/should_fail/TyAppPat_ScopedTyVarConflict.stderr
- testsuite/tests/typecheck/should_fail/all.T
- testsuite/tests/typecheck/should_fail/fd-loop.stderr
- testsuite/tests/typecheck/should_fail/tcfail108.stderr
- testsuite/tests/typecheck/should_fail/tcfail154.stderr
- testsuite/tests/typecheck/should_fail/tcfail157.stderr
- testsuite/tests/typecheck/should_fail/tcfail214.stderr
- + testsuite/tests/typecheck/should_run/T23761.hs
- + testsuite/tests/typecheck/should_run/T23761.stdout
- + testsuite/tests/typecheck/should_run/T23761b.hs
- + testsuite/tests/typecheck/should_run/T23761b.stdout
- testsuite/tests/typecheck/should_run/Typeable1.stderr
- testsuite/tests/typecheck/should_run/all.T
- testsuite/tests/unboxedsums/all.T
- testsuite/tests/unlifted-datatypes/should_compile/all.T
- + testsuite/tests/unsatisfiable/T23816.hs
- + testsuite/tests/unsatisfiable/T23816.stderr
- testsuite/tests/unsatisfiable/all.T
- + testsuite/tests/vdq-rta/should_fail/T24604.hs
- + testsuite/tests/vdq-rta/should_fail/T24604.stderr
- + testsuite/tests/vdq-rta/should_fail/T24604a.hs
- + testsuite/tests/vdq-rta/should_fail/T24604a.stderr
- + testsuite/tests/warnings/should_compile/T23465.hs
- + testsuite/tests/warnings/should_compile/T23465.stderr
- + testsuite/tests/warnings/should_compile/T23573.hs
- + testsuite/tests/warnings/should_compile/T23573.stderr
- + testsuite/tests/warnings/should_compile/T23573A.hs
- + testsuite/tests/warnings/should_compile/T23573B.hs
- testsuite/tests/warnings/should_compile/all.T
- utils/check-exact/ExactPrint.hs
- utils/check-exact/Main.hs
- utils/deriveConstants/Main.hs
- utils/genapply/Main.hs
- − utils/genapply/Makefile
- utils/genapply/genapply.cabal
- + utils/genapply/hie.yaml
- + utils/genprimopcode/AccessOps.hs
- utils/genprimopcode/Lexer.x
- utils/genprimopcode/Main.hs
- utils/genprimopcode/Parser.y
- utils/genprimopcode/ParserM.hs
- utils/genprimopcode/genprimopcode.cabal
- utils/ghc-cabal/ghc-cabal.cabal
- utils/haddock
- utils/hpc
- utils/hsc2hs
- utils/iserv/iserv.cabal.in
The diff was not included because it is too large.
View it on GitLab: https://gitlab.haskell.org/ghc/ghc/-/compare/5aaa70cbaab0364c45b48b5ad55173b...
--
View it on GitLab: https://gitlab.haskell.org/ghc/ghc/-/compare/5aaa70cbaab0364c45b48b5ad55173b...
You're receiving this email because of your account on gitlab.haskell.org.