[Git][ghc/ghc][wip/backports-9.8] 13 commits: Make 'wWarningFlagsDeps' include every WarningFlag

Zubin (@wz1000) gitlab at gitlab.haskell.org
Mon Feb 19 08:23:54 UTC 2024



Zubin pushed to branch wip/backports-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)

- - - - -
e5ef7679 by Andrew Lelechenko at 2024-02-19T13:53:39+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)

- - - - -
14a66e40 by Matthew Craven at 2024-02-19T13:53:39+05:30
Bump bytestring submodule to 0.12.1.0

(cherry picked from commit 5d3f786264db88a758ae65277c1b8d7f37f2e460)

- - - - -


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/Session.hs
- compiler/GHC/HsToCore/Binds.hs
- compiler/GHC/StgToCmm/Bind.hs
- compiler/GHC/StgToCmm/Prim.hs
- docs/users_guide/9.8.1-notes.rst
- libraries/base/changelog.md
- libraries/bytestring
- libraries/ghc-prim/changelog.md
- libraries/text
- rts/Apply.cmm
- rts/Compact.cmm
- rts/Heap.c
- rts/Interpreter.c
- rts/Messages.c
- rts/PrimOps.cmm
- rts/StableName.c
- rts/StgMiscClosures.cmm
- rts/ThreadPaused.c
- rts/Threads.c
- rts/Updates.cmm
- rts/Updates.h


The diff was not included because it is too large.


View it on GitLab: https://gitlab.haskell.org/ghc/ghc/-/compare/99999dc773c517850a4281e766ac5ea1132ce288...14a66e4094fc6bf1d128f1723d542fff6b8240fa

-- 
View it on GitLab: https://gitlab.haskell.org/ghc/ghc/-/compare/99999dc773c517850a4281e766ac5ea1132ce288...14a66e4094fc6bf1d128f1723d542fff6b8240fa
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/20240219/4e9d3722/attachment-0001.html>


More information about the ghc-commits mailing list