[Git][ghc/ghc][wip/angerman/ghc-9.0-runpath-backport] 13 commits: Deprecate Data.Semigroup.Option

Ben Gamari gitlab at gitlab.haskell.org
Thu Oct 1 02:52:33 UTC 2020



Ben Gamari pushed to branch wip/angerman/ghc-9.0-runpath-backport at Glasgow Haskell Compiler / GHC


Commits:
b1c4116d by Simon Jakobi at 2020-09-24T13:09:09-04:00
Deprecate Data.Semigroup.Option

Libraries email: https://mail.haskell.org/pipermail/libraries/2018-April/028724.html

GHC issue: https://gitlab.haskell.org/ghc/ghc/issues/15028

Corresponding PRs for deepseq:
* https://github.com/haskell/deepseq/pull/55
* https://github.com/haskell/deepseq/pull/57

Bumps the deepseq submodule.

(cherry picked from commit a90d13091ff82e954432bedd0bb20845c666eddb)

- - - - -
29fc00bc by Wander Hillen at 2020-09-24T13:11:02-04:00
Export singleton function from Data.List

Data.OldList exports a monomorphized singleton function but
it is not re-exported by Data.List. Adding the export to
Data.List causes a conflict with a 14-year old function of the
same name and type by SPJ in GHC.Utils.Misc. We can't just remove
this function because that leads to a problems when building
GHC with a stage0 compiler that does not have singleton in
Data.List yet. We also can't hide the function in GHC.Utils.Misc
since it is not possible to hide a function from a module if the
module does not export the function. To work around this, all
places where the Utils.Misc singleton was used now use a qualified
version like Utils.singleton and in GHC.Utils.Misc we are very
specific about which version we export.

(cherry picked from commit e195dae6d959e2a9b1a22a2ca78db5955e1d7dea)

- - - - -
7f418acf by Ryan Scott at 2020-09-24T13:14:46-04:00
Remove ConDeclGADTPrefixPs

This removes the `ConDeclGADTPrefixPs` per the discussion in #18517.
Most of this patch simply removes code, although the code in the
`rnConDecl` case for `ConDeclGADTPrefixPs` had to be moved around a
bit:

* The nested `forall`s check now lives in the `rnConDecl` case for
  `ConDeclGADT`.
* The `LinearTypes`-specific code that used to live in the
  `rnConDecl` case for `ConDeclGADTPrefixPs` now lives in
  `GHC.Parser.PostProcess.mkGadtDecl`, which is now monadic so that
  it can check if `-XLinearTypes` is enabled.

Fixes #18157.

(cherry picked from commit 3ea8ac774efd9ee25156f444eacf49893d48a6c9)

- - - - -
4c37274a by Ben Gamari at 2020-09-25T17:39:53-04:00
Bump Cabal, haskeline, directory, process submodules

To accomodate Win32 2.10.0.0.

- - - - -
12957a0b by Ben Gamari at 2020-09-25T17:39:53-04:00
Disable -Wdeprecations for deepseq

Use to use of Data.Semigroup.Option for NFData instance.

- - - - -
6c98a930 by Sylvain Henry at 2020-09-28T08:37:29+02:00
Bignum: refactor backend modules

* move backends into GHC.Num.Backend.*
* split backend selection into GHC.Num.Backend and
  GHC.Num.Backend.Selected to avoid duplication with the Check backend

- - - - -
74f3f581 by Sylvain Henry at 2020-09-28T08:37:29+02:00
Bignum: implement extended GCD (#18427)

- - - - -
ebcc0968 by Sylvain Henry at 2020-09-28T09:56:49+02:00
Bignum: add bigNatFromWordArray

Reimplementation of integer-gmp's byteArrayToBigNat#

- - - - -
edfa896e by Arnaud Spiwack at 2020-09-29T11:41:25-04:00
Pattern guards BindStmt always use multiplicity Many

Fixes #18439 .

The rhs of the pattern guard was consumed with multiplicity one, while
the pattern assumed it was Many. We use Many everywhere instead.

This is behaviour consistent with that of `case` expression. See #18738.

(cherry picked from commit 2707c4eae4cf99e6da2709e128f560d91e468357)

- - - - -
a64ea9d0 by Krzysztof Gogolewski at 2020-09-29T11:41:25-04:00
Disallow linear types in FFI (#18472)

(cherry picked from commit 160fba4aa306c0649c72a6dcd7c98d9782a0e74b)

- - - - -
f8d8c343 by Krzysztof Gogolewski at 2020-09-29T11:41:25-04:00
Various documentation fixes

* Remove UnliftedFFITypes from conf. Some time ago, this extension
  was undocumented and we had to silence a warning.
  This is no longer needed.
* Use r'' in conf.py. This fixes a Sphinx warning:
  WARNING: Support for evaluating Python 2 syntax is deprecated and will be removed in Sphinx 4.0. Convert docs/users_guide/conf.py to Python 3 syntax.
* Mark GHCForeignImportPrim as documented
* Fix formatting in template_haskell.rst
* Remove 'recursive do' from the list of unsupported items in TH

(cherry picked from commit 83407ffc7acc00cc025b9f6ed063add9ab9f9bcc)

- - - - -
90fe5cff by Krzysztof Gogolewski at 2020-09-29T11:41:25-04:00
Fix handling of function coercions (#18747)

This was broken when we added multiplicity to the function type.

(cherry picked from commit e124f2a7d9a5932a4c2383fd3f9dd772b2059885)

- - - - -
7895dbef by Moritz Angermann at 2020-09-30T22:52:28-04:00
[macOS] improved runpath handling

In b592bd98ff25730bbe3c13d6f62a427df8c78e28 we started using
-dead_strip_dylib on macOS when lining dynamic libraries and binaries.
The underlying reason being the Load Command Size Limit in macOS
Sierra (10.14) and later.

GHC will produce @rpath/libHS... dependency entries together with a
corresponding RPATH entry pointing to the location of the libHS...
library. Thus for every library we produce two Load Commands.  One to
specify the dependent library, and one with the path where to find it.
This makes relocating libraries and binaries easier, as we just need to
update the RPATH entry with the install_name_tool. The dynamic linker
will then subsitute each @rpath with the RPATH entries it finds in the
libraries load commands or the environement, when looking up @rpath
relative libraries.

-dead_strip_dylibs intructs the linker to drop unused libraries. This in
turn help us reduce the number of referenced libraries, and subsequently
the size of the load commands.  This however does not remove the RPATH
entries.  Subsequently we can end up (in extreme cases) with only a
single @rpath/libHS... entry, but 100s or more RPATH entries in the Load
Commands.

This patch rectifies this (slighly unorthodox) by passing *no* -rpath
arguments to the linker at link time, but -headerpad 8000.  The
headerpad argument is in hexadecimal and the maxium 32k of the load
command size.  This tells the linker to pad the load command section
enough for us to inject the RPATHs later.  We then proceed to link the
library or binary with -dead_strip_dylibs, and *after* the linking
inspect the library to find the left over (non-dead-stripped)
dependencies (using otool).  We find the corresponding RPATHs for each
@rpath relative dependency, and inject them into the library or binary
using the install_name_tool.  Thus achieving a deadstripped dylib (and
rpaths) build product.

We can not do this in GHC, without starting to reimplement a dynamic
linker as we do not know which symbols and subsequently libraries are
necessary.

Commissioned-by: Mercury Technologies, Inc. (mercury.com)
(cherry picked from commit 89a753308deb2c7ed012e875e220b1d39e1798d8)
Signed-off-by: Moritz Angermann <moritz.angermann at gmail.com>

- - - - -


30 changed files:

- aclocal.m4
- compiler/GHC/Builtin/Utils.hs
- compiler/GHC/Core/Coercion.hs
- compiler/GHC/Core/Rules.hs
- compiler/GHC/Driver/Pipeline.hs
- compiler/GHC/Driver/Session.hs
- compiler/GHC/Hs/Decls.hs
- compiler/GHC/Hs/Instances.hs
- compiler/GHC/Hs/Type.hs
- compiler/GHC/Hs/Utils.hs
- compiler/GHC/Iface/Recomp.hs
- compiler/GHC/Parser.y
- compiler/GHC/Parser/PostProcess.hs
- compiler/GHC/Parser/PostProcess/Haddock.hs
- compiler/GHC/Rename/Module.hs
- compiler/GHC/Rename/Names.hs
- compiler/GHC/Runtime/Linker.hs
- compiler/GHC/Settings.hs
- compiler/GHC/Settings/IO.hs
- compiler/GHC/SysTools.hs
- compiler/GHC/SysTools/Tasks.hs
- compiler/GHC/Tc/Gen/Foreign.hs
- compiler/GHC/Tc/Gen/Match.hs
- compiler/GHC/Tc/Gen/Sig.hs
- compiler/GHC/ThToHs.hs
- compiler/GHC/Types/Name/Reader.hs
- compiler/GHC/Utils/Misc.hs
- compiler/ghc.cabal.in
- configure.ac
- docs/users_guide/conf.py


The diff was not included because it is too large.


View it on GitLab: https://gitlab.haskell.org/ghc/ghc/-/compare/e5a622200257cfd758e619317ffeb0f50e982fcb...7895dbef7f903615d212ebcb733812b8e60cc37c

-- 
View it on GitLab: https://gitlab.haskell.org/ghc/ghc/-/compare/e5a622200257cfd758e619317ffeb0f50e982fcb...7895dbef7f903615d212ebcb733812b8e60cc37c
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/20200930/57ce7bc1/attachment-0001.html>


More information about the ghc-commits mailing list