4 years agoDon't throw exception when start_phase==stop_phase (#10219)
Thomas Miedema [Tue, 31 Mar 2015 10:12:24 +0000 (12:12 +0200)] 
Don't throw exception when start_phase==stop_phase (#10219)

Just do nothing instead. This bug only shows up when using `-x hspp` in
--make mode on registerised builds.

Reviewed By: austin

Differential Revision:

4 years agoExplicitly check for -C on registerised build (#7563)
Thomas Miedema [Tue, 31 Mar 2015 10:11:08 +0000 (12:11 +0200)] 
Explicitly check for -C on registerised build (#7563)

Show a more descriptive error message.

Reviewed By: austin

Differential Revision:

4 years agoTestsuite: suppress errors when running GS on
Phil Ruffwind [Tue, 31 Mar 2015 10:04:50 +0000 (12:04 +0200)] 
Testsuite: suppress errors when running GS on

Suppress the errors that appear in standard output when running gs on since it's expected to fail anyway.

Reviewed By: thomie, austin

Differential Revision:

4 years agoDrop old integer-gmp-0.5 from GHC source tree
Herbert Valerio Riedel [Sun, 29 Mar 2015 17:02:08 +0000 (19:02 +0200)] 
Drop old integer-gmp-0.5 from GHC source tree

This completes what c774b28f76ee4c220f7c1c9fd81585e0e3af0e8a (#9281)
started.  `integer-gmp-1.0` was added as an additional
`libraries/integer-gmp2` folder while retaining the ability to configure
GHC w/ the old `integer-gmp-0.5` to have a way back, and or the ability
to easily switch between old/new `integer-gmp` for benchmark/debugging

This commit removes the old `libraries/integer-gmp` folder and moves
`libraries/integer-gmp2` into its place, while removing any mentions of
"gmp2" as well as the to support two different `integer-gmp` packages in
GHC's source-tree.

Reviewed By: austin

Differential Revision:

4 years agoAdd `integer-gmp` specific hint to
Herbert Valerio Riedel [Tue, 31 Mar 2015 08:54:15 +0000 (10:54 +0200)] 
Add `integer-gmp` specific hint to

[skip ci]

4 years agoSyntax check package-qualified imports (#9225)
Thomas Miedema [Mon, 30 Mar 2015 22:41:23 +0000 (00:41 +0200)] 
Syntax check package-qualified imports (#9225)

Version numbers are not allowed in the package name of a
package-qualified import.

Reviewed By: austin, ezyang

Differential Revision:

4 years agoDelete unused field `PipeEnv.pe_isHaskellishFile`
Thomas Miedema [Mon, 30 Mar 2015 21:05:16 +0000 (23:05 +0200)] 
Delete unused field `PipeEnv.pe_isHaskellishFile`

Differential Revision:

4 years agoRemove an unused include that doesn't exist on OS X (#10211)
Dave Laing [Mon, 30 Mar 2015 11:02:33 +0000 (13:02 +0200)] 
Remove an unused include that doesn't exist on OS X (#10211)

Differential Revision:

4 years agoRefactor the story around switches (#10137)
Joachim Breitner [Mon, 30 Mar 2015 08:20:14 +0000 (10:20 +0200)] 
Refactor the story around switches (#10137)

This re-implements the code generation for case expressions at the Stg →
Cmm level, both for data type cases as well as for integral literal
cases. (Cases on float are still treated as before).

The goal is to allow for fancier strategies in implementing them, for a
cleaner separation of the strategy from the gritty details of Cmm, and
to run this later than the Common Block Optimization, allowing for one
way to attack #10124. The new module CmmSwitch contains a number of
notes explaining this changes. For example, it creates larger
consecutive jump tables than the previous code, if possible.

nofib shows little significant overall improvement of runtime. The
rather large wobbling comes from changes in the code block order
(see #8082, not much we can do about it). But the decrease in code size
alone makes this worthwhile.

        Program           Size    Allocs   Runtime   Elapsed  TotalMem
            Min          -1.8%      0.0%     -6.1%     -6.1%     -2.9%
            Max          -0.7%     +0.0%     +5.6%     +5.7%     +7.8%
 Geometric Mean          -1.4%     -0.0%     -0.3%     -0.3%     +0.0%

Compilation time increases slightly:
        -1 s.d.                -----            -2.0%
        +1 s.d.                -----            +2.5%
        Average                -----            +0.3%

The test case T783 regresses a lot, but it is the only one exhibiting
any regression. The cause is the changed order of branches in an
if-then-else tree, which makes the hoople data flow analysis traverse
the blocks in a suboptimal order. Reverting that gets rid of this
regression, but has a consistent, if only very small (+0.2%), negative
effect on runtime. So I conclude that this test is an extreme outlier
and no reason to change the code.

Differential Revision:

4 years agoRenames some files to help with validation cleanup (#10212)
Dave Laing [Mon, 30 Mar 2015 07:21:13 +0000 (09:21 +0200)] 
Renames some files to help with validation cleanup (#10212)

Test Plan: validate twice

Reviewed by: thomie

Differential Revision:

4 years agoDoc typofix.
Edward Z. Yang [Sun, 29 Mar 2015 03:57:20 +0000 (20:57 -0700)] 
Doc typofix.

Signed-off-by: Edward Z. Yang <>
4 years agoRename C(obj)cplusplus to C(obj)cxx
Thomas Miedema [Sat, 28 Mar 2015 00:27:59 +0000 (01:27 +0100)] 
Rename C(obj)cplusplus to C(obj)cxx

Reviewed By: kgardas

Differential Revision:

4 years agoRename driver phases C(obj)cpp to C(obj)cplusplus
Thomas Miedema [Fri, 27 Mar 2015 20:37:49 +0000 (21:37 +0100)] 
Rename driver phases C(obj)cpp to C(obj)cplusplus

Cpp     = Pre-process C
Ccpp    = Compile C++
Cobjcpp = Compile Objective-C++
CmmCpp  = Pre-process Cmm

Quite confusing! This commit renames `Ccpp` to `Ccplusplus`, and
`Cobjcpp` to `Cobjcplusplus`. The two letters `p-p` keep standing for
`pre-processing` throughout the compiler.

Reviewed By: austin

Differential Revision:

4 years agoUpdate list of primops that don't get wrappers (#10191)
Reid Barton [Fri, 27 Mar 2015 04:09:23 +0000 (00:09 -0400)] 
Update list of primops that don't get wrappers (#10191)

The list was 14 years old, and there don't seem to be any problems
with seq# or par#; the other par*# primops were not actually
implemented at all and were removed in D758.

Test Plan:
validate; will also try to locally validate an unregisterised build
in case there was some truth to the deleted comment

Reviewers: austin

Subscribers: thomie

Differential Revision:

GHC Trac Issues: #10191

4 years agoRemove some unimplemented GranSim primops
Reid Barton [Fri, 27 Mar 2015 15:25:19 +0000 (11:25 -0400)] 
Remove some unimplemented GranSim primops

An attempt to use these resulted in an error like:

[1 of 1] Compiling Main             ( p.hs, p.o )
ghc: panic! (the 'impossible' happened)
  (GHC version 7.8.4 for x86_64-unknown-linux):
emitPrimOp: can't translate PrimOp  parAt#{v}

Test Plan: validate

Reviewers: thomie, austin

Reviewed By: thomie, austin

Subscribers: thomie

Differential Revision:

4 years agoFix Git-commit-id detection for RELEASE=YES
Herbert Valerio Riedel [Thu, 26 Mar 2015 21:39:52 +0000 (22:39 +0100)] 
Fix Git-commit-id detection for RELEASE=YES

By mistake, the Git-commit-id detection was only enabled for
`RELEASE=NO` (since the date-based GHC version computation is
only active in that case). With this commit the commit-id
detection is active regardless of the `RELEASE`-setting.

This is a follow-up to 73e5e2f8bade2d8b2b1ecae958fe12d0b24591ef

4 years agoAdd Monad instance for `((,) a)` (#10190)
Fumiaki Kinoshita [Wed, 25 Mar 2015 04:30:25 +0000 (13:30 +0900)] 
Add Monad instance for `((,) a)` (#10190)

This was proposed a couple of times in the past, e.g.


but its implementation had been blocked by the fact that `Monoid` wasn't
in scope where the `Monad` class was defined. Since the AMP/FTP restructuring
this is no longer the case.

4 years agoMore comments (related to Trac #10180)
Simon Peyton Jones [Tue, 24 Mar 2015 13:52:20 +0000 (13:52 +0000)] 
More comments (related to Trac #10180)

4 years agoImprove environment handling in TcBinds
Simon Peyton Jones [Tue, 24 Mar 2015 12:52:29 +0000 (12:52 +0000)] 
Improve environment handling in TcBinds

This is a minor refactoring, but it simplifies the code quite a bit

* Decrease the number of variants of tcExtend in TcEnv
* Remove "not_actually_free" from TcEnv.tc_extend_local_env2
* Simplify plumbingof the "closed" flag
* Remove redundant scoping of wild-card variables

4 years agoSome stress tests for the empty case linter
Joachim Breitner [Tue, 24 Mar 2015 10:28:55 +0000 (11:28 +0100)] 
Some stress tests for the empty case linter

This is a variation of T2431 where the emptyness of the type is hidden
behind a newtype, a type family and a closed type family. In all cases,
it would be sound for the compiler to determine that the equality type
is empty and the case alternatives may be dropped.

At the moment, GHC does _not_ determine that. But if it ever does, this
test ensures that we do not forget to make the lint from #10180 smarter
as well.

4 years agoDelete DynFlag for NDP way
Thomas Miedema [Tue, 24 Mar 2015 10:09:43 +0000 (11:09 +0100)] 
Delete DynFlag for NDP way

The last trace of NDP was removed in 2008 in commit:

NDP stood for 'Nested Data Parallelism'. It was superseded by Data
Parallel Haskell (DPH).

Reviewed By: austin

Differential Revision:

4 years agoEmpty alternative lint check: Explain why there are two checks
Joachim Breitner [Tue, 24 Mar 2015 08:37:31 +0000 (09:37 +0100)] 
Empty alternative lint check: Explain why there are two checks

This addresses
[skip ci]

4 years agoexprIsBottom: Make use of isEmptyTy (#10186)
Joachim Breitner [Mon, 23 Mar 2015 21:25:24 +0000 (22:25 +0100)] 
exprIsBottom: Make use of isEmptyTy (#10186)

Any expression with of empty type is necessary bottom, so we can use
that here. No effects known, but it is the right thing to do and
validate, so lets do it.

Differential Revision:

4 years agoFix bug in hs-libraries field munging.
Edward Z. Yang [Wed, 18 Mar 2015 22:28:29 +0000 (15:28 -0700)] 
Fix bug in hs-libraries field munging.

Signed-off-by: Edward Z. Yang <>
Test Plan: validate with 7.8 stage0 and HEAD stage0

Reviewers: austin, kgardas

Subscribers: thomie

Differential Revision:

4 years agoDo version specific detection of LLVM tools (#10170).
Erik de Castro Lopo [Fri, 20 Mar 2015 01:16:23 +0000 (12:16 +1100)] 
Do version specific detection of LLVM tools (#10170).

The LLVM developers seem to make breaking changes in the LLVM IR
language between major releases. As a consumer of the LLVM tools
GHC now needs to be locked more tightly to a single version of
the LLVM tools.

GHC HEAD currently only supports LLVM version 3.6. This commit
changes the configure script to look for `llc-3.6` and `opt-3.6`
before looking for `llc` and `opt`. If the former are not found,
but the later are, check that they actually are version 3.6.

At the same time, when detecting known problems with the LLVM
tools (ie #9439) test for it using the versions of the LLVM tools
retrieved from the bootstrap compiler's settings file.

Test Plan: Manual testing.

Reviewers: thomie, rwbarton, nomeata, austin

Subscribers: thomie

Differential Revision:

GHC Trac Issues: #10170

4 years agoisEmptyTy: Improve comment
Joachim Breitner [Mon, 23 Mar 2015 21:19:21 +0000 (22:19 +0100)] 
isEmptyTy: Improve comment

[skip ci]

4 years agoAdd Note [No alternatives lint check]
Joachim Breitner [Mon, 23 Mar 2015 21:16:08 +0000 (22:16 +0100)] 
Add Note [No alternatives lint check]

in a follow up to #10180.

4 years agoNew lint check: Check idArity invariants (#10181)
Joachim Breitner [Sun, 22 Mar 2015 16:51:51 +0000 (17:51 +0100)] 
New lint check: Check idArity invariants (#10181)

The arity of an id should not be larger than what the type allows, and
it should also not contradict the strictness signature. This adds a lint
check for that.

This broke test T8743, uncovering a bug in the SOURCE import machinery,
which is now filed as #10182.

4 years agoNew Lint check: no alternatives implies bottoming expression
Joachim Breitner [Sun, 22 Mar 2015 16:32:26 +0000 (17:32 +0100)] 
New Lint check: no alternatives implies bottoming expression

detected either by exprIsBottom or by an empty type.

This was suggested by SPJ and fixes #10180.

4 years agoexprIsBottom should look through type lambdas
Joachim Breitner [Mon, 23 Mar 2015 09:17:25 +0000 (10:17 +0100)] 
exprIsBottom should look through type lambdas

as evaluting (\ (@ a) -> e) diverges if and only if evaluating e
diverges. This was found in the context of #10180.

4 years agoDo proper depth checking in the flattener to avoid looping.
Richard Eisenberg [Mon, 23 Mar 2015 14:30:19 +0000 (10:30 -0400)] 
Do proper depth checking in the flattener to avoid looping.

This implements (roughly) the plan put forward in comment:14:ticket:7788,
fixing #7788, #8550, #9554, #10139, and addressing concerns raised in #10079.
There are some regressions w.r.t. GHC 7.8, but only with pathological type
families (like F a = F a). This also (hopefully -- don't have a test case)
fixes #10158. Unsolved problems include #10184 and #10185, which are both
known deficiencies of the approach used here.

As part of this change, the plumbing around detecting infinite loops has
changed. Instead of -fcontext-stack and -ftype-function-depth, we now have
one combined -freduction-depth parameter. Setting it to 0 disbales the
check, which is now the recommended way to get (terminating) code to
typecheck in releases. (The number of reduction steps may well change between
minor GHC releases!)

This commit also introduces a new IntWithInf type in BasicTypes
that represents an integer+infinity. This type is used in a few
places throughout the code.

Tests in
  typecheck/should_compile/T10184  (expected broken)
  typecheck/should_compile/T10185  (expected broken)

This commit also changes performance testsuite numbers, for the better.

4 years agoMake testsuite driver Python 2.6 compatible again
Thomas Miedema [Mon, 23 Mar 2015 12:56:22 +0000 (13:56 +0100)] 
Make testsuite driver Python 2.6 compatible again

Another bug in the #10164 series. Only Python 2.7 and up allow you to
omit the positional argument specifiers in format strings.

Test Plan: this fixes the Solaris builders

Reviewed By: kgardas

Differential Revision:

GHC Trac Issues: #10164

4 years agoUpdate base changelog regarding 4.8.1 changes
Herbert Valerio Riedel [Mon, 23 Mar 2015 10:19:50 +0000 (11:19 +0100)] 
Update base changelog regarding 4.8.1 changes

Turns out we've been a bit too lazy and quite a few undocumented changes have
accumulated in `base` relative to GHC 7.10's `base-`...

[skip ci]

4 years agoMinor bump `base` version to
Herbert Valerio Riedel [Mon, 23 Mar 2015 10:22:36 +0000 (11:22 +0100)] 
Minor bump `base` version to

We've accumulated enough to justify a minor version bump to,
but not enough to justify a major version bump yet as far as I can see.

4 years agoFix quasiquotation test (#4150)
Thomas Miedema [Mon, 23 Mar 2015 09:41:22 +0000 (10:41 +0100)] 
Fix quasiquotation test (#4150)

4 years agoMinor fix to Note [Trimming arity]
Joachim Breitner [Mon, 23 Mar 2015 09:12:34 +0000 (10:12 +0100)] 
Minor fix to Note [Trimming arity]

[ci skip]

4 years agoFix integer-gmp source tarball distribution
Herbert Valerio Riedel [Mon, 23 Mar 2015 07:11:32 +0000 (08:11 +0100)] 
Fix integer-gmp source tarball distribution

The `configure` script checks for presence of `install-sh` even if
it's not used, so we simply add it to the distribution to make `configure`

4 years agoUpdate integer-gmp2's changelog for release
Herbert Valerio Riedel [Fri, 20 Mar 2015 17:52:28 +0000 (18:52 +0100)] 
Update integer-gmp2's changelog for release

[skip ci]

(cherry picked from commit 7bd3efe3ccc6dc0a3ec84008285b4e03b48d8f41)

4 years agorts: check arguments to flags that don't have any
Carlos Tomé [Sun, 22 Mar 2015 23:53:42 +0000 (00:53 +0100)] 
rts: check arguments to flags that don't have any

There were some flags of the RTS that when given an argument (which they
don't have) were not firing an error.
e.g -Targument when the flag -T has no argument.
Now this is an error and affects the following flags:
-B -w -T -Z -P -Pa -c -t

Signed-off-by: Carlos Tomé <>
Reviewed By: austin, thomie, hvr

Differential Revision:

GHC Trac Issues: #9839

4 years agofix bus error (misaligned data access) on SPARC in __decodeDouble_Int64
Karel Gardas [Sun, 22 Mar 2015 20:58:03 +0000 (21:58 +0100)] 
fix bus error (misaligned data access) on SPARC in __decodeDouble_Int64

Reviewers: austin

Subscribers: thomie

Differential Revision:

4 years agodocs: make gen_contents_index --verbose more verbose
Austin Seipp [Sun, 22 Mar 2015 19:11:22 +0000 (14:11 -0500)] 
docs: make gen_contents_index --verbose more verbose

Signed-off-by: Austin Seipp <>
4 years agoTrim Call Arity
Joachim Breitner [Sat, 21 Mar 2015 14:58:38 +0000 (15:58 +0100)] 
Trim Call Arity

to not accidentially invalidate a strictness signature with a Diverges
result info. This seems to fix #10176.

Differential Revision:

4 years agoTest case for #10176
Joachim Breitner [Sat, 21 Mar 2015 14:08:16 +0000 (15:08 +0100)] 
Test case for #10176

originally provided by Neil Mitchell. Despite what he observed, I can
observe the bug even with all in one module.

4 years agoNew lint check: exprIsHNF = True and alts = [] is bogus
Joachim Breitner [Sat, 21 Mar 2015 14:02:07 +0000 (15:02 +0100)] 
New lint check: exprIsHNF = True and alts = [] is bogus

4 years agoClarify meaning of the RTS `taskCount` variable
Thomas Miedema [Sun, 22 Mar 2015 11:04:18 +0000 (12:04 +0100)] 
Clarify meaning of the RTS `taskCount` variable

In #9261, there was some confusion about the meaning of the taskCount
stats variable in the rts.

It turns out that taskCount is not decremented when a worker task is
stopped (i.e. from workerTaskStop), but only when freeMyTask is called,
which frees the task bound to the current thread. So taskCount is the
current number of bound tasks + the total number of worker tasks.

This makes the calculation of the current number of bound tasks in
rts/Stats.c correct _as is_.

[skip ci]

Reviewed By: austin

Differential Revision:

4 years agoUpdate haskeline submodule to release tag
Herbert Valerio Riedel [Sun, 22 Mar 2015 07:22:03 +0000 (08:22 +0100)] 
Update haskeline submodule to release tag

This fixes compilation under windows with pre-AMP GHCs
although it's not clear if bootstrapping GHC was affected.
(see for details)

4 years agotestsuite: add test for #10177
Austin Seipp [Sun, 22 Mar 2015 01:12:55 +0000 (20:12 -0500)] 
testsuite: add test for #10177

Signed-off-by: Austin Seipp <>
4 years agoCorrect documentation in `Parser`.
Matthew Pickering [Sat, 21 Mar 2015 11:57:18 +0000 (12:57 +0100)] 
Correct documentation in `Parser`.

Removed a trailing `in` from the final line which caused a compilation
error. [skip ci]

Reviewed by: thomie

Differential Revision:

4 years agoUpdate Cabal submodule to Cabal-v1.22.2.0 rls tag
Herbert Valerio Riedel [Sat, 21 Mar 2015 09:04:02 +0000 (10:04 +0100)] 
Update Cabal submodule to Cabal-v1.22.2.0 rls tag

this submdoule updates pulls in only meta-data changes

4 years agoUpdate bytestring submodule to release tag
Herbert Valerio Riedel [Fri, 20 Mar 2015 19:37:41 +0000 (20:37 +0100)] 
Update bytestring submodule to release tag

4 years agoTry to reconstruct a changelog for TH 2.10
Herbert Valerio Riedel [Fri, 20 Mar 2015 12:33:19 +0000 (13:33 +0100)] 
Try to reconstruct a changelog for TH 2.10

[skip ci]

(cherry picked from commit 9d15af88b9b5cbf9dd4a4d072aa94540074cc4b3)

4 years agoBump ghc-prim to
Herbert Valerio Riedel [Fri, 20 Mar 2015 11:23:41 +0000 (12:23 +0100)] 
Bump ghc-prim to

This major version bump was made necessary by
f44333eae7bc7dc7b6003b75874a02445f6b633b which changed the type
signatures of prefetch primops, as well as other changes
such as 051d694fc978ad28ac3043d296cafddd3c2a7050 turning `Any` into
an abstract closed type family.

Reviewed By: ekmett

Differential Revision:

4 years agoModify test th/T10019 to wobble less
Simon Peyton Jones [Thu, 19 Mar 2015 23:17:21 +0000 (23:17 +0000)] 
Modify test th/T10019 to wobble less

The TH output contains uniques which change too much.
So I took the length of the string instead. Crude,
perhaps too crude, but it'll still show up most significant
output changes

4 years agoUpdate deepseq submodule to tag
Herbert Valerio Riedel [Fri, 20 Mar 2015 09:37:33 +0000 (10:37 +0100)] 
Update deepseq submodule to tag

This deepseq update drops the redundant ghc-prim dependency for GHC>=7.6

4 years agotestsuite: add a regression test for #10011
Austin Seipp [Thu, 19 Mar 2015 22:41:08 +0000 (17:41 -0500)] 
testsuite: add a regression test for #10011

Signed-off-by: Austin Seipp <>
4 years agoRemove unused parameter to `EvTypeableTyCon`
Iavor S. Diatchki [Thu, 19 Mar 2015 22:33:50 +0000 (15:33 -0700)] 
Remove unused parameter to `EvTypeableTyCon`

4 years agoMerge branch 'master' of git://
Iavor S. Diatchki [Thu, 19 Mar 2015 21:35:30 +0000 (14:35 -0700)] 
Merge branch 'master' of git://

4 years agolibraries: update win32 submodule
Austin Seipp [Thu, 19 Mar 2015 21:20:26 +0000 (16:20 -0500)] 
libraries: update win32 submodule

This update fixes #10165.

Signed-off-by: Austin Seipp <>
4 years agowin32/base: Remove redundant import
Austin Seipp [Thu, 19 Mar 2015 20:59:20 +0000 (15:59 -0500)] 
win32/base: Remove redundant import

This causes ./validate to trip -Werror on Windows.

Signed-off-by: Austin Seipp <>
4 years agoImprove `Typeable` solver.
Iavor S. Diatchki [Thu, 19 Mar 2015 20:40:34 +0000 (13:40 -0700)] 
Improve `Typeable` solver.

4 years agoRefactor: follow hlint suggestions in Linker.hs
Thomas Miedema [Thu, 19 Mar 2015 18:13:09 +0000 (19:13 +0100)] 
Refactor: follow hlint suggestions in Linker.hs

Reviewed By: austin

Differential Revision:

4 years agoRefactor Linker.hs: use System.Directory.findFile
Thomas Miedema [Thu, 19 Mar 2015 18:12:32 +0000 (19:12 +0100)] 
Refactor Linker.hs: use System.Directory.findFile

Use System.Directory.findFile instead of a custom implementation. Also change
FilePath concatenation with ++ by </>. Refactoring only.

Reviewed By: austin

Differential Revision:

4 years agoRemove comments and flag for GranSim
Thomas Miedema [Thu, 19 Mar 2015 18:11:09 +0000 (19:11 +0100)] 
Remove comments and flag for GranSim

The GranSim code was removed in dd56e9ab and 297b05a9 in 2009, and perhaps
other commits I couldn't find.

Reviewed By: austin

Differential Revision:

4 years agoUpdate Cabal submodule to 1.22 branch tip
Herbert Valerio Riedel [Thu, 19 Mar 2015 16:41:48 +0000 (17:41 +0100)] 
Update Cabal submodule to 1.22 branch tip

4 years agoUpdate filepath/hpc/process submodules
Herbert Valerio Riedel [Thu, 19 Mar 2015 15:44:51 +0000 (16:44 +0100)] 
Update filepath/hpc/process submodules

These updates these 3 submodules to their respective released tagged
commits. No source-code changes are involved with this update.

4 years agoRemove mention of `-unreg` in error message
Thomas Miedema [Wed, 18 Mar 2015 09:21:18 +0000 (10:21 +0100)] 
Remove mention of `-unreg` in error message

The `-unreg` flag was removed in commit dade8ab (2007), see #1008.


4 years agoComments only
Simon Peyton Jones [Mon, 19 Jan 2015 16:44:25 +0000 (16:44 +0000)] 
Comments only

4 years agoTypos in comments
Gabor Greif [Wed, 18 Mar 2015 01:25:13 +0000 (02:25 +0100)] 
Typos in comments

4 years agohpc: use System.FilePath.(</>) instead of (++)
Thomas Miedema [Tue, 17 Mar 2015 17:09:18 +0000 (18:09 +0100)] 
hpc: use System.FilePath.(</>) instead of (++)

BAD: "." ++ "/" ++ "/absolute/path" == ".//absolute/path"
GOOD: "." </> "/absolute/path" == "/absolute path"

Also replace `++ ".ext"` with `<.> "ext"`. Although it doesn't fix any
bugs in this instance, it might in some other. As a general rule it's
better not to use (++) on FilePaths.

Reviewed By: austin, hvr

Differential Revision:

GHC Trac Issues: #10138

4 years agoExpose listPackageConfigMap
Edsko de Vries [Tue, 17 Mar 2015 16:12:51 +0000 (11:12 -0500)] 
Expose listPackageConfigMap

This is useful for code that needs to search the package config map for
packages satisfying a certain condition.

Reviewed By: ezyang

Differential Revision:

4 years agoAdd release note entry for D716
Austin Seipp [Tue, 17 Mar 2015 16:07:15 +0000 (11:07 -0500)] 
Add release note entry for D716

Signed-off-by: Austin Seipp <>
4 years agoAdd more MonadZip instances
Oleg Grenrus [Tue, 17 Mar 2015 16:03:44 +0000 (11:03 -0500)] 
Add more MonadZip instances

Summary: Add MonadZip Alt and MonadFix Alt instances

Reviewers: ekmett, dfeuer, hvr, austin

Reviewed By: austin

Subscribers: thomie

Differential Revision:

GHC Trac Issues: #10107

4 years agoMove declaration of Rulebase from Rules to CoreSyn
Simon Peyton Jones [Tue, 17 Mar 2015 00:00:31 +0000 (00:00 +0000)] 
Move declaration of Rulebase from Rules to CoreSyn

This allow HscTypes to import CoreSyn rather than Rules, which makes
module loops easier to avoid.  At one point in my recent travels this
was important; I'm not sure it's so important now, but it's a good
thing anyway.

In any case CoreRule is defined in CoreSyn, so this move make sense.

4 years agoComments, white space, and small refactoring
Simon Peyton Jones [Mon, 16 Mar 2015 23:53:14 +0000 (23:53 +0000)] 
Comments, white space, and small refactoring

The only real change is a new type synonym ImpRuleEdges
No significant changes at all

4 years agoRefactor the extra-deps stuff for hs-boot
Simon Peyton Jones [Wed, 11 Mar 2015 22:58:15 +0000 (22:58 +0000)] 
Refactor the extra-deps stuff for hs-boot

See Note [Extra dependencies from .hs-boot files] in RnSource

No change in behaviour

4 years agoFix Windows testsuite driver
Thomas Miedema [Tue, 17 Mar 2015 11:08:59 +0000 (12:08 +0100)] 
Fix Windows testsuite driver

This got broken in commit 5258566.

4 years agoFix build on amd64/solaris.
Erik de Castro Lopo [Fri, 13 Mar 2015 20:38:13 +0000 (20:38 +0000)] 
Fix build on amd64/solaris.

Commit 71fcc4c096ec0 breaks the 64bit build on Solaris 11. Solaris
is a multi-lib OS so both 32bit and 64bit binaries may  be run, but
by default it compiles to 32bit so that -m64 needs to be added in
the appropriate place when compiling for 64 bits.

Patch-from: Karel Gardas <>

Reviewers: kgardas, austin

Subscribers: thomie

Differential Revision:

4 years agoDont call unsafeGlobalDynFlags if it is not set
Thomas Miedema [Mon, 16 Mar 2015 17:36:59 +0000 (18:36 +0100)] 
Dont call unsafeGlobalDynFlags if it is not set

Parsing of static and mode flags happens before any session is started,
i.e., before the first call to 'GHC.withGhc'. Therefore, to report
errors for invalid usage of these two types of flags, we can not call
any function that needs DynFlags, as there are no DynFlags available yet
(unsafeGlobalDynFlags is not set either). So we always print "on the
commandline" as the location, which is true except for Api users, which
is probably ok.

When reporting errors for invalid usage of dynamic flags we /can/ make
use of DynFlags, and we do so explicitly in

Before, we called unsafeGlobalDynFlags when an invalid (combination of)
flag(s) was given on the commandline, resulting in panics (#9963). This
regression was introduced in 1d6124de.

Also rename showSDocSimple to showSDocUnsafe, to hopefully prevent this
from happening again.

Reviewed By: austin

Differential Revision:

GHC Trac Issues: #9963

4 years agoFix testsuite driver for a profiling compiler
Thomas Miedema [Sun, 15 Mar 2015 20:06:39 +0000 (21:06 +0100)] 
Fix testsuite driver for a profiling compiler

This should have been part of commit 5258566ee5c8, to allow expansion of
'{hp2ps}' in a command string to `config.hp2ps`.

Reviewed by: austin

Differential Revision:

4 years agoTest Trac #10156
Simon Peyton Jones [Mon, 16 Mar 2015 14:54:50 +0000 (14:54 +0000)] 
Test Trac #10156

4 years agolibraries/win32: update submodule
Austin Seipp [Mon, 16 Mar 2015 06:59:16 +0000 (01:59 -0500)] 
libraries/win32: update submodule

Signed-off-by: Austin Seipp <>
4 years agoUpdate Cabal submodule to latest snapshot
Herbert Valerio Riedel [Sun, 15 Mar 2015 06:14:32 +0000 (07:14 +0100)] 
Update Cabal submodule to latest snapshot

This addresses the Cabal side of #10115 as this pulls in the following two

> Make sure to pass the package key to ghc
> Haddock: Use --package-{name|version} when available

4 years agoUpdate Haddock submodule
Herbert Valerio Riedel [Sun, 15 Mar 2015 07:36:49 +0000 (08:36 +0100)] 
Update Haddock submodule

This pulls in a cherry-picked commit adding support for
the new `--package-name` and `--package-version` flags and thus
helps addressing #10115.

4 years agoWe need to import 'cast' on Windows
Edward Z. Yang [Sat, 14 Mar 2015 08:16:44 +0000 (09:16 +0100)] 
We need to import 'cast' on Windows

This fixes breakage introduced via

Signed-off-by: Edward Z. Yang <>
Reviewed By: hvr

Differential Revision:

4 years agoLink temporary shared objects with `--no-as-needed`
Peter Trommler [Sat, 14 Mar 2015 08:05:41 +0000 (09:05 +0100)] 
Link temporary shared objects with `--no-as-needed`

Some ELF link editors default to `--as-needed` and record only
those libraries in DT_NEEDED tags that are needed to resolve
undefined symbols in the shared object to be created.

In Template Haskell we rely on all symbols that were defined
in modules compiled so far to be available in the current
temporary shared object. To prevent the link editor from
dropping the DT_NEEDED tag for the previously linked temporary
shared object we need to override the link editors default and
specify `--no-as-needed` on the command line. This is for GNU ld
and GOLD ld.

This addresses #10110

TODO: regression test

Reviewed By: hvr

Differential Revision:

4 years agoMove the function strip_quotes to
Thomas Miedema [Fri, 13 Mar 2015 20:07:15 +0000 (21:07 +0100)] 
Move the function strip_quotes to

If one runs the testsuite with a profiling compiler, during the import
of ``, `` sets the global variable `gs_working`. To
do so, it executes a few statements which require the function
`strip_quotes` to be in scope. But that function only gets defined at
the very end of

This patch moves the definition of `strip_quotes` to, which
is imported at the very top of This unbreaks the nightly

Reviewed By: austin

Differential Revision:

4 years agoUse the gold linker for linux/ARM and android/ARM targets.
Erik de Castro Lopo [Thu, 12 Mar 2015 03:36:50 +0000 (14:36 +1100)] 
Use the gold linker for linux/ARM and android/ARM targets.

Fixes #8976 and #9873 by making use of the Binutils
linker explicit whenever the target is linux/ARM or android/ARM.
This does not affect iOS where Apple provides its own linker.

In order to achieve this, we need to add `-fuse-ld=gold` to
the SettingsCCompilerLinkFlags setting and set
SettingsLdCommand to `` (or `${target}` when
cross-compiling). In addition, simplifying the use of

This patch was tested by ensuring that the following worked
as expected:

  * Native builds on linux/x86_64 (nothing changed).
  * Native builds on linux/arm (and uses the gold linker).
  * Linux to linux/arm cross compiles (and uses the cross
    gold linker).

Contributions by Ben Gamari, Joachim Breitner and Reid Barton.

Reviewers: nomeata, bgamari, austin, rwbarton

Subscribers: thomie

Differential Revision:

GHC Trac Issues: #8976 #9873

4 years agotestsuite: use same flags for ghci way and scripts
Thomas Miedema [Sun, 8 Mar 2015 15:56:41 +0000 (16:56 +0100)] 
testsuite: use same flags for ghci way and scripts

The ghci script tests were using different RTS flags from the normal
ghci tests. This commit makes them use the same flags.

Reviewers: austin

Differential Revision:

4 years agoUpdate submodule hpc (includes fix for #9619)
Thomas Miedema [Thu, 5 Mar 2015 21:06:11 +0000 (22:06 +0100)] 
Update submodule hpc (includes fix for #9619)

Reviewers: austin

Differential Revision:

4 years agoCleanup test framework string formatting
Thomas Miedema [Fri, 6 Mar 2015 20:55:36 +0000 (21:55 +0100)] 
Cleanup test framework string formatting

* Use format strings instead of string concatenation.
* Wrap `config.compiler`, `config.hpc` etc. in quotes in `mk/`, so we
  don't have to in .T scripts and driver/

Update hpc submodule (test cleanup)

Reviewers: austin

Differential Revision:

4 years agoRename ty{Con,peRep}Hash to ty{Con,peRep}Fingerprint
Herbert Valerio Riedel [Wed, 11 Mar 2015 15:36:09 +0000 (16:36 +0100)] 
Rename ty{Con,peRep}Hash to ty{Con,peRep}Fingerprint

This is a follow-up change to 56e0ac98c3a439b8757a2e886db259270bdc85f0

See also discussion at

Reviewed By: simonpj

Differential Revision:

4 years agoUpdate filepath submodule to filepath-1.4 snapshot
Herbert Valerio Riedel [Wed, 11 Mar 2015 13:20:51 +0000 (14:20 +0100)] 
Update filepath submodule to filepath-1.4 snapshot

This also needs to update a couple of other submodules
to update the upper bound on filepath to allow this major
version bump to

4 years agoUpdate Cabal submodule to latest 1.22 snapshot
Edward Z. Yang [Wed, 11 Mar 2015 13:53:17 +0000 (14:53 +0100)] 
Update Cabal submodule to latest 1.22 snapshot

This changes the library file name format

NOTE: This patch originally updated to Cabal HEAD, but was reduced to
      update to Cabal 1.22 HEAD by hvr as this is needed in order to
      update the filepath submodule to version 1.4.0, and subsequently
      to be cherry-picked into the ghc-7.10 branch

Signed-off-by: Edward Z. Yang <>
Reviewed By: austin

Differential Revision:

4 years agoRefactor testsuite with normalise_version()
Edward Z. Yang [Tue, 10 Mar 2015 21:10:26 +0000 (14:10 -0700)] 
Refactor testsuite with normalise_version()

This function generalizes the normaliseBytestringPackage and other similar
one-off functions into normalise_version() with takes a package name to
normalize against.  This JUST manages package versions; we also could use
a normalize for keys.

In the process, I modified all the normalization functions to be accumulative;
I don't think this makes a difference for current test cases but I think it
makes things nicer.

Signed-off-by: Edward Z. Yang <>
Reviewers: austin

Subscribers: thomie

Differential Revision:

4 years agoDocumentation for PackageArg/ModRenaming/PackageFlag
Edward Z. Yang [Mon, 9 Mar 2015 20:52:40 +0000 (13:52 -0700)] 
Documentation for PackageArg/ModRenaming/PackageFlag


Signed-off-by: Edward Z. Yang <>
Test Plan: validate

Reviewers: austin, bgamari

Subscribers: thomie

Differential Revision:

4 years agoUpdate directory submodule to latest 1.2.2 snapshot
Herbert Valerio Riedel [Tue, 10 Mar 2015 14:54:40 +0000 (15:54 +0100)] 
Update directory submodule to latest 1.2.2 snapshot

4 years agoSync up terminfo/haskeline submodule with ghc-7.10
Herbert Valerio Riedel [Tue, 10 Mar 2015 09:42:22 +0000 (10:42 +0100)] 
Sync up terminfo/haskeline submodule with ghc-7.10

The GHC 7.10 tree was pointing to slightly newer commits

4 years agoUpdate array submodule (min ver bump to
Herbert Valerio Riedel [Tue, 10 Mar 2015 09:07:07 +0000 (10:07 +0100)] 
Update array submodule (min ver bump to

4 years agoUpdate submodule to Cabal release
Herbert Valerio Riedel [Tue, 10 Mar 2015 08:11:45 +0000 (09:11 +0100)] 
Update submodule to Cabal release

4 years agoghc-prim : Hide 64 bit primops when the word size is 32 bits (fixes #9886).
Erik de Castro Lopo [Thu, 5 Mar 2015 08:39:16 +0000 (19:39 +1100)] 
ghc-prim : Hide 64 bit primops when the word size is 32 bits (fixes #9886).

These primops were failing to compile on PowerPC (32 bit). There is also
currently no way to call into these primops from Haskell code. Currently,
the *only* way to call any of these C hs_atomic_* functions is via the
fetch*IntArray primops which are only defined for Int values and Int is
always the native word size.

When these functions can be called (and tested) from Haskell code, then
it will be worth while implementing them.

Test Plan:
    Compile and run on x86, x86_64, powerpc and arm:

Reviewers: tibbe, austin

Subscribers: thomie

Differential Revision:

GHC Trac Issues: #9886