[Git][ghc/ghc][wip/ghc-9.8] 42 commits: Bump deepseq bound to allow 1.5

Ben Gamari (@bgamari) gitlab at gitlab.haskell.org
Wed Jul 19 00:36:21 UTC 2023



Ben Gamari pushed to branch wip/ghc-9.8 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.

- - - - -


30 changed files:

- .gitlab-ci.yml
- .gitlab/gen_ci.hs
- .gitlab/jobs.yaml
- compiler/GHC/ByteCode/Asm.hs
- compiler/GHC/ByteCode/Instr.hs
- compiler/GHC/ByteCode/Types.hs
- compiler/GHC/Core.hs
- compiler/GHC/Core/Opt/Simplify/Iteration.hs
- compiler/GHC/Core/Opt/SpecConstr.hs
- compiler/GHC/Core/Subst.hs
- compiler/GHC/CoreToIface.hs
- compiler/GHC/Driver/CodeOutput.hs
- compiler/GHC/IfaceToCore.hs
- compiler/GHC/Rename/Utils.hs
- compiler/GHC/StgToByteCode.hs
- compiler/GHC/Tc/Errors/Ppr.hs
- compiler/GHC/Tc/Errors/Types.hs
- compiler/GHC/Tc/TyCl/Utils.hs
- compiler/GHC/Tc/Utils/TcType.hs
- compiler/GHC/Tc/Validity.hs
- compiler/GHC/Types/Error/Codes.hs
- compiler/ghc.cabal.in
- configure.ac
- docs/users_guide/debugging.rst
- docs/users_guide/using-optimisation.rst
- ghc/ghc-bin.cabal.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


The diff was not included because it is too large.


View it on GitLab: https://gitlab.haskell.org/ghc/ghc/-/compare/7a3c7d3a12e584b5e6c08a10968e42ff1d62e4c0...ed28b0f2cac246e9dad669fd59631b8f9e5db2f5

-- 
View it on GitLab: https://gitlab.haskell.org/ghc/ghc/-/compare/7a3c7d3a12e584b5e6c08a10968e42ff1d62e4c0...ed28b0f2cac246e9dad669fd59631b8f9e5db2f5
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/20230718/f578efb7/attachment-0001.html>


More information about the ghc-commits mailing list