5 years agosync-all: infer remotepath from .gitmodules file
Thomas Miedema [Tue, 17 Jun 2014 15:27:04 +0000 (17:27 +0200)] 
sync-all: infer remotepath from .gitmodules file

After this commit, running `sync-all remote set-url` works properly for the
haddock package:

    command: ./sync-all -r git:// remote set-url origin
    before: git://
    after: git://

By doing the `remotepath` lookup before the `$is_github_repo` check,
running `sync-all remote set-url` now also works properly for submodule
repos on github:

    command: ./sync-all -r git:// remote set-url origin
    before: git://
    after: git://

* Relevant prior commits:
4f4357 "Make `sync-all remote set-url` use normalized `/packages/` urls"
34b072 "Convert haddock into a proper submodule (re #8545)"
974a97 "sync-all: Apply submodule url rewriting also to stuff in util/"

5 years agosync-all: set and check variable $repo_is_submodule
Thomas Miedema [Sun, 22 Jun 2014 16:12:06 +0000 (18:12 +0200)] 
sync-all: set and check variable $repo_is_submodule

Not only does this make the code easier to read, it also fixes a bug.

Starting with commits 691c8a and ccce9f, certain subcommands should
behave differently for submodules. This was done by checking, for each
such subcommand:

    $remotepath eq "-"

This commit corrects that to the check:

    $$line{"remotepath"} eq "-".

Because when we have a clone of a local mirror (checked_out_tree=1),
remotepath actually gets set to $$line{"localpath"}.

5 years agosync-all: make --no-dph work for all subcommands
Thomas Miedema [Tue, 17 Jun 2014 17:21:37 +0000 (19:21 +0200)] 
sync-all: make --no-dph work for all subcommands

5 years agosync-all: die for real when required repo is missing
Thomas Miedema [Tue, 17 Jun 2014 16:25:33 +0000 (18:25 +0200)] 
sync-all: die for real when required repo is missing

Since commit 0e17d4, the default "tag" is "-", not "". It is never

5 years agosync-all: delete dead code calling gitInitSubmodules
Thomas Miedema [Wed, 11 Jun 2014 15:12:35 +0000 (17:12 +0200)] 
sync-all: delete dead code calling gitInitSubmodules

When running './sync-all get', 'git submodule init' has to be (and is
always) executed, since .gitmodules might contain new submodules (see
commit c3db2b). As a result, after cloning the ghc repo and running the
initial './sync-all get', .git/config will always contain some submodule
sections. Therefore it is not needed to check for this on every
subsequent get or pull, and this code can be deleted.

5 years agosync-all: cleanup
Thomas Miedema [Wed, 11 Jun 2014 13:36:45 +0000 (15:36 +0200)] 
sync-all: cleanup

+ Remove dead code from the DarcsAges
+ Tweak `git config` flags
    * remove --local, it is not a valid flag
    * --get was used in some places, not in others
+ Simplify reading current branch
+ Delete duplicated code in help

5 years agoarclint: disable Bad Charset lint rule
Austin Seipp [Mon, 23 Jun 2014 09:02:44 +0000 (04:02 -0500)] 
arclint: disable Bad Charset lint rule

Signed-off-by: Austin Seipp <>
5 years agoFix up b84748121e777d
Austin Seipp [Mon, 23 Jun 2014 06:31:15 +0000 (01:31 -0500)] 
Fix up b84748121e777d

I forgot to amend this to my last commit.

Signed-off-by: Austin Seipp <>
5 years agoFix #9047
Austin Seipp [Mon, 23 Jun 2014 05:07:10 +0000 (00:07 -0500)] 
Fix #9047

Signed-off-by: Austin Seipp <>
5 years agoSimplify package dump for -v4
Edward Z. Yang [Sun, 22 Jun 2014 15:42:56 +0000 (08:42 -0700)] 
Simplify package dump for -v4

Previously, on -v4  and greater, we dumped out the entire package
database, including lots of metadata that GHC doesn't really care about,
and is guaranteed to correspond to the equivalent in the local/global
package databases on disk.  So, to make this output more useful, on -v4
we instead just print package IDs, and the exposed and trusted flags
(E and T, which can be tweaked at runtime).

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

Reviewers: simonpj

Subscribers: simonmar, relrod

Differential Revision:

5 years agoAdd fake entries into the global kind environment for pattern synonyms.
Dr. ERDI Gergo [Sat, 21 Jun 2014 14:37:50 +0000 (22:37 +0800)] 
Add fake entries into the global kind environment for pattern synonyms.

This is needed to give meaningful error messages (instead of internal
panics) when a program tries to lift a pattern synonym into a kind.
(fixes T9161)

5 years agoUpdate documentation to follow 2dc3b476aff28
Edward Z. Yang [Thu, 19 Jun 2014 16:25:59 +0000 (09:25 -0700)] 
Update documentation to follow 2dc3b476aff28

Signed-off-by: Edward Z. Yang <>
5 years agoMore fixes and updates to implementation document
Edward Z. Yang [Fri, 20 Jun 2014 16:19:40 +0000 (17:19 +0100)] 
More fixes and updates to implementation document

Signed-off-by: Edward Z. Yang <>
5 years agoReject forall types in constraints in signatures
Simon Peyton Jones [Thu, 19 Jun 2014 16:26:11 +0000 (17:26 +0100)] 
Reject forall types in constraints in signatures

Fixes Trac #9196.  Thanks to archblob for an initial stab at this.
In the end I fixed it in the kind checker rather than the subsequent
validity check, (a) so that the error messages look more uniform,
and (b) so that I did not need to meddle with isPredTy.

5 years agoComment typo
Simon Peyton Jones [Thu, 19 Jun 2014 13:11:07 +0000 (14:11 +0100)] 
Comment typo

5 years agoMake splitStrProdDmd (and similarly Use) more robust
Simon Peyton Jones [Thu, 19 Jun 2014 08:46:24 +0000 (09:46 +0100)] 
Make splitStrProdDmd (and similarly Use) more robust

The issue here is avoiding a GHC crash when a program uses
unsafeCoerce is a dangerous (or even outright-wrong) way.

See Trac #9208

5 years agoImprove documentation of defaulting rules with OverloadedStrings
Simon Peyton Jones [Thu, 19 Jun 2014 08:44:30 +0000 (09:44 +0100)] 
Improve documentation of defaulting rules with OverloadedStrings

See #9206

5 years agoAdd a new section to the manual about hiding things that a module doesn't export
Simon Peyton Jones [Thu, 19 Jun 2014 08:24:50 +0000 (09:24 +0100)] 
Add a new section to the manual about hiding things that a module doesn't export

See Trac #9216

5 years agoTidy up the printing of single-predicate contexts
Simon Peyton Jones [Thu, 19 Jun 2014 08:01:51 +0000 (09:01 +0100)] 
Tidy up the printing of single-predicate contexts

This covers things like
   Eq a => blah   and   (?x::Int) => blah
where there is just one predicate. Previously we used an ad-hoc
test to decide whether to parenthesise it, but acutally there is
a much simpler solution: just use the existing precedence mechamism.

This applies both to Type and HsType.

5 years agoA bit more tracing of functional dependencies
Simon Peyton Jones [Wed, 18 Jun 2014 10:59:30 +0000 (11:59 +0100)] 
A bit more tracing of functional dependencies

5 years agoTypos in comments
Gabor Greif [Thu, 19 Jun 2014 21:19:54 +0000 (23:19 +0200)] 
Typos in comments

5 years agoFinish the rest of the writeup.
Edward Z. Yang [Thu, 19 Jun 2014 14:58:42 +0000 (15:58 +0100)] 
Finish the rest of the writeup.

Signed-off-by: Edward Z. Yang <>
5 years agoTypos in comments
Gabor Greif [Wed, 18 Jun 2014 18:39:38 +0000 (20:39 +0200)] 
Typos in comments

5 years agoTypo
Jose Pedro Magalhaes [Thu, 19 Jun 2014 09:51:22 +0000 (10:51 +0100)] 

5 years agohaddock-library: allow 7.4.x building
Mateusz Kowalczyk [Wed, 18 Jun 2014 23:31:39 +0000 (01:31 +0200)] 
haddock-library: allow 7.4.x building

Updates submodule

5 years agoIn progress Backpack implementation docs.
Edward Z. Yang [Wed, 18 Jun 2014 21:59:23 +0000 (22:59 +0100)] 
In progress Backpack implementation docs.

Signed-off-by: Edward Z. Yang <>
5 years agoOnly comments: add notes explaining the various oddities of the `Typeable` implement...
Iavor S. Diatchki [Wed, 18 Jun 2014 17:21:06 +0000 (10:21 -0700)] 
Only comments:  add notes explaining the various oddities of the `Typeable` implementation for type-level literals.

5 years agoHaddock: haddock-library release and Travis stuff
Mateusz Kowalczyk [Wed, 18 Jun 2014 07:05:50 +0000 (09:05 +0200)] 
Haddock: haddock-library release and Travis stuff

Updates submodule.

5 years agoaccept T9181 output
Simon Marlow [Tue, 17 Jun 2014 11:41:15 +0000 (12:41 +0100)] 
accept T9181 output

Not sure if my patch changed this, but it looks reasonable.

5 years agoOptimise the Typeable instance for type app a bit, and add a perf test
Simon Marlow [Tue, 17 Jun 2014 10:47:40 +0000 (11:47 +0100)] 
Optimise the Typeable instance for type app a bit, and add a perf test

Test Plan: validate

Reviewers: simonpj, austin

Subscribers: simonmar, relrod

Differential Revision:

5 years agoRedo instance to be more efficient (see #8778, #9203)
Iavor S. Diatchki [Mon, 16 Jun 2014 22:58:49 +0000 (15:58 -0700)] 
Redo instance to be more efficient (see #8778, #9203)

5 years agoUpdate the incorrect comment on when function was introduced.
Iavor S. Diatchki [Mon, 16 Jun 2014 22:56:19 +0000 (15:56 -0700)] 
Update the incorrect comment on when function was introduced.

5 years agoFix recomputation of TypeRep in the instance for Typeable (s a) (#9203)
Simon Marlow [Fri, 13 Jun 2014 15:57:16 +0000 (16:57 +0100)] 
Fix recomputation of TypeRep in the instance for Typeable (s a) (#9203)

Every time we called typeRep on a type application, we were
recomputing the TypeRep.  This showed up in a benchmark I had: #9203.

Test Plan: Benchmark from #9203.

Reviewers: simonpj, austin

Subscribers: simonmar, relrod

Differential Revision:

5 years agoImplement `Typeable` support for type-level literals (#8778).
Iavor S. Diatchki [Sat, 14 Jun 2014 21:08:23 +0000 (14:08 -0700)] 
Implement `Typeable` support for type-level literals (#8778).

5 years agoFixes #95 :edit command should jump to the last error
Lorenzo Tabacchini [Sun, 8 Jun 2014 08:54:39 +0000 (10:54 +0200)] 
Fixes #95 :edit command should jump to the last error

5 years agoRemove forgotten redundant import
Simon Peyton Jones [Thu, 12 Jun 2014 21:48:09 +0000 (22:48 +0100)] 
Remove forgotten redundant import

5 years agoBytes allocated by haddock.base has crept up (again)
Simon Peyton Jones [Thu, 12 Jun 2014 16:23:25 +0000 (17:23 +0100)] 
Bytes allocated by haddock.base has crept up (again)

I don't know why, and I don't like the steady increase.
But I don't think my changes here are the cause.

5 years agoFix elemLocalRdrEnv (Trac #9160)
Simon Peyton Jones [Thu, 12 Jun 2014 15:42:37 +0000 (16:42 +0100)] 
Fix elemLocalRdrEnv (Trac #9160)

This was pretty obscure.  elemLocalRdrEnv was utterly wrong (replied
False when it should reply True) when given an Exact Name. That
doesn't happen often, but it does happen in the result of a TH splice.
The result was that an associated type didn't get a type variable that
lined up with its parent class (elemLocalRdrEnv is used in
RnTypes.bindHsTyVars), and that messed up the singletons package.

I've made a completely different test case to show up the bug:

I also refactored RdrName.LocalRdrEnv to be a record with named
fields, which makes the code more robust and easy to understand.

5 years agoLine up kind and type variables correctly when desugaring TH brackets
Simon Peyton Jones [Thu, 12 Jun 2014 15:36:59 +0000 (16:36 +0100)] 
Line up kind and type variables correctly when desugaring TH brackets

This bug was causing Trac #9199

5 years agoBetter debug printing
Simon Peyton Jones [Thu, 12 Jun 2014 15:35:37 +0000 (16:35 +0100)] 
Better debug printing

5 years agoImprove IfaceSyn a bit further
Simon Peyton Jones [Thu, 12 Jun 2014 10:50:34 +0000 (11:50 +0100)] 
Improve IfaceSyn a bit further

This patch has three main bits:

* The most substantial change is that IfaceConDecl no longer
  records its universal type variables, because they are
  always the same as those of the parent TyCon.  A bit less
  fuss and clutter.

* Add a synonym for IfTopBndr = OccName, and explain why it's an
  OccName not a FastString

* Make the ifMinDef field be a (BooleanFormula IfLclName) rather
  than (BooleanFormula OccName).  These really are occurrences (not
  binders), and should be treated like other occurences.

The first and third change the format of interface files, so
you'll need to recompile.

5 years agoCatch two typos
Gabor Greif [Wed, 11 Jun 2014 22:57:26 +0000 (00:57 +0200)] 
Catch two typos

5 years agoFix Windows build (wibble to fix for Trac #4934)
Simon Peyton Jones [Wed, 11 Jun 2014 19:54:58 +0000 (20:54 +0100)] 
Fix Windows build (wibble to fix for Trac #4934)

5 years agoFix a serious, but rare, strictness analyser bug (Trac #9128)
Simon Peyton Jones [Wed, 11 Jun 2014 18:53:06 +0000 (19:53 +0100)] 
Fix a serious, but rare, strictness analyser bug (Trac #9128)

In a special case for trivial RHSs (see DmdAnal.unpackTrivial),
I'd forgotten to include a demand for the RHS itself.
See Note [Remember to demand the function itself].

Thanks to David Terei for guiding me to the bug,
at PLDI in Edinburgh.

5 years agoSimplify variable naming in tcDataKindSig
Simon Peyton Jones [Wed, 11 Jun 2014 18:49:50 +0000 (19:49 +0100)] 
Simplify variable naming in tcDataKindSig

Now that we are very consistent about tidying when converting
to IfaceSyn, we don't need to worry about accidental capture
of the "extra" type variables in tcDataKindSig.  (Previously
we gave them weird names like $a.)

However, it is nicer for the user if we don't gratuitously
re-use an in-scope name, so we take care not to do that

5 years agoFix tyConToIfaceDecl (Trac #9190)
Simon Peyton Jones [Wed, 11 Jun 2014 14:09:55 +0000 (15:09 +0100)] 
Fix tyConToIfaceDecl (Trac #9190)

There are three bugs here, one serious

 * We were failing to tidy the type arguments in an IfTyConParent
   This is what was causing Trac #9190.

 * toIfaceTcArgs is careful to suppress kind arguments, but there
   was a clone, tidyToIfaceTcArgs in IfaceSyn which didn't.
   Now the latter goes via the former.

 * When pretty-printing a IfaceDecl for an algebraic data type, and
   doing so in Haskell-98 syntax, we were silently assuming that the
   universal type variables of the TyCon and the DataCon were the
   same. But that has not been true for some time. Result: a very
   confusing display.

   Solution: during the conversion to IfaceSyn, take the opportunity
   to make the universal type variables line up exactly.  This is very
   easy to do, makes the pretty-printing easy, and leaves open the future
   possiblity of not serialising the universal type variables of the
   data constructor.

5 years agoWhite space only
Simon Peyton Jones [Tue, 10 Jun 2014 16:57:49 +0000 (17:57 +0100)] 
White space only

5 years agoComments only explaining the imports for GHC.Integer, GHC.Tuple
Simon Peyton Jones [Tue, 10 Jun 2014 16:57:37 +0000 (17:57 +0100)] 
Comments only explaining the imports for GHC.Integer, GHC.Tuple

See Note [Depend on GHC.Integer]
    Note [Depend on GHC.Tuple]

This came up when Joachim got an unexpected missing-dependency
error when fiddling with Data.Coerce.

5 years agoImprove error message in Trac #8883
Simon Peyton Jones [Tue, 10 Jun 2014 16:50:22 +0000 (17:50 +0100)] 
Improve error message in Trac #8883

The improvement is to report the inferred type in the error message,
as suggested in email on ghc-deves (10 Jun 14).

5 years agoSome typos in comments
Gabor Greif [Tue, 10 Jun 2014 23:37:01 +0000 (01:37 +0200)] 
Some typos in comments

5 years agoTypo in variable name, no functional change
Gabor Greif [Tue, 10 Jun 2014 23:00:58 +0000 (01:00 +0200)] 
Typo in variable name, no functional change

5 years agoTest #9111.
Richard Eisenberg [Wed, 11 Jun 2014 12:34:58 +0000 (08:34 -0400)] 
Test #9111.

5 years agoTest #9085.
Richard Eisenberg [Wed, 11 Jun 2014 12:29:27 +0000 (08:29 -0400)] 
Test #9085.

5 years agoFix #9111.
Richard Eisenberg [Tue, 10 Jun 2014 21:44:32 +0000 (17:44 -0400)] 
Fix #9111.

Data.Typeable.Internal should now derive instances for all types
defined in modules beneath it.

Still to do: Typeable instances for type literals, but that's a very
separate matter.

5 years agoTest #9097.
Richard Eisenberg [Tue, 10 Jun 2014 20:06:00 +0000 (16:06 -0400)] 
Test #9097.

5 years agoFix #9062.
Richard Eisenberg [Tue, 10 Jun 2014 19:33:18 +0000 (15:33 -0400)] 
Fix #9062.

Removed (pprEqPred (coercionKind co)) in favor of
(pprType (coercionType co)).

Also had to make "~R#" a *symbolic* identifier and BuiltInSyntax
to squelch prefix notation and module prefixes in output. These
changes are both sensible independent of #9062.

5 years agoFix #9085.
Richard Eisenberg [Tue, 10 Jun 2014 19:25:36 +0000 (15:25 -0400)] 
Fix #9085.

Inaccessible equations in a closed type family now leads to a
warning, not an error. This echoes what happens at the term level.

5 years agoFix #9097.
Richard Eisenberg [Tue, 10 Jun 2014 19:21:47 +0000 (15:21 -0400)] 
Fix #9097.

`Any` is now an abstract (that is, no equations) closed type family.

5 years agoRefine deprecation warnings in template-haskell.
Richard Eisenberg [Tue, 10 Jun 2014 18:49:16 +0000 (14:49 -0400)] 
Refine deprecation warnings in template-haskell.

5 years agoAdd comments about instances of type-level (==).
Richard Eisenberg [Tue, 10 Jun 2014 18:41:55 +0000 (14:41 -0400)] 
Add comments about instances of type-level (==).

5 years agoClarify error message. See #9167.
Richard Eisenberg [Tue, 10 Jun 2014 18:31:04 +0000 (14:31 -0400)] 
Clarify error message. See #9167.

5 years agoMake FunPtr's role be phantom; add comments.
Richard Eisenberg [Tue, 10 Jun 2014 17:38:06 +0000 (13:38 -0400)] 
Make FunPtr's role be phantom; add comments.

This change also updates castFunPtr to make it free at runtime.
This fixes #9163.

5 years agoMake better use of the x86 addressing mode
Johan Tibell [Sat, 7 Jun 2014 13:03:29 +0000 (15:03 +0200)] 
Make better use of the x86 addressing mode

We now emit

    movq %rdi,16(%r14,%rsi,8)

instead of

    leaq 16(%r14),%rax
    movq %rdi,(%rax,%rsi,8)

This helps e.g. byte array indexing.

5 years agoForgot to amend before pushing...
Joachim Breitner [Tue, 10 Jun 2014 15:18:19 +0000 (17:18 +0200)] 
Forgot to amend before pushing...

5 years agoFire "map/coerce" only in phase 1
Joachim Breitner [Tue, 10 Jun 2014 14:13:17 +0000 (16:13 +0200)] 
Fire "map/coerce" only in phase 1

I just noticed a lot of warnings

Rules.findBest: rule overlap (Rule 1 wins)
    Rule 1: "map"
    Rule 2: "map/coerce"

which can easily be avoided by acitivating map/coerce only from phase 1

5 years agoImprove the API doc description of the SmallArray primitive types
Duncan Coutts [Tue, 10 Jun 2014 12:50:59 +0000 (13:50 +0100)] 
Improve the API doc description of the SmallArray primitive types

Say how it differs from Array in terms of size and performance.
These are primitives so it's also ok to talk a bit about implementation
details like card tables.

5 years agoMake Ptr's parameter phantom
Joachim Breitner [Mon, 9 Jun 2014 18:55:22 +0000 (20:55 +0200)] 
Make Ptr's parameter phantom

and implement castPtr with coerce, which gives
    12% less allocation in reverse-complem
    7.3% less allocation in fasta.
    Binary sizes fell 0.1%.
as reported and discussed in #9163.

5 years agoRevert "Make Ptr's parameter phantom"
Joachim Breitner [Mon, 9 Jun 2014 20:58:03 +0000 (22:58 +0200)] 
Revert "Make Ptr's parameter phantom"

This reverts commit 1946922c61df427e59f8a00572fd4dd6501abd98, as it
trips the build system over, and I don't see why.

5 years agoUpdate test results with new orphan instance warning
Joachim Breitner [Mon, 9 Jun 2014 19:03:32 +0000 (21:03 +0200)] 
Update test results with new orphan instance warning

It seems that the patch in #9178 was not fully validated.

5 years agoMake Ptr's parameter phantom
Joachim Breitner [Mon, 9 Jun 2014 18:55:22 +0000 (20:55 +0200)] 
Make Ptr's parameter phantom

and implement castPtr with coerce, which gives
    12% less allocation in reverse-complem
    7.3% less allocation in fasta.
    Binary sizes fell 0.1%.
as reported and discussed in #9163.

5 years agoAdd .arclint file
Austin Seipp [Mon, 9 Jun 2014 13:29:27 +0000 (08:29 -0500)] 
Add .arclint file

Signed-off-by: Austin Seipp <>
5 years agoShip xhtml, terminfo, haskeline (#8919)
Jens Petersen [Mon, 9 Jun 2014 13:19:08 +0000 (08:19 -0500)] 
Ship xhtml, terminfo, haskeline (#8919)

Signed-off-by: Austin Seipp <>
5 years agoBetter warning message for orphan instances (Ticket #9178)
Dr. Heinrich Hördegen [Fri, 6 Jun 2014 17:11:27 +0000 (19:11 +0200)] 
Better warning message for orphan instances (Ticket #9178)

Including a test case.

5 years agoSuggest -fprint-explicit-kinds when only kind variables are ambiguous
Simon Peyton Jones [Mon, 9 Jun 2014 13:07:54 +0000 (14:07 +0100)] 
Suggest -fprint-explicit-kinds when only kind variables are ambiguous

This was triggered by looking at Trac #9171. See
Note [Suggest -fprint-explicit-kinds] in TcErrors

5 years agoDocument explicit import/export of data constructors (Trac #8753)
Simon Peyton Jones [Mon, 9 Jun 2014 13:01:18 +0000 (14:01 +0100)] 
Document explicit import/export of data constructors (Trac #8753)

I also added sub-sections to the pattern synonym documentation

5 years agoDocument -fwarn-inline-rule-shadowing (Trac #9166)
Simon Peyton Jones [Mon, 9 Jun 2014 12:59:42 +0000 (13:59 +0100)] 
Document -fwarn-inline-rule-shadowing (Trac #9166)

5 years agoImprove documentation for -fwarn-unused-binds
Simon Peyton Jones [Mon, 9 Jun 2014 12:58:23 +0000 (13:58 +0100)] 
Improve documentation for -fwarn-unused-binds

5 years agoCheck that an associated type mentions at least one type variable from the class
Simon Peyton Jones [Mon, 9 Jun 2014 12:28:51 +0000 (13:28 +0100)] 
Check that an associated type mentions at least one type variable from the class

Fixes Trac #9167

5 years agoDon't use showPass in the backend (#8973)
Simon Marlow [Sun, 8 Jun 2014 10:17:57 +0000 (11:17 +0100)] 
Don't use showPass in the backend (#8973)

5 years agoRemove unused --run-cps/--run-cpsz options
Simon Marlow [Sun, 8 Jun 2014 09:24:25 +0000 (10:24 +0100)] 
Remove unused --run-cps/--run-cpsz options

5 years agoRaise exceptions when blocked in bad FDs (fixes Trac #4934)
Sergei Trofimovich [Fri, 23 May 2014 20:58:06 +0000 (23:58 +0300)] 
Raise exceptions when blocked in bad FDs (fixes Trac #4934)

Before the patch any call to 'select()' with 'bad_fd' led to:
- unblocking of all threads
- hiding exception for 'threadWaitRead bad_fd'

The patch fixes both cases in this way:
after 'select()' failure we iterate over each blocked descriptor
and poll individually to see it's actual status, which is:
- READY (move to run queue)
- BLOCKED (leave in blocked queue)
- INVALID (send an IOErrror exception)

Signed-off-by: Sergei Trofimovich <>
5 years agoFix obscure problem with using the system linker (#8935)
Simon Marlow [Sun, 8 Jun 2014 08:46:20 +0000 (09:46 +0100)] 
Fix obscure problem with using the system linker (#8935)

See Note [RTLD_LOCAL] for a summary of the problem and solution, and

5 years agoPretty-print built in synonym families in interfaces
Joachim Breitner [Sat, 7 Jun 2014 11:18:55 +0000 (13:18 +0200)] 
Pretty-print built in synonym families in interfaces

This closes #9181.

5 years agoTest case for #9181 (:browse GHC.TypeLits panic)
Joachim Breitner [Sat, 7 Jun 2014 08:09:40 +0000 (10:09 +0200)] 
Test case for #9181 (:browse GHC.TypeLits panic)

5 years agos/-hi-diffs/-ddump-hi-diffs/ in docs (#9179)
Joachim Breitner [Sat, 7 Jun 2014 07:57:32 +0000 (09:57 +0200)] 
s/-hi-diffs/-ddump-hi-diffs/ in docs (#9179)

5 years agosupress warning of bang wildcard pattern-binding (i.e. let !_ = rhs). This fixes...
Guido Zayas [Fri, 6 Jun 2014 16:34:14 +0000 (18:34 +0200)] 
supress warning of bang wildcard pattern-binding (i.e. let !_ = rhs). This fixes #9127

5 years agoFix discarding of unreachable code in the register allocator (#9155)
Simon Marlow [Fri, 6 Jun 2014 08:52:13 +0000 (09:52 +0100)] 
Fix discarding of unreachable code in the register allocator (#9155)

A previous fix to this was wrong: f5879acd018494b84233f26fba828ce376d0f81d
and left some unreachable code behind.  So rather than try to be clever and
do this at the same time as the strongly-connected-component analysis, I'm
doing a separate reachability pass first.

5 years agoTest case: GHCi uses UnicodeSyntax if the loaded file uses it.
Joachim Breitner [Fri, 6 Jun 2014 16:42:34 +0000 (18:42 +0200)] 
Test case: GHCi uses UnicodeSyntax if the loaded file uses it.

Its marked as broken, as this does not work yet, but we are calling it a
day here soon, so I want this to be recorded (#8959).

5 years agoOnly use UnicodeSytanx pretty printing if the locale supports it
Joachim Breitner [Fri, 6 Jun 2014 16:07:29 +0000 (18:07 +0200)] 
Only use UnicodeSytanx pretty printing if the locale supports it

using the same check as for unicode quotes.

5 years agoUse UnicodeSyntax when printing
Joachim Breitner [Fri, 6 Jun 2014 13:00:52 +0000 (15:00 +0200)] 
Use UnicodeSyntax when printing

When printing Haskell source, and UnicodeSyntax is enabled, use the
unicode sytax characters (#8959).

5 years agoUpdate mod73 test output
Joachim Breitner [Fri, 6 Jun 2014 13:03:36 +0000 (15:03 +0200)] 
Update mod73 test output

to what I observe on travis and on my validate machine, even though my
local tree produces the previous output.

5 years agoAdded testcase for #9069
Sjoerd Visscher [Fri, 6 Jun 2014 13:26:20 +0000 (15:26 +0200)] 
Added testcase for #9069

5 years agoMake DeriveTraversable imply DeriveFunctor/Foldable
Sjoerd Visscher [Fri, 6 Jun 2014 13:24:41 +0000 (15:24 +0200)] 
Make DeriveTraversable imply DeriveFunctor/Foldable

Implements #9069

5 years agoMerge branch 'master' of git://
Sjoerd Visscher [Fri, 6 Jun 2014 12:31:51 +0000 (14:31 +0200)] 
Merge branch 'master' of git://


5 years agoAdded more option implication documentation.
Sjoerd Visscher [Fri, 6 Jun 2014 12:23:59 +0000 (14:23 +0200)] 
Added more option implication documentation.

5 years agoMake the matcher and wrapper Ids in PatSyn into LocalIds, not GlobalIds
Simon Peyton Jones [Fri, 6 Jun 2014 10:39:41 +0000 (11:39 +0100)] 
Make the matcher and wrapper Ids in PatSyn into LocalIds, not GlobalIds

This was a serious bug, exposed by Trac #9175.  The matcher and wrapper
must be LocalIds, like record selectors and dictionary functions, for
the reasons now documented in Note [Exported LocalIds] in Id.lhs

In fixing this I found
 - PatSyn should have an Id inside it (apart from the wrapper and matcher)
   It should be a Name.  Hence psId --> psName, with knock-on consequences

 - Tidying of PatSyns in TidyPgm was wrong

 - The keep-alive set in Desugar.deSugar (now) doesn't need pattern synonyms
   in it

I also cleaned up the interface to PatSyn a little, so there's a tiny knock-on
effect in Haddock; hence the haddock submodule update.

It's very hard to make a test for this bug, so I haven't.

5 years agoPrevent line wrapping after the dash of an option.
Sjoerd Visscher [Fri, 6 Jun 2014 11:51:40 +0000 (13:51 +0200)] 
Prevent line wrapping after the dash of an option.

5 years agoSorted the language options list alphabetically, and added missing options.
Sjoerd Visscher [Fri, 6 Jun 2014 11:27:11 +0000 (13:27 +0200)] 
Sorted the language options list alphabetically, and added missing options.

5 years agoAdded link ends to role documentation.
Sjoerd Visscher [Fri, 6 Jun 2014 11:25:43 +0000 (13:25 +0200)] 
Added link ends to role documentation.

5 years agoUpdate test results (last minuite changes)
Joachim Breitner [Fri, 6 Jun 2014 11:19:33 +0000 (13:19 +0200)] 
Update test results (last minuite changes)