Test Trac #9834
Use {bit,popCount}Integer for `Bits Integer`

The primops are implemented in the `integer-gmp2` (#9281) backend and
are already used for the `Bits Natural` instance but aren't used yet for
the `Bits Integer` instace.  This commit fixes that.
configure.ac: fix test == bashism

Signed-off-by: Austin Seipp <austin@well-typed.com>
Cabal submodule update: hole support and tests.

Depends on D485

Summary: Signed-off-by: Edward Z. Yang <ezyang@cs.stanford.edu>

Test Plan: validate

Reviewers: simonpj, austin

Subscribers: thomie, carter

Differential Revision: https://phabricator.haskell.org/D487
Inline mkModuleToPkgConfAll into mkModuleToPkgConfGeneric.

Signed-off-by: Edward Z. Yang <ezyang@cs.stanford.edu>
Change loadSrcInterface to return a list of ModIface

Summary:
This change is in preparation to support signature imports, which may pull in
multiple interface files.  At the moment, the list always contains only one
element, but in a later patch it may contain more.

I also adjusted some error reporting code so that it didn't take the full
iface, but just whether or not the iface in question was a boot module.

Signed-off-by: Edward Z. Yang <ezyang@cs.stanford.edu>

Test Plan: validate

Reviewers: simonpj, austin

Subscribers: thomie, carter

Differential Revision: https://phabricator.haskell.org/D436
Don't require PatternSynonyms language extension to just use pattern synonyms
(see #9838)
Resume reporting incomplete pattern matches for record updates

They were being inadvertently suppressed, even if you said -fwarn-incomplete-record-updates

See Trac #5728
Don't require ConstraintKinds at usage sites (Trac #9838)
Trac #6022 is actually fine now
Test Trac #7243
Get the right fixity-env in standalone deriving (Trac #9830)
Embed Git commit id into `ghc --info` output

Since we switched to a Git submodule based GHC Git repo, `ghc.git`'s
commit id uniquely identifies the state of the GHC source-tree. So
having that information embedded into the `ghc` executable provides
valuable information to track accurately (especially when created by
buildbots) from which source-tree-state a given `ghc` snapshot
(distribution) was generated.

So this commit adds a new field `"Project Git commit id"` to the
`ghc --info` meta-data containing the `./configure`-time Git commit id
as reported by `git rev-parse HEAD`.

This field can also be queried with `ghc --print-project-git-commit-id`.

For source distributions, the file `GIT_COMMIT_ID` is created (with some
sanity checking to detect stale commit ids, as that would render this
information rather useless)

Reviewed By: austin

Differential Revision: https://phabricator.haskell.org/D528
compiler: add new modules pulling in FunFlags

And also sync type signature under '#ifndef GHCI'
Tested by setting
    GhcWithInterpreter = NO

Signed-off-by: Sergei Trofimovich <slyfox@gentoo.org>
Improve VERSION/GIT_COMMIT_ID handling for sdist

This makes `VERSION` updating a bit more robust (the file gets only
updated if its content would actually change), as well as moving the
dependency of `VERSION` and `GIT_COMMIT_ID` to the `sdist-ghc-prep`
target, as that's where it's actually needed.

This fixes the specialised target `make sdist-ghc` not properly
creating/updating the `VERSION` and `GIT_COMMIT_ID` files before
creating the ghc source-dist tarball, as well as avoiding stale
`VERSION` files.
Don't discard a bang on a newtype pattern (Trac #9844)

We were wrongly simply dropping the bang, in tidy_bang_pat.
Tidy up tracing somewhat

This is a knock-on from the -dump-to-file changes.
(I found that -ddump-cs-trace stuff wasn't coming out!)
Injective type families

Represent injectivity conditions as names, not TyVars
Remove 'result' from the parser
Fix comment wibbles
Minor refactoring
Implement rwbarton's syntax proposal

Represent type family kind signature using new datatype
Attempt to bring return tyfam variable into scope
Differential Revision: https://phabricator.haskell.org/D202
Fix "Not in scope" bug
Add injectivity information to SynTyCon constructor

Implement checking of injectivity condition written by the user
Remove unused parameter from doTopReactFunEq
Allow injectivity in some arguments (renamer)
Improve error handling when renaming injectivity conditions
Revert "Add injectivity information to FamInst and interface files"