[Git][ghc/ghc][ghc-9.8] 22 commits: Make 'wWarningFlagsDeps' include every WarningFlag

Zubin (@wz1000) gitlab at gitlab.haskell.org
Wed Feb 21 06:34:18 UTC 2024



Zubin pushed to branch ghc-9.8 at Glasgow Haskell Compiler / GHC


Commits:
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 <rjones at redhat.com>
(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)

- - - - -
be1a2d67 by Zubin Duggal at 2024-02-20T22:54:11+05:30
Prepare release 9.8.2

Metric Decrease:
    T13386

- - - - -
1816ab3a by Zubin Duggal at 2024-02-20T23:45:22+05:30
fixup! Fix unusable units and module reexport interaction (#21097)

- - - - -
2b964384 by Zubin Duggal at 2024-02-21T12:04:02+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)

- - - - -


30 changed files:

- .gitlab-ci.yml
- compiler/CodeGen.Platform.h
- compiler/GHC.hs
- compiler/GHC/Cmm/CallConv.hs
- compiler/GHC/Core/Opt/SpecConstr.hs
- compiler/GHC/Core/Opt/Specialise.hs
- compiler/GHC/Core/Predicate.hs
- compiler/GHC/Core/Subst.hs
- compiler/GHC/Driver/Flags.hs
- compiler/GHC/Driver/Pipeline.hs
- compiler/GHC/Driver/Session.hs
- compiler/GHC/HsToCore/Binds.hs
- compiler/GHC/HsToCore/Foreign/C.hs
- compiler/GHC/Platform/Wasm32.hs
- compiler/GHC/Rename/Doc.hs
- compiler/GHC/StgToCmm/Bind.hs
- compiler/GHC/StgToCmm/Prim.hs
- configure.ac
- docs/users_guide/9.8.1-notes.rst
- + docs/users_guide/9.8.2-notes.rst
- docs/users_guide/release-notes.rst
- hadrian/hadrian.cabal
- hadrian/src/Rules/Generate.hs
- + hadrian/src/Settings/Builders/GenApply.hs
- hadrian/src/Settings/Builders/Ghc.hs
- hadrian/src/Settings/Default.hs
- hadrian/src/Settings/Packages.hs
- libraries/base/base.cabal
- libraries/base/changelog.md
- libraries/bytestring


The diff was not included because it is too large.


View it on GitLab: https://gitlab.haskell.org/ghc/ghc/-/compare/b746f8a86d48f1c379228039a87e220dfb81fba6...2b96438431a5bce98e7931c29b46c745ce4d0468

-- 
View it on GitLab: https://gitlab.haskell.org/ghc/ghc/-/compare/b746f8a86d48f1c379228039a87e220dfb81fba6...2b96438431a5bce98e7931c29b46c745ce4d0468
You're receiving this email because of your account on gitlab.haskell.org.


-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mail.haskell.org/pipermail/ghc-commits/attachments/20240221/00a8c5ec/attachment-0001.html>


More information about the ghc-commits mailing list