Cause "make install" to install dynamic libraries (#8194)

Our special ghc-cabal command needs to be told that we are building with
dynamic library support when it does its copying. We do so by passing an
extra parameter from ghc.mk.
New primops for byte range copies ByteArray# <-> Addr#

We have primops for copying ranges of bytes between ByteArray#s:
 * ByteArray# -> MutableByteArray#
 * MutableByteArray# -> MutableByteArray#
This extends it with three further cases:
 * Addr# -> MutableByteArray#
 * ByteArray# -> Addr#
 * MutableByteArray# -> Addr#
One use case for these is copying between ForeignPtr-based
representations and in-heap arrays (like Text, UArray etc).

The implementation is essentially the same as for the existing
primops, and shares the memcpy stuff in the code generators.

Defficiencies / future directions: none of these primops (existing
or the new ones) let one take advantage of knowing that ByteArray#s
are word-aligned in memory. Though it is unclear that any of the
code generators would make use of this information unless the size
to copy is also known at compile time.

Signed-off-by: Austin Seipp <austin@well-typed.com>
Fix freeHaskellFunPtr crash on iOS.

Authored-by: Stephen Blackheath <...@blacksapphire.com>
Signed-off-by: Austin Seipp <austin@well-typed.com>
Fix the type signatures of new copy primops.

They claimed to work over 'ST RealWorld', when instead they should be
parameterized in the state type. This fixes the cgrun070.

Signed-off-by: Austin Seipp <austin@well-typed.com>
Mention new solver for -XTypeNats in release notes.

Signed-off-by: Austin Seipp <austin@well-typed.com>
Distinguish between hs-main cases when giving rtsopts advice.

Signed-off-by: Edward Z. Yang <ezyang@mit.edu>
Run ctors initializers backwards, see #5435.

Signed-off-by: Edward Z. Yang <ezyang@mit.edu>
Comment typo only
Release Notes: Document Data.Bool.bool (#8302)
Make sure type literals aren't negative (#8306)

As Krzysztof pointed out in #8306, with NegativeLiterals and DataKinds,
definitions such as:

  type T = -1

were accepted, although type literals must be greater than zero.

Signed-off-by: Austin Seipp <austin@well-typed.com>
s/TypeNats/DataKinds/ in release notes.

Signed-off-by: Austin Seipp <austin@well-typed.com>
Typo in release notes
Further linguistic improvement of that one line

now brought to you by Gabor Greif... ;-)
Implement ctors support for Linux.

Signed-off-by: Edward Z. Yang <ezyang@mit.edu>
Add warning comment about Mach-O section name hack.

Signed-off-by: Edward Z. Yang <ezyang@mit.edu>
Allow branches with / in them (e.g. wip/) in ./sync-all
Release Notes: New printf features in base
Change role annotation syntax.

This fixes bugs #8185, #8234, and #8246. The new syntax is explained
in the comments to #8185, appears in the "Roles" subsection of the
manual, and on the [wiki:Roles] wiki page.

This change also removes the ability for a role annotation on type
synonyms, as noted in #8234.
Suppress unused variable when OS does not support setuid.

Signed-off-by: Edward Z. Yang <ezyang@mit.edu>
Fix-up Docbook XML broken in f4046b508a5a7