ghc.git
2 years agoAdd regression test for #11964
Ryan Scott [Fri, 12 May 2017 13:06:24 +0000 (09:06 -0400)] 
Add regression test for #11964

This issue was only ever present in the GHC 8.0.1 release candidates, but
let's add a regression test for it just to be safe.

2 years agoAdd regression test for #11966
Ryan Scott [Fri, 12 May 2017 12:57:26 +0000 (08:57 -0400)] 
Add regression test for #11966

Commit a7ee2d4c4229b27af324ebac93081f692835365d fixed #11966. Here's a
regression test for it.

2 years agoAdd regression tests for #12083
Ryan Scott [Fri, 12 May 2017 12:54:30 +0000 (08:54 -0400)] 
Add regression tests for #12083

Summary:
Commit 0c9d9dec0a924a4f34f4cff26d004143c028861a (the fix for #13271) fixed the
programs in #12083. This adds regression tests for them.

Test Plan: make test TEST="T12083a T12083b"

Reviewers: austin, bgamari

Subscribers: rwbarton, thomie

GHC Trac Issues: #12083

Differential Revision: https://phabricator.haskell.org/D3573

2 years agoTypos [ci skip]
Gabor Greif [Thu, 11 May 2017 13:13:02 +0000 (15:13 +0200)] 
Typos [ci skip]

2 years agoUpdate autoconf scripts from correct source
Ben Gamari [Fri, 12 May 2017 01:33:58 +0000 (21:33 -0400)] 
Update autoconf scripts from correct source

2 years agoRnEnv refactoring
Matthew Pickering [Thu, 11 May 2017 21:21:43 +0000 (22:21 +0100)] 
RnEnv refactoring

Summary: Lots of refactoring in RnEnv to reduce code duplication.

Reviewers: austin, bgamari

Reviewed By: bgamari

Subscribers: rwbarton, thomie

GHC Trac Issues: #13545

Differential Revision: https://phabricator.haskell.org/D3507

2 years agotestsuite: Fix location of T13594 test
Ben Gamari [Thu, 11 May 2017 22:20:33 +0000 (18:20 -0400)] 
testsuite: Fix location of T13594 test

2 years agoFix up tests for #13594
Ben Gamari [Thu, 11 May 2017 21:30:31 +0000 (17:30 -0400)] 
Fix up tests for #13594

This adds the GHCi variant of the failing program in #13594. Also, I
inadvertently changed the T13594 test previously introduced in a way that made
it no longer faithfully test the ticket as written. Fix this.

2 years agoUpdate autoconf scripts
Ben Gamari [Thu, 11 May 2017 21:25:40 +0000 (17:25 -0400)] 
Update autoconf scripts

2 years agousers-guide: Document requirement of at least one -dep-suffix
Ben Gamari [Thu, 11 May 2017 20:49:54 +0000 (16:49 -0400)] 
users-guide: Document requirement of at least one -dep-suffix

This requirement was introduced around 7.8 but was never documented.

Resolves #9287.

2 years agoAllow spliced patterns in pattern synonyms
Ben Gamari [Thu, 11 May 2017 19:46:37 +0000 (15:46 -0400)] 
Allow spliced patterns in pattern synonyms

This ended up being quite simple.

Reviewers: austin, goldfire, mpickering

Subscribers: rwbarton, shlevy, thomie

GHC Trac Issues: #13688

Differential Revision: https://phabricator.haskell.org/D3571

2 years agoFix collect_lpat's treatment of HsSplicedPats
Ryan Scott [Thu, 11 May 2017 19:46:02 +0000 (15:46 -0400)] 
Fix collect_lpat's treatment of HsSplicedPats

`collect_lpat` was missing a case for `HsSplicedPat`, which caused
incorrect renaming of TH-spliced pattern variables.

Fixes #13473.

Test Plan: make test TEST=T13473

Reviewers: facundominguez, austin, bgamari

Reviewed By: bgamari

Subscribers: rwbarton, thomie

GHC Trac Issues: #13473

Differential Revision: https://phabricator.haskell.org/D3572

2 years agoParenthesize pretty-printed equalities when necessary
Ryan Scott [Thu, 11 May 2017 19:42:55 +0000 (15:42 -0400)] 
Parenthesize pretty-printed equalities when necessary

Fixes #13677 by parenthesizing equalities in a sufficiently high
pretty-printing context.

Test Plan: make test TEST=T13677

Reviewers: goldfire, austin, bgamari

Reviewed By: bgamari

Subscribers: rwbarton, thomie

GHC Trac Issues: #13677

Differential Revision: https://phabricator.haskell.org/D3570

2 years agoUse Proxy rather than undefined in MatchLit
Matthew Pickering [Thu, 11 May 2017 19:42:23 +0000 (15:42 -0400)] 
Use Proxy rather than undefined in MatchLit

Reviewers: austin, bgamari

Reviewed By: bgamari

Subscribers: rwbarton, thomie

Differential Revision: https://phabricator.haskell.org/D3565

2 years agoAdd Outputable instance for Node
Matthew Pickering [Thu, 11 May 2017 19:42:02 +0000 (15:42 -0400)] 
Add Outputable instance for Node

Reviewers: austin, bgamari

Reviewed By: bgamari

Subscribers: rwbarton, thomie

Differential Revision: https://phabricator.haskell.org/D3564

2 years agorts: Don't build StgCRunAsm.S if unregisterised
Ben Gamari [Thu, 11 May 2017 19:41:38 +0000 (15:41 -0400)] 
rts: Don't build StgCRunAsm.S if unregisterised

StgCRunAsm.S provides StgCRun on powerpc64le platforms when
registerised.  However, in the unregisterised setting we use the
mini-interpreter and consequently shouldn't build StgCRunAsm.S lest we
get duplicate symbols.

Test Plan: Build unregisterised compiler on AIX.

Reviewers: hvr, trommler, austin, simonmar

Reviewed By: trommler, simonmar

Subscribers: rwbarton, thomie

Differential Revision: https://phabricator.haskell.org/D3560

2 years agocompiler: Do not look up fail in RnExpr if bind pattern is irrefutible.
Aaron Friel [Thu, 11 May 2017 19:41:22 +0000 (15:41 -0400)] 
compiler: Do not look up fail in RnExpr if bind pattern is irrefutible.

Adds a check in `rnStmt`, in sub-expr `getFailFunction`, to determine if
the pattern of a bind statement is irrefutible. If so, skip looking up
the `fail` name.

Reviewers: austin, bgamari

Reviewed By: bgamari

Subscribers: rwbarton, thomie

GHC Trac Issues: #13649

Differential Revision: https://phabricator.haskell.org/D3553

2 years agoFix incorrect ambiguity error on identically-named data constructors
Soham Chowdhury [Thu, 11 May 2017 19:40:18 +0000 (15:40 -0400)] 
Fix incorrect ambiguity error on identically-named data constructors

Given multiple in-scope constructors with the same name, say `A`, and a
function of type `A -> Int`, say, the compiler reports both a "type `A`
is not in scope" and (incorrectly) an ambiguity error. The latter
shouldn't be there if `DataKinds` isn't enabled.

This issue was recommended to me by @mpickering as a suitable first
task, and the fix was also outlined in the original Trac ticket. It
involved a simple reordering of the steps taken in `lookup_demoted` in
`RnEnv.hs`. The fix is to make the `DataKinds` check happen earlier,
ensuring that the ambiguity check doesn't happen at all if we know the
constructors couldn't have been promoted.

Signed-off-by: Soham Chowdhury <chow.soham@gmail.com>
Reviewers: mpickering, austin, bgamari

Reviewed By: mpickering, bgamari

Subscribers: rwbarton, thomie

GHC Trac Issues: #13568

Differential Revision: https://phabricator.haskell.org/D3547

2 years agopmCheck: Don't generate PmId OccNames from Uniques
Ben Gamari [Thu, 11 May 2017 04:17:04 +0000 (00:17 -0400)] 
pmCheck: Don't generate PmId OccNames from Uniques

Doug Wilson astutely noticed that the pattern match checker was spending
a significant amount of time in mkPmId. It turns out that it was
producing Ids with OccNames that were generated from a Unique, which are
non-trivial to render. Since Var is strict in Name, Name in OccName, and
OccName in its FastString all of this encoding work was being done
despite the fact that it was (as far as I can tell) never actually
needed.

Test Plan: Validate, note allocations of `T11195`

Reviewers: austin, gkaracha

Subscribers: rwbarton, thomie

Differential Revision: https://phabricator.haskell.org/D3568

2 years agoAdd regression test for #12850
Ryan Scott [Thu, 11 May 2017 13:33:43 +0000 (09:33 -0400)] 
Add regression test for #12850

Commit e7985ed23ddc68b6a2e4af753578dc1d9e8ab4c9 happened to fix #12850, so
let's add a regression test for the program reported in #12850.

2 years agoRevert "libffi via submodule"
Moritz Angermann [Thu, 11 May 2017 13:12:34 +0000 (21:12 +0800)] 
Revert "libffi via submodule"

This reverts commit 8d4bce42de7929b0dec7e7d68e66bcfc4d266322.

2 years agoUse NEED_PTHREAD_LIB
Moritz Angermann [Thu, 11 May 2017 10:17:31 +0000 (18:17 +0800)] 
Use NEED_PTHREAD_LIB

we do the same for the rts already. And using the configure script should
be more robust than hand-picking the OSs here.

Reviewers: austin, bgamari

Reviewed By: bgamari

Subscribers: rwbarton, thomie

Differential Revision: https://phabricator.haskell.org/D3563

2 years agoPass LLVMTarget (identical to --target)
Moritz Angermann [Thu, 11 May 2017 10:17:02 +0000 (18:17 +0800)] 
Pass LLVMTarget (identical to --target)

Sometimes it might be of interest to
have access to the raw target value when calling
subcommands (e.g. llvm tools with --target), as
such we forward the specified (or inferred)
--target for later consumption.

Reviewers: austin, hvr, bgamari

Reviewed By: bgamari

Subscribers: rwbarton, thomie, erikd

Differential Revision: https://phabricator.haskell.org/D3559

2 years agobump config.{guess,sub}
Moritz Angermann [Thu, 11 May 2017 10:15:46 +0000 (18:15 +0800)] 
bump config.{guess,sub}

There is no new autoconf release, and it seems like there will unlikely be one
<http://lists.gnu.org/archive/html/autoconf/2016-07/msg00017.html>.

This will allow us to support <arch>-apple-ios properly.

These have been taken from
- http://git.savannah.gnu.org/gitweb/?p=config.git;a=blob_plain;f=config.guess
- http://git.savannah.gnu.org/gitweb/?p=config.git;a=blob_plain;f=config.sub

Reviewers: austin, hvr, bgamari

Reviewed By: bgamari

Subscribers: rwbarton, thomie

Differential Revision: https://phabricator.haskell.org/D3558

2 years agoDrop custom apple handling
Moritz Angermann [Thu, 11 May 2017 10:15:22 +0000 (18:15 +0800)] 
Drop custom apple handling

We know that *-apple-* is leading_underscores, and .dylib.
It is also better to test for TargetVendor being apple, rather than
relying on targetOS, which could be macOS, iOS, tvOS, watchOS,
or any other glorious name apple could come up with.

Reviewers: austin, hvr, bgamari

Reviewed By: bgamari

Subscribers: rwbarton, thomie, erikd

Differential Revision: https://phabricator.haskell.org/D3557

2 years agoFix iossimulator
Moritz Angermann [Thu, 11 May 2017 10:14:47 +0000 (18:14 +0800)] 
Fix iossimulator

The introduction of the aarch64 linker for
iOS forgot that the ios simulator was still using
the x86_64/mach-o linker, which requires the use of
symbol extras.  Until this is overhauled (see #13678),
we should revert to the symbol extras logic for
x86_64-apple-ios

Reviewers: austin, bgamari, erikd, simonmar

Reviewed By: simonmar

Subscribers: rwbarton, thomie

Differential Revision: https://phabricator.haskell.org/D3556

2 years agoWe define the `<XXX>_HOST_ARCH` to `1`, but never to `0`in
Moritz Angermann [Thu, 11 May 2017 10:14:26 +0000 (18:14 +0800)] 
We define the `<XXX>_HOST_ARCH` to `1`, but never to `0`in

compiler/ghc.mk
@echo "#define $(HostArch_CPP)_HOST_ARCH 1"               >> $@
@echo "#define $(TargetArch_CPP)_HOST_ARCH 1"             >> $@

this leads to warnigns like:
> warning: 'x86_64_HOST_ARCH' is not defined, evaluates to 0 [-Wundef]

Reviewers: austin, bgamari, erikd, simonmar

Reviewed By: simonmar

Subscribers: rwbarton, thomie

Differential Revision: https://phabricator.haskell.org/D3555

2 years ago[iserv] fix loadDLL
Moritz Angermann [Thu, 11 May 2017 10:13:28 +0000 (18:13 +0800)] 
[iserv] fix loadDLL

When we load non absolute pathed .so's this usually implies that we expect the
system to have them in place already, and hence we should not need to ship them.
Without the absolute path to the library, we are also unable to open and send
said library.  Thus we'll do library shipping only for libraries with absolute
paths.

Reviewers: austin, bgamari, simonmar

Reviewed By: simonmar

Subscribers: simonmar, rwbarton, thomie

Differential Revision: https://phabricator.haskell.org/D3469

2 years agoDo not hardcode the specific linker to use
Moritz Angermann [Thu, 11 May 2017 10:12:33 +0000 (18:12 +0800)] 
Do not hardcode the specific linker to use

This should be handled appropriately by a wrapper script around the compiler,
if one wants to insist on the specific linker to be used.  Otherwise this
breaks if the used compiler fails to understand this directive.

I believe that using a specific linker should be part of the compilers
toolchain, we delegate to and not hardcoded here in ghc.

Reviewers: dfeuer, erikd, hvr, austin, rwbarton, bgamari

Reviewed By: bgamari

Subscribers: snowleopard, davean, dfeuer, thomie, erikd

Differential Revision: https://phabricator.haskell.org/D3351

2 years agolibffi via submodule
Moritz Angermann [Thu, 11 May 2017 10:11:12 +0000 (18:11 +0800)] 
libffi via submodule

This is rather annoying. I'd prefer to have a stable release to
use. However libffi-3.2.1 has been released November 12, 2014, and
libffi-4 is TBD. See also https://github.com/libffi/libffi/issues/296

The core reason for this change is that llvm changed the supported
assembly to unified syntax, which libffi-3.2.1 does not use, and hence
fails to compile for arm with llvm. For refence, see the following
issue: https://github.com/libffi/libffi/issues/191

Reviewers: austin, bgamari

Reviewed By: bgamari

Subscribers: rwbarton, thomie, snowleopard

Differential Revision: https://phabricator.haskell.org/D3349

2 years agomailmap: Add Douglas Wilson
Ben Gamari [Thu, 11 May 2017 02:51:25 +0000 (22:51 -0400)] 
mailmap: Add Douglas Wilson

2 years agotestsuite: Update allocations for T4801 on Darwin
Ben Gamari [Wed, 10 May 2017 17:02:41 +0000 (13:02 -0400)] 
testsuite: Update allocations for T4801 on Darwin

2 years agoFix a performance bug in GhcMake.downsweep
Simon Marlow [Wed, 10 May 2017 12:05:38 +0000 (05:05 -0700)] 
Fix a performance bug in GhcMake.downsweep

Every time we encountered a non-home module during the downsweep, we
were removing it from the finder cache.  That meant we were searching
the filesystem for every import, rather than once per downsweep.  The
fix is just to flush the finder cache before the downsweep, and
repopulate it for home modules that haven't changed.

Speeds up downsweep by about 25% on a large example I have.

Test Plan: Harbourmaster

Reviewers: bgamari, niteria, austin, erikd

Reviewed By: bgamari, niteria

Subscribers: rwbarton, thomie

Differential Revision: https://phabricator.haskell.org/D3554

2 years agoEfficient membership for home modules
Bartosz Nitka [Wed, 10 May 2017 11:36:52 +0000 (04:36 -0700)] 
Efficient membership for home modules

This changes the linear lookup in a list to an efficient
lookup in an IntMap. The linear lookup effectively made
the algorithm quadratic, which for a test case that I have
(5000 modules) introduced significant slowdown.

I ran 3 experiments to estimate the impact of this:

"No-op", profiled, just `:load`: P146, `186s`
"before", profiled, `:load` followed by 10x `:r`: P147, `315s`
"after", profiled, `:load` followed by 10x `:r`: P148, `250s`

Going by the math of `(250-186)/(315-186) = 50%` this is a 2x improvement
on `:r`.

Test Plan: ./validate

Reviewers: simonmar, austin, bgamari

Reviewed By: simonmar

Subscribers: rwbarton, thomie

Differential Revision: https://phabricator.haskell.org/D3562

2 years agoTypos [ci skip]
Gabor Greif [Tue, 9 May 2017 11:49:00 +0000 (13:49 +0200)] 
Typos [ci skip]

2 years agoRevert "CoreTidy: Don't seq unfoldings"
Ben Gamari [Tue, 9 May 2017 20:00:29 +0000 (16:00 -0400)] 
Revert "CoreTidy: Don't seq unfoldings"

This reverts commit b3da6a6c3546562d5c5e83b8af5d3fd04c07e0c1 as it
reintroduces the original space leak.

2 years agoReset cc_pend_sc flag in dropDerivedCt
Simon Peyton Jones [Tue, 9 May 2017 08:29:44 +0000 (09:29 +0100)] 
Reset cc_pend_sc flag in dropDerivedCt

I'd forgotten to reset this flag to True when dropping Derived
constraints, which led to Trac #13662.  Easily fixed.

2 years agoMake CallInfo into a data type with fields
Simon Peyton Jones [Mon, 8 May 2017 15:50:37 +0000 (16:50 +0100)] 
Make CallInfo into a data type with fields

Simple refactor, no change in behaviour

2 years agoAdd regression test for Trac #13659
Simon Peyton Jones [Mon, 8 May 2017 13:06:01 +0000 (14:06 +0100)] 
Add regression test for Trac #13659

2 years agoDon't warn about variable-free strict pattern bindings
Simon Peyton Jones [Mon, 8 May 2017 13:04:34 +0000 (14:04 +0100)] 
Don't warn about variable-free strict pattern bindings

See Trac #13646 and the new
Note [Pattern bindings that bind no variables]

2 years agoUse mkSymCo in OptCoercion.wrapSym
Simon Peyton Jones [Mon, 8 May 2017 12:31:11 +0000 (13:31 +0100)] 
Use mkSymCo in OptCoercion.wrapSym

Always use the smart constructor!   Richard and I came across
this omission when looking at something else.

2 years agotestsuite: Fix attribution of "Don't seq unfoldings" regression
Ben Gamari [Tue, 9 May 2017 03:38:16 +0000 (23:38 -0400)] 
testsuite: Fix attribution of "Don't seq unfoldings" regression

2 years agoTreat banged bindings as FunBinds
Ben Gamari [Mon, 8 May 2017 21:47:19 +0000 (17:47 -0400)] 
Treat banged bindings as FunBinds

This reworks the HsSyn representation to make banged variable patterns
(e.g. !x = e) be represented as FunBinds instead of PatBinds, adding a flag to
FunRhs to record the bang.

Fixes #13594.

Reviewers: austin, goldfire, alanz, simonpj

Reviewed By: simonpj

Subscribers: simonpj, rwbarton, thomie, mpickering

Differential Revision: https://phabricator.haskell.org/D3525

2 years agoDataflow: use IntSet for mkDepBlocks
Michal Terepeta [Mon, 8 May 2017 21:47:02 +0000 (17:47 -0400)] 
Dataflow: use IntSet for mkDepBlocks

Using `IntSet` instead of `[Int]` is nicer since it gets rid of
appending to a list (in the backward case) and folding over it is
ordered.

I also added a comment about how `mkDepBlocks` works since its
behavior can be a bit surprising at first sight (it took me some time
to see that it's doing the right thing ;)

Signed-off-by: Michal Terepeta <michal.terepeta@gmail.com>
Test Plan: ./validate

Reviewers: austin, bgamari, simonmar

Reviewed By: bgamari

Subscribers: rwbarton, thomie

Differential Revision: https://phabricator.haskell.org/D3530

2 years agoAdd a failing test for T13644
Matthew Pickering [Mon, 8 May 2017 21:46:39 +0000 (17:46 -0400)] 
Add a failing test for T13644

The problem originates in TcPat.find_field_ty but I don't know how to
clearnly fix it.

Reviewers: austin, bgamari

Reviewed By: bgamari

Subscribers: rwbarton, thomie

GHC Trac Issues: #13644

Differential Revision: https://phabricator.haskell.org/D3535

2 years agoMake XNegativeLiterals treat -0.0 as negative 0
Nolan [Mon, 8 May 2017 21:46:22 +0000 (17:46 -0400)] 
Make XNegativeLiterals treat -0.0 as negative 0

Reviewers: austin, goldfire, bgamari

Reviewed By: bgamari

Subscribers: rwbarton, thomie, mpickering

GHC Trac Issues: #13211

Differential Revision: https://phabricator.haskell.org/D3543

2 years agoFix Raspberry Pi
Moritz Angermann [Mon, 8 May 2017 21:45:18 +0000 (17:45 -0400)] 
Fix Raspberry Pi

This is two fold:

- We did not catch all ARM_ARCH_6 defines. Specifically not `6K` and
  `6KZ`, which is what llvm seems to use these days for
  `arm-none-linux-gnueabihf` (e.g. the triple that's used for raspbian
  as well). Without it, ghc assums we want to compile against some armv7
  system, which raspbian is not (it is armv6 for maximum compatibility
  across the pi family, compromising on using armv7 and up features).

- We stop forcing the -m and -arch flags on macOS. This is troublesome,
  as compiling for a 32bit system (e.g. raspberry pi, on a x86_64 macOS
  system results in the `-m64` flag being passed to to clang as well,
  which in turn figures out that you likely want 64bit, and rewrites
  your taret from `arm-none-linux-gnueabihf` to
  `aarch64-none-linux-gnueabihf`, which is definetly not what you want.

Reviewers: austin, hvr, bgamari

Reviewed By: bgamari

Subscribers: rwbarton, thomie, erikd

Differential Revision: https://phabricator.haskell.org/D3546

2 years agoOptimize casMutVar# for single-threaded RTS
David Feuer [Mon, 8 May 2017 21:44:37 +0000 (17:44 -0400)] 
Optimize casMutVar# for single-threaded RTS

The single-threaded RTS shouldn't actually need to use CAS to
implement `casMutVar#`; there are no other threads to coordinate
with.

Reviewers: austin, bgamari, erikd, simonmar

Reviewed By: simonmar

Subscribers: rwbarton, thomie

Differential Revision: https://phabricator.haskell.org/D3544

2 years agoOptCoercion: Ensure that TyConApps match in arity
Ben Gamari [Mon, 8 May 2017 21:40:50 +0000 (17:40 -0400)] 
OptCoercion: Ensure that TyConApps match in arity

Previously OptCoercion would potentially change the type of UnivCo
coercions of the shape,
```
co :: TyCon arg1 ... argN ~ TyCon arg1' ... argN'
```
where the arities of the left and right applications differ. In this
case we
would try to zip the two argument lists, meaning that one would get
truncated.

One would think this could never happen since it implies we are
applying the
same TyCon to two different numbers of arguments. However, it does
arise in the
case of applications of the `Any` tycon, which arises from the
typechecker (in
`Data.Typeable.Internal`) where we end up with an `UnsafeCo`,
```
co :: Any (Any -> Any) Any ~ Any (Any -> Any)
```

Test Plan: Validate

Reviewers: simonpj, austin, goldfire

Reviewed By: simonpj

Subscribers: rwbarton, thomie

GHC Trac Issues: #13658

Differential Revision: https://phabricator.haskell.org/D3545

2 years agousers-guide: Fix a variety of warnings
Ben Gamari [Mon, 8 May 2017 21:35:05 +0000 (17:35 -0400)] 
users-guide: Fix a variety of warnings

Including #13665.

2 years ago[Docs] Prefer cost centre
Bartosz Nitka [Mon, 8 May 2017 13:26:12 +0000 (06:26 -0700)] 
[Docs] Prefer cost centre

There may be some subtlety I'm not seeing with the usage
of center vs centre. Otherwise this makes it more consistent
in the docs.
There's one instance in 8.0.2-notes.rst, but I'm not sure if
we want to modify it retroactively.

Test Plan: harbormaster?

Reviewers: bgamari, austin

Reviewed By: bgamari

Subscribers: rwbarton, thomie, simonmar

Differential Revision: https://phabricator.haskell.org/D3548

2 years agoBump Cabal submodule to the 2.0.0.0 tag
Ben Gamari [Sun, 7 May 2017 15:26:25 +0000 (11:26 -0400)] 
Bump Cabal submodule to the 2.0.0.0 tag

2 years agobase: Fix documentation for forkIOWithUnmask
Ben Gamari [Fri, 5 May 2017 20:47:00 +0000 (16:47 -0400)] 
base: Fix documentation for forkIOWithUnmask

forkIOUnmasked has been deprecated for several years now. Update reference to
it. See #4858 and #5546.

2 years agotestsuite: add new test for desugar warnings/errors with -fno-code
doug [Fri, 5 May 2017 13:18:53 +0000 (09:18 -0400)] 
testsuite: add new test for desugar warnings/errors with -fno-code

Add a new (expect_broken) test T10600 that checks that the error:
Top-level bindings for unlifted types aren't allowed: is thrown when
compiling with -fno-code. This test currently fails because modules
compiled with -fno-code aren't desugared. There are several other errors
which can be thrown during desugaring that aren't tested for,
discoverable by grepping for "errDs".

Update .stderr files T8101 and T8101b. Presumably the compilation output
has changed slightly since they were written.

Reviewers: austin, bgamari

Reviewed By: bgamari

Subscribers: rwbarton, thomie

GHC Trac Issues: #10600, #8101

Differential Revision: https://phabricator.haskell.org/D3533

2 years agoAdd regression test for #13651
Ryan Scott [Sat, 6 May 2017 16:37:00 +0000 (12:37 -0400)] 
Add regression test for #13651

Commit eb55ec2941239dee05afc6be818b129efe51660e ended up fixing #13651, so
let's add a regression test for it.

2 years agoAdd testsuite/timeout/TimeMe to .gitignore
Ryan Scott [Sat, 6 May 2017 16:34:36 +0000 (12:34 -0400)] 
Add testsuite/timeout/TimeMe to .gitignore

Summary:
If you run `make test` on a non-Windows OS from a fresh build, the
testsuite will create an executable called `TimeMe` which `git` thinks is an
untracked file. Let's add it to `.gitignore` to avoid polluting the list of
untracked files.

Test Plan: Run `make test`, check if `TimeMe` is in the `git` untracked files

Reviewers: bgamari, austin

Reviewed By: bgamari

Subscribers: rwbarton, thomie

Differential Revision: https://phabricator.haskell.org/D3536

2 years agoAdd regression tests for #12947, #13640
Ryan Scott [Sat, 6 May 2017 16:31:40 +0000 (12:31 -0400)] 
Add regression tests for #12947, #13640

Summary:
Commit b4bdbe4957ae8b82c4cda5584203b44d3c4f004f (the fix for #12156)
wound up being the fix for #12947 and #13640 as well. This adds regression
tests for the latter two tickets to keep them fixed.

Test Plan: make test TEST="T12947 T13640"

Reviewers: bgamari, austin

Reviewed By: bgamari

Subscribers: rwbarton, thomie

GHC Trac Issues: #12947, #13640

Differential Revision: https://phabricator.haskell.org/D3528

2 years agotweak to minimize diff against ocInit_ELF
Gabor Greif [Fri, 5 May 2017 10:38:54 +0000 (12:38 +0200)] 
tweak to minimize diff against ocInit_ELF

2 years agoTypos in comments [ci skip]
Gabor Greif [Thu, 4 May 2017 16:33:57 +0000 (18:33 +0200)] 
Typos in comments [ci skip]

2 years agoTcTypeable: Simplify
Ben Gamari [Thu, 4 May 2017 14:06:33 +0000 (10:06 -0400)] 
TcTypeable: Simplify

Simon pointed out that the zonk of the tyConKinds was redundant as tycon kinds
will never contain mutable variables. This allows us to remove tycon_kind.
Add a few commments clarifying the need to bring TyCon binders into scope before
typechecking bindings.

2 years agoCoreTidy: Don't seq unfoldings
Ben Gamari [Tue, 2 May 2017 15:36:47 +0000 (11:36 -0400)] 
CoreTidy: Don't seq unfoldings

Previously we would force uf_is_value and friends to ensure that we didn't
retain a reference to the pre-tidying template, resulting in a space leak.
Instead, we now just reinitialize these fields (despite the fact that they
should not have changed). This may result in a bit more computation, but most of
the time we won't ever evaluate them anyways, so the damage shouldn't be so bad.

See #13564.

2 years agohpc: Output a legend at the top of output files
Santiago Munin [Thu, 4 May 2017 19:10:54 +0000 (15:10 -0400)] 
hpc: Output a legend at the top of output files

Updates hpc submodule.

Reviewers: austin, bgamari

Subscribers: rwbarton, thomie

GHC Trac Issues: #11799

Differential Revision: https://phabricator.haskell.org/D3465

2 years agoImplement sequential name lookup properly
Matthew Pickering [Thu, 4 May 2017 18:15:43 +0000 (14:15 -0400)] 
Implement sequential name lookup properly

Previously we would run all the monadic actions and then
combine their results. This caused problems if later actions
raised errors but earlier lookups suceeded. We only want to run later
lookups if the earlier ones fail.

Fixes #13622

Reviewers: RyanGlScott, austin, bgamari, simonpj

Reviewed By: simonpj

Subscribers: simonpj, rwbarton, thomie

GHC Trac Issues: #13622

Differential Revision: https://phabricator.haskell.org/D3515

2 years agoFix markdown for new GitHub Flavored Markdown
Takenobu Tani [Thu, 4 May 2017 18:19:37 +0000 (14:19 -0400)] 
Fix markdown for new GitHub Flavored Markdown

Delete whitespace between brackets.  Because Github Flavored Markdown
was changed [1].

[1]: https://githubengineering.com/a-formal-spec-for-github-markdown/

Test Plan: build

Reviewers: austin, bgamari

Reviewed By: bgamari

Subscribers: rwbarton, thomie

Differential Revision: https://phabricator.haskell.org/D3534

2 years agoAdd regression test for #11616
Ryan Scott [Thu, 4 May 2017 18:19:26 +0000 (14:19 -0400)] 
Add regression test for #11616

The code in #11616 has been working for a while (ever since 8.0.1),
so let's add a regression test for it to put the nail in the coffin.

Test Plan: make test TEST=T11616

Reviewers: austin, bgamari

Reviewed By: bgamari

Subscribers: rwbarton, thomie

GHC Trac Issues: #11616

Differential Revision: https://phabricator.haskell.org/D3531

2 years agoFix comment for compact region
Takenobu Tani [Thu, 4 May 2017 18:16:49 +0000 (14:16 -0400)] 
Fix comment for compact region

There were old module names:

 * Data.Compact -> GHC.Compact
 * Data.Compact.Internal -> GHC.Compact

This commit is for ghc-8.2 branch.

Test Plan: build

Reviewers: austin, bgamari, hvr, erikd, simonmar

Reviewed By: bgamari

Subscribers: rwbarton, thomie

Differential Revision: https://phabricator.haskell.org/D3522

2 years agouser-guide: fix links to compact region
Takenobu Tani [Thu, 4 May 2017 18:16:32 +0000 (14:16 -0400)] 
user-guide: fix links to compact region

There were broken links in users_guide for compact region.

  * Data-Compact -> GHC-Compact
  * compact-@LIBRARY_compact_VERSION@ ->
ghc-compact-@LIBRARY_compact_VERSION@

This commit is for ghc-8.2 branch.

Test Plan: build

Reviewers: austin, bgamari

Reviewed By: bgamari

Subscribers: rwbarton, thomie

Differential Revision: https://phabricator.haskell.org/D3521

2 years agoPass -ffrontend-opt arguments to frontend plugin in the correct order
doug [Thu, 4 May 2017 18:16:17 +0000 (14:16 -0400)] 
Pass -ffrontend-opt arguments to frontend plugin in the correct order

Previously they were passed in the reverse order that they're specified
on the command line.

Add a haddock to frontendPluginOpts in DynFlags.hs.

Modify test frontend01 to cover the case of multiple -ffrontend-opt.

Reviewers: austin, bgamari

Reviewed By: bgamari

Subscribers: rwbarton, thomie

GHC Trac Issues: #13632

Differential Revision: https://phabricator.haskell.org/D3520

2 years agoAdd an Eq instance for UniqSet
David Feuer [Thu, 4 May 2017 18:16:02 +0000 (14:16 -0400)] 
Add an Eq instance for UniqSet

I left that out by mistake, and it apparently breaks at least one
existing plugin.

Reviewers: christiaanb, austin, bgamari

Reviewed By: bgamari

Subscribers: rwbarton, thomie

Differential Revision: https://phabricator.haskell.org/D3518

2 years agoBump nofib submodule
Ben Gamari [Thu, 4 May 2017 18:15:14 +0000 (14:15 -0400)] 
Bump nofib submodule

2 years agorts: Fix MachO from D3527
Ben Gamari [Thu, 4 May 2017 19:23:46 +0000 (15:23 -0400)] 
rts: Fix MachO from D3527

We gave up on typedefing {Section,ObjectCode}FormatInfo structs but
MachO never got the memo.

2 years agoAdd test for #13320
David Feuer [Thu, 4 May 2017 17:17:34 +0000 (13:17 -0400)] 
Add test for #13320

Reviewers: austin, bgamari

Reviewed By: bgamari

Subscribers: rwbarton, thomie

GHC Trac Issues: #13320

Differential Revision: https://phabricator.haskell.org/D3532

2 years agoComments only, about Typeable/TypeRep/KindRep
Simon Peyton Jones [Thu, 4 May 2017 16:26:41 +0000 (17:26 +0100)] 
Comments only, about Typeable/TypeRep/KindRep

2 years agoRemove unused import
Simon Peyton Jones [Thu, 4 May 2017 12:38:24 +0000 (13:38 +0100)] 
Remove unused import

2 years agoDeal with exceptions in dsWhenNoErrs
Simon Peyton Jones [Thu, 4 May 2017 12:33:04 +0000 (13:33 +0100)] 
Deal with exceptions in dsWhenNoErrs

Gracious me.  Ever since this patch

  commit 374457809de343f409fbeea0a885877947a133a2
  Author: Jan Stolarek <jan.stolarek@p.lodz.pl>
  Date:   Fri Jul 11 13:54:45 2014 +0200

      Injective type families

TcRnMonad.askNoErrs has been wrong. It looked like this

   askNoErrs :: TcRn a -> TcRn (a, Bool)
   askNoErrs m
    = do { errs_var <- newTcRef emptyMessages
         ; res  <- setErrsVar errs_var m
         ; (warns, errs) <- readTcRef errs_var
         ; addMessages (warns, errs)
         ; return (res, isEmptyBag errs) }

The trouble comes if 'm' throws an exception in the TcRn monad.
Then 'errs_var is never read, so any errors are simply lost.

This mistake was then propgated into DsMonad.dsWhenNoErrs, where
it gave rise to Trac #13642.

Thank to Ryan for narrowing it down so sharply.

I did some refactoring, as usual.

2 years agoAbandon typedefing the {Section,ObjectCode}FormatInfo structs
Gabor Greif [Wed, 3 May 2017 09:07:10 +0000 (11:07 +0200)] 
Abandon typedefing the {Section,ObjectCode}FormatInfo structs

Summary:
This is a follow-up to @angerman 's refactoring for ELF
that happened with e5e8646d3c6af82549b55fbee6764b087144a7ec
My previous commit a6675a93efe7cae2f206508047a39e73ce4e92a5
corrected a typedef redefinition issue with GCC v4.4
(which is pervasive with RHEL 6). Now the problem has resurfaced.

Instead of dancing after the different compiler's pipe, I decided
to eliminate the typedefs altogether and refer to the struct
namespace explicitly.

Added a note to describe why typedefs are not
applied on customisable structs.

Reviewers: austin, bgamari, erikd, simonmar

Subscribers: rwbarton, thomie, angerman

Differential Revision: https://phabricator.haskell.org/D3527

2 years agoTeach optCoecion about FunCo
Simon Peyton Jones [Tue, 2 May 2017 15:30:38 +0000 (16:30 +0100)] 
Teach optCoecion about FunCo

I was seeing coercions like

   Nth 3 ((c2 -> c2) ; (c3 -> c4))

which made me realise that optCoercion was doing a bad job
of the (relatively new) FunCo.

In particular, opt_trans_rule needs a FunCo/FunCo case,
to go with the TyConAppCo/TyConAppCo case.  Easy.

No behavioural change, some coercions will get smaller

2 years agoImprove fixIO
David Feuer [Wed, 3 May 2017 13:57:00 +0000 (09:57 -0400)] 
Improve fixIO

Use `unsafeDupableInterleaveIO` to avoid `noDuplicate` calls. Switch
from `takeMVar` to `readMVar` as multiple entry with `takeMVar`
would lock things up.

Reviewers: austin, hvr, bgamari, simonmar

Reviewed By: simonmar

Subscribers: rwbarton, thomie

Differential Revision: https://phabricator.haskell.org/D3494

2 years agoTest #13585 in typecheck/should_compile/T13585
Richard Eisenberg [Tue, 2 May 2017 03:16:20 +0000 (23:16 -0400)] 
Test #13585 in typecheck/should_compile/T13585

2 years agoFix #13233 by checking for lev-poly primops
Richard Eisenberg [Sun, 23 Apr 2017 18:16:32 +0000 (14:16 -0400)] 
Fix #13233 by checking for lev-poly primops

The implementation plan is all in Note [Detecting forced eta expansion]
in DsExpr.

2 years agoFix #13333 by fixing the covar's type in ctEvCoercion
Richard Eisenberg [Sun, 23 Apr 2017 14:24:30 +0000 (10:24 -0400)] 
Fix #13333 by fixing the covar's type in ctEvCoercion

The change is noted in Note [Given in ctEvCoercion]. This patch
also adds a bit more commentary to TcFlatten, documenting some
key invariants of the flattening algorithm. While in the area,
I also removed some stale commentary from TcCanonical.

2 years agoUse mkCastTy in subst_ty.
Richard Eisenberg [Fri, 7 Apr 2017 15:39:51 +0000 (11:39 -0400)] 
Use mkCastTy in subst_ty.

This allows mkCastTy to maintain invariants. Much like how
we use mkAppTy in subst_ty.

2 years agoShave the hair off mkCastTy.
Richard Eisenberg [Fri, 7 Apr 2017 15:38:37 +0000 (11:38 -0400)] 
Shave the hair off mkCastTy.

Previously, mkCastTy went to great lengths to shove casts
around. But this doesn't seem to be necessary. However,
the reflexivity check currently in mkCastTy is not enough.
See the abortive Note [No reflexive casts in types]

2 years agoFix #13233 by checking for lev-poly primops
Richard Eisenberg [Tue, 2 May 2017 22:56:30 +0000 (18:56 -0400)] 
Fix #13233 by checking for lev-poly primops

The implementation plan is all in Note [Detecting forced eta expansion]
in DsExpr.

Test Plan: ./validate, codeGen/should_fail/T13233

Reviewers: simonpj, austin, bgamari

Subscribers: rwbarton, thomie

GHC Trac Issues: #13233

Differential Revision: https://phabricator.haskell.org/D3490

2 years agoTypos in manual and comments
Gabor Greif [Tue, 2 May 2017 11:25:33 +0000 (13:25 +0200)] 
Typos in manual and comments

2 years agoFix loss-of-SpecConstr bug
Simon Peyton Jones [Tue, 2 May 2017 11:04:44 +0000 (12:04 +0100)] 
Fix loss-of-SpecConstr bug

This bug, reported in Trac #13623 has been present since

  commit b8b3e30a6eedf9f213b8a718573c4827cfa230ba
  Author: Edward Z. Yang <ezyang@cs.stanford.edu>
  Date:   Fri Jun 24 11:03:47 2016 -0700

      Axe RecFlag on TyCons.

SpecConstr tries not to specialise indefinitely, and had a
limit (see Note [Limit recursive specialisation]) that made
use of info about whether or not a data constructor was
"recursive".  This info vanished in the above commit, making
the limit fire much more often -- and indeed it fired in this
test case, in a situation where specialisation is /highly/
desirable.

I refactored the test, to look instead at the number of
iterations of the loop of "and now specialise calls that
arise from the specialisation".  Actually less code, and
more robust.

I also added record field names to a couple of constructors,
and renamed RuleInfo to SpecInfo.

2 years agoFix a small Float-Out bug
Simon Peyton Jones [Wed, 26 Apr 2017 16:43:24 +0000 (17:43 +0100)] 
Fix a small Float-Out bug

The float-out pass uses a heuristic based on strictness info.
But it was getting the strictness info mis-aligned; I'd forgotten
that strictness flags only apply to /value/ arguments.

This patch fixes it.  It has some surprising effects!

--------------------------------------------------------------------------------
        Program           Size    Allocs   Runtime   Elapsed  TotalMem
--------------------------------------------------------------------------------
        integer          -0.1%     +9.9%     +0.2%     +0.2%     +0.0%
           lcss          +0.0%     +0.0%    -11.9%    -11.9%     +0.0%
         queens          -0.2%    +29.0%      0.02      0.02     +0.0%
         simple          -0.1%    -22.6%    -21.7%    -21.7%     -3.6%
       treejoin          +0.0%     +0.0%    -12.3%    -12.6%     +0.0%
--------------------------------------------------------------------------------
            Min          -0.2%    -22.6%    -21.7%    -21.7%    -10.0%
            Max          +3.3%    +29.0%    +19.2%    +19.2%    +50.0%
 Geometric Mean          +0.0%     +0.1%     -2.1%     -2.1%     +0.2%

The 'queens' and 'integer' allocation regressions are because, just
before let-floatting, we get
    \v -> foldr k z (case x of I# y -> build ..y..)

Becase of Note [Case MFEs] we don't float the build; so fusion
happens.  This increases allocation in queens because the build
isn't shared; but actaully runtime improves solidly.  Situation
is similar in integer, although I think runtime gets a bit worse.

The bug meant that, because of foldr's type arguments, the
mis-aligned strictness info meant that the entire (case x ...)
was floated, so fusion failed, but sharing happened.

This is all very artificial-benchmark-ish so I'm not losing sleep
over it.

I did see some runtime numbers increasd, but I think it's noise;
the differnce went away when I tried them one by one afterwards.

2 years agoJoin-point refactoring
Simon Peyton Jones [Thu, 27 Apr 2017 16:04:14 +0000 (17:04 +0100)] 
Join-point refactoring

This commit has a raft of refactorings that improve the treatment
of join points.  I wasn't aiming so much as to gain performance as
to make the code simpler.

The two big things are these:

* Make mkDupableCont work for SimplBind as well.  This is simpler than
  I thought and quite neat.  (Luke had aready done StrictArg.)  That's
  a win in its own right. But also now /all/ continuations can be made
  dup-able

* Now that all continuations can be made dup-able, I could simplify
  mkDupableCont to return just one SimplCont, instead of two.
  That really is a worthwhile simlification!  Much easier to think
  about.

Plus a bunch of smaller things:

* Remove the join-arity that had been added to seIdSubst.
  It can be done more simply by putting it in DoneEx, which
  is the only constructor that actually needs it, and now we
  don't need the unsavoury isJoinIdInEnv_maybe.

* Re-order the handling of join points in Simplify, so that we don't need
  the horrible resultTypeOfDupableCont

* Add field names for StrictBind, StrictArg; and use them

* Define simplMonad.newJoinId, and use it

* Rename the seFloats field of SimplEnv to seLetFloats

Binary sizes seem to go up slightly, but allocations generally
improve, sometimes significantly.  I don't believe the runtime numbers
are reliable enough to draw any conclusions about

--------------------------------------------------------------------------------
        Program           Size    Allocs   Runtime   Elapsed  TotalMem
--------------------------------------------------------------------------------
          event          +1.1%    -12.0%     -0.2%     -0.2%     -8.7%
         fulsom          +1.9%    -11.8%    -10.0%    -10.0%     +5.3%
     last-piece          +2.3%     -1.2%     -1.2%     -1.2%     +0.0%
           mate          +0.9%     -1.4%     -0.6%     -0.7%     +0.0%
     multiplier          +1.5%     -8.3%      0.17      0.17     +0.0%
         parser          +2.0%     +1.0%      0.04      0.04     +0.0%
        parstof          +1.5%     +0.7%      0.01      0.01     +0.0%
          sched          +1.3%     -6.1%      0.03      0.03     +0.0%
         simple          +1.8%     +1.0%     +9.7%     +9.6%     +0.0%
--------------------------------------------------------------------------------
            Min          +0.5%    -12.0%    -10.0%    -10.0%     -8.7%
            Max          +3.0%     +1.0%    +14.2%    +14.2%    +50.0%
 Geometric Mean          +1.4%     -0.4%     +0.3%     +0.4%     +0.5%

There's also a tests/perf/compiler improvement of 20% allocation in
T6048.  I think it's because we now generate smaller code.

2 years agoImprove SpecConstr when there are many opportunities
Simon Peyton Jones [Thu, 27 Apr 2017 10:15:00 +0000 (11:15 +0100)] 
Improve SpecConstr when there are many opportunities

SpecConstr has -fspec-contr-count=N which limits the maximum
number of specialisations we make for any particular function.
But until now, if that limit was exceeded we discarded all the
candidates!  So adding a new specialisaiton opportunity (by
adding a new call site, or improving the optimiser) could result
in less specialisation and worse performance.

This patch instead picks the top N candidates, resulting in
less brittle behaviour.

See Note [Choosing patterns].

2 years agotestsuite: Bump allocations of T3064
Ben Gamari [Tue, 2 May 2017 00:42:38 +0000 (20:42 -0400)] 
testsuite: Bump allocations of T3064

This seems to have regressed due to,

    commit 5c602d2228d28530621cc6c94fbb736b13f474fb
    Author: Reid Barton <rwbarton@gmail.com>
    Date:   Mon May 1 11:17:47 2017 -0400

        Avoid excessive space usage from unfoldings in CoreTidy

2 years agoBump array submodule
Ben Gamari [Mon, 1 May 2017 16:59:36 +0000 (12:59 -0400)] 
Bump array submodule

2 years ago[linker] Add ocInit/ocDeinit for ELF
Moritz Angermann [Mon, 1 May 2017 15:18:14 +0000 (11:18 -0400)] 
[linker] Add ocInit/ocDeinit for ELF

This fills out the extended `info` structs, and will be subsequently
used in the arm and arm64 linker for elf.

Depends on: D3446, D3459

Reviewers: bgamari, austin, erikd, simonmar

Reviewed By: simonmar

Subscribers: rwbarton, thomie

Differential Revision: https://phabricator.haskell.org/D3447

2 years agoAvoid excessive space usage from unfoldings in CoreTidy
Reid Barton [Mon, 1 May 2017 15:17:47 +0000 (11:17 -0400)] 
Avoid excessive space usage from unfoldings in CoreTidy

Test Plan: validate

Reviewers: austin, bgamari

Reviewed By: bgamari

Subscribers: thomie

GHC Trac Issues: #13564

Differential Revision: https://phabricator.haskell.org/D3516

2 years agoPPC NCG: Lower MO_*_Fabs as PowerPC fabs instruction
Peter Trommler [Mon, 1 May 2017 15:17:25 +0000 (11:17 -0400)] 
PPC NCG: Lower MO_*_Fabs as PowerPC fabs instruction

In Phab:D3265 we introduced MO_F32_Fabs and MO_F64_Fabs.
This patch improves code generation by generating PowerPC fabs
instructions.

Test Plan: run numeric/should_run/numrun015 or validate

Reviewers: austin, bgamari, hvr, simonmar, erikd

Reviewed By: erikd

Subscribers: rwbarton, thomie

Differential Revision: https://phabricator.haskell.org/D3512

2 years agoMake LLVM output robust to -dead_strip on mach-o platforms
Moritz Angermann [Mon, 1 May 2017 15:13:36 +0000 (11:13 -0400)] 
Make LLVM output robust to -dead_strip on mach-o platforms

This reverses commit 1686f30951292e94bf3076ce8b3eafb0bcbba91d (Mangle
.subsections_via_symbols away., D3287), and implements proper support
for `-dead_strip` via the injection of `.alt_entry` symbols for the
function definition pointing to the beginning of the prefix data.

This is the result of a lengthy discussion with rwbarton, and the
following llvm-dev mailing list thread:
http://lists.llvm.org/pipermail/llvm-dev/2017-March/110733.html

The essential problem is that there is no reference from a function to
its info table.  This combined with `.subsections_via_symbols`, which
llvm emits unconditionally, leads the linker to believe that the prefix
data is unnecessary and stripping it away if presented with the
`-dead_strip` flag.

The NCG has for this purpose special $dsp (dead strip preventer) symbols
and adds a relocation to the end of each function body pointing to that
function's $dsp symbol. We cannot easily do the same thing via LLVM.
Instead we use the `.alt_entry` directive on the function symbol, which
causes the linker to treat it as a continuation of the previous symbol,
namely the $dsp symbol. As a result the function body will not be
separated from its info table.

Reviewers: erikd, austin, rwbarton, bgamari

Reviewed By: bgamari

Subscribers: michalt, thomie

Differential Revision: https://phabricator.haskell.org/D3290

2 years agoFix capitalization in message for #13609
Ben Gamari [Mon, 1 May 2017 15:06:08 +0000 (11:06 -0400)] 
Fix capitalization in message for #13609

I had meant to do this before merging but forgot.

2 years agotestsuite: Add test for #13609
Ben Gamari [Mon, 1 May 2017 03:19:26 +0000 (23:19 -0400)] 
testsuite: Add test for #13609

2 years agoIgnore ANN pragmas with no TH and no external interpreter.
Shea Levy [Mon, 1 May 2017 03:20:54 +0000 (23:20 -0400)] 
Ignore ANN pragmas with no TH and no external interpreter.

Reviewers: hvr, austin, bgamari, RyanGlScott

Reviewed By: bgamari

Subscribers: angerman, RyanGlScott, rwbarton, thomie

GHC Trac Issues: #13609

Differential Revision: https://phabricator.haskell.org/D3496

2 years agoDisable -Wcpp-undef for now
Ben Gamari [Mon, 1 May 2017 02:41:38 +0000 (22:41 -0400)] 
Disable -Wcpp-undef for now

We at very least need to upstream a patch for the time submodule to compile on
OS X.

2 years agoUpdate broken nm message
Alex Biehl [Sun, 30 Apr 2017 14:24:30 +0000 (16:24 +0200)] 
Update broken nm message

9373994acaf1b73fe0e7cf8e03594c63cec8d235 killed the `--with-*` arguments for `configure`.