ghc.git
3 years agoRemote GHCi, -fexternal-interpreter
Simon Marlow [Wed, 18 Nov 2015 16:42:24 +0000 (16:42 +0000)] 
Remote GHCi, -fexternal-interpreter

Summary:
(Apologies for the size of this patch, I couldn't make a smaller one
that was validate-clean and also made sense independently)

(Some of this code is derived from GHCJS.)

This commit adds support for running interpreted code (for GHCi and
TemplateHaskell) in a separate process.  The functionality is
experimental, so for now it is off by default and enabled by the flag
-fexternal-interpreter.

Reaosns we want this:

* compiling Template Haskell code with -prof does not require
  building the code without -prof first

* when GHC itself is profiled, it can interpret unprofiled code, and
  the same applies to dynamic linking.  We would no longer need to
  force -dynamic-too with TemplateHaskell, and we can load ordinary
  objects into a dynamically-linked GHCi (and vice versa).

* An unprofiled GHCi can load and run profiled code, which means it
  can use the stack-trace functionality provided by profiling without
  taking the performance hit on the compiler that profiling would
  entail.

Amongst other things; see
https://ghc.haskell.org/trac/ghc/wiki/RemoteGHCi for more details.

Notes on the implementation are in Note [Remote GHCi] in the new
module compiler/ghci/GHCi.hs.  It probably needs more documenting,
feel free to suggest things I could elaborate on.

Things that are not currently implemented for -fexternal-interpreter:

* The GHCi debugger
* :set prog, :set args in GHCi
* `recover` in Template Haskell
* Redirecting stdin/stdout for the external process

These are all doable, I just wanted to get to a working validate-clean
patch first.

I also haven't done any benchmarking yet.  I expect there to be slight hit
to link times for byte code and some penalty due to having to
serialize/deserialize TH syntax, but I don't expect it to be a serious
problem.  There's also lots of low-hanging fruit in the byte code
generator/linker that we could exploit to speed things up.

Test Plan:
* validate
* I've run parts of the test suite with
EXTRA_HC_OPTS=-fexternal-interpreter, notably tests/ghci and tests/th.
There are a few failures due to the things not currently implemented
(see above).

Reviewers: simonpj, goldfire, ezyang, austin, alanz, hvr, niteria, bgamari, gibiansky, luite

Subscribers: thomie

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

3 years agoGHC doesn't have a way to ask for user-package-db, so Cabal reimplemented it.
Edward Z. Yang [Wed, 16 Dec 2015 18:39:12 +0000 (10:39 -0800)] 
GHC doesn't have a way to ask for user-package-db, so Cabal reimplemented it.

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

Reviewers: austin, bgamari

Subscribers: thomie

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

3 years agoAdd test for #10897
Matthew Pickering [Wed, 16 Dec 2015 23:16:15 +0000 (23:16 +0000)] 
Add test for #10897

3 years agoUpdate transformers submodule to latest v0.5.0.0
Herbert Valerio Riedel [Wed, 16 Dec 2015 22:31:34 +0000 (23:31 +0100)] 
Update transformers submodule to latest v0.5.0.0

`transformers-0.5.0.0` will be the next version of `transformers`
and this is the designated version to be used for GHC 8.0.1

This needs to update the haskeline submodule in order to relax
the upper bound for the major version bump to 0.5

3 years agoUpdate Cabal submodule to latest snapshot
Herbert Valerio Riedel [Wed, 16 Dec 2015 22:22:42 +0000 (23:22 +0100)] 
Update Cabal submodule to latest snapshot

This needs minor adaptations to ghc-cabal due to
http://git.haskell.org/packages/Cabal.git/commitdiff/b39b906d05c409e4960ae15dbaca89664826a85f

3 years agoNote [The equality types story] in TysPrim
Richard Eisenberg [Wed, 16 Dec 2015 18:04:09 +0000 (13:04 -0500)] 
Note [The equality types story] in TysPrim

This supercedes the Note recently written in TysWiredIn.

3 years agoLook through type synonyms in GADT kind signatures
Jan Stolarek [Wed, 16 Dec 2015 11:57:45 +0000 (12:57 +0100)] 
Look through type synonyms in GADT kind signatures

Summary: Fixes #11237

Test Plan: ./validate

Reviewers: goldfire, austin, bgamari

Subscribers: thomie

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

GHC Trac Issues: #11237

3 years agoSynchronize Haddock submodule with master branch
Ben Gamari [Wed, 16 Dec 2015 16:24:40 +0000 (17:24 +0100)] 
Synchronize Haddock submodule with master branch

Thanks for Matthew Pickering for managing this rebase.

3 years agoImprove detection of `fdatasync(2)` (re #11137)
Herbert Valerio Riedel [Wed, 16 Dec 2015 16:40:48 +0000 (17:40 +0100)] 
Improve detection of `fdatasync(2)` (re #11137)

This updates the `unix` submodule to pull in an improved
Autoconf test for `fdatasync(2)` in cases where `<unistd.h>` lacks
a declaration, but linking against `fdatasync` works which led to a
false positive previously.

3 years agoUpdate haddock submodule
Ben Gamari [Wed, 16 Dec 2015 12:47:51 +0000 (07:47 -0500)] 
Update haddock submodule

Also rename and move the horribly named isVanillaLSig to Haddock as
isUserLSig, reflecting the fact that it returns whether the signature
was provided by the user or generated.

3 years agoGHC.Stack: Fix Haddock markup
Ben Gamari [Wed, 16 Dec 2015 11:27:34 +0000 (12:27 +0100)] 
GHC.Stack: Fix Haddock markup

3 years agoStart using `-W` instead of `-f(no-)warn` in some places
Herbert Valerio Riedel [Wed, 16 Dec 2015 12:32:32 +0000 (13:32 +0100)] 
Start using `-W` instead of `-f(no-)warn` in some places

This replaces some occurences of `-f(no-)warn` with the new `-W`-aliases
introduced via 2206fa8cdb120932 / #11218, in cases which are guaranteed
to be invoked with recent enough GHC (i.e. the stage1+ GHC).

After this commit, mostly the compiler and the testsuite remain using
`-f(wo-)warn...` because the compiler needs to be bootstrappable with
older GHCs, while for the testsuite it's convenient to be able to quickly
compare the behavior to older GHCs (which may not support the new flags yet).

The compiler-part can be updated to use the new flags once GHC 8.3 development
starts.

Reviewed By: quchen

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

3 years agoAdd `-W(no-)xxx` aliases for `-f(no-)warn-xxx` flags
David Luposchainsky [Wed, 16 Dec 2015 10:42:00 +0000 (11:42 +0100)] 
Add `-W(no-)xxx` aliases for `-f(no-)warn-xxx` flags

This also updates the user's guide to refer to the `-W`-based warning
flags by default.

Quoting the release note entry:

| Warnings can now be controlled with `-W(no-)...` flags in addition to
| the old `-f(no-)warn...` ones. This was done as the first part of a
| rewrite of the warning system to provide better control over warnings,
| better warning messages, and more common syntax compared to other
| compilers. The old `-fwarn...`-based warning flags will remain
| functional for the forseeable future.

This is part of
https://ghc.haskell.org/wiki/Design/Warnings
and addresses #11218

Reviewed By: hvr, bgamari

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

3 years agoUpdate binary submodule to binary-0.8 snapshot
Herbert Valerio Riedel [Wed, 16 Dec 2015 10:37:20 +0000 (11:37 +0100)] 
Update binary submodule to binary-0.8 snapshot

This requires tweaking version constraints to allow this new major version
of `binary`.

Starting with binary-0.8, `Binary Version` is de-orphaned into `binary`.
This requires some minor adaptations to remove/hide orphan instances.

/cc @kolmodin

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

3 years agoUpdate pretty submodule to v1.1.3.2 release
Herbert Valerio Riedel [Tue, 15 Dec 2015 23:12:32 +0000 (00:12 +0100)] 
Update pretty submodule to v1.1.3.2 release

The `pretty-1.1.3.2` release is the version designated for GHC 8.0.1

/cc @dterei

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

3 years agoExpose enabled language extensions to TH
Ben Gamari [Tue, 15 Dec 2015 22:57:46 +0000 (23:57 +0100)] 
Expose enabled language extensions to TH

This exposes `template-haskell` functions for querying the language
extensions which are enabled when compiling a module,

- an `isExtEnabled` function to check whether an extension is enabled
- an `extsEnabled` function to obtain a full list of enabled extensions

To avoid code duplication this adds a `GHC.LanguageExtensions` module to
`ghc-boot` and moves `DynFlags.ExtensionFlag` into it. A happy
consequence of this is that the ungainly `DynFlags` lost around 500
lines. Moreover, flags corresponding to language extensions are now
clearly distinguished from other flags due to the `LangExt.*` prefix.

Updates haddock submodule.

This fixes #10820.

Test Plan: validate

Reviewers: austin, spinda, hvr, goldfire, alanz

Reviewed By: goldfire

Subscribers: mpickering, RyanGlScott, hvr, simonpj, thomie

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

GHC Trac Issues: #10820

3 years agoprimops: Mark actions evaluated by `catch*` as lazy
Ben Gamari [Tue, 15 Dec 2015 19:08:17 +0000 (20:08 +0100)] 
primops: Mark actions evaluated by `catch*` as lazy

There is something very peculiar about the `catch` family of operations
with respect to strictness analysis: they turn divergence into
non-divergence. For this reason, it isn't safe to mark them as strict in
the expression whose exceptions they are catching. The reason is this:

Consider,

    let r = \st -> raiseIO# blah st
    in catch (\st -> ...(r st)..) handler st

If we give the first argument of catch a strict signature, we'll get a
demand 'C(S)' for 'r'; that is, 'r' is definitely called with one
argument, which indeed it is. The trouble comes when we feed 'C(S)' into
'r's RHS as the demand of the body as this will lead us to conclude that
the whole 'let' will diverge; clearly this isn't right.

This is essentially the problem in #10712, which arose when
7c0fff41789669450b02dc1db7f5d7babba5dee6 marked the `catch*` primops as
being strict in the thing to be evaluated. Here I've partially reverted
this commit, again marking the first argument of these primops as lazy.

Fixes #10712.

Test Plan: Validate checking `exceptionsrun001`

Reviewers: simonpj, austin

Subscribers: thomie

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

GHC Trac Issues: #10712, #11222

3 years agoAdd testcase for #11224
Ben Gamari [Tue, 15 Dec 2015 20:50:40 +0000 (20:50 +0000)] 
Add testcase for #11224

Test Plan: Validate

Reviewers: austin, mpickering

Reviewed By: mpickering

Subscribers: mpickering, thomie

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

GHC Trac Issues: #11224

3 years agobase: NonEmpty: Fix documentation example
Ben Gamari [Tue, 15 Dec 2015 20:50:36 +0000 (21:50 +0100)] 
base: NonEmpty: Fix documentation example

Fixes #11178.

3 years agoNarrow scope of special-case for unqualified printing of names in core libraries
Ben Gamari [Tue, 15 Dec 2015 15:08:52 +0000 (16:08 +0100)] 
Narrow scope of special-case for unqualified printing of names in core libraries

Commit 547c597112954353cef7157cb0a389bc4f6303eb modifies the
pretty-printer to render names from a set of core packages (`base`,
`ghc-prim`, `template-haskell`) as unqualified. The idea here was that
many of these names typically are not in scope but are well-known by the
user and therefore qualification merely introduces noise.

This, however, is a very large hammer and potentially breaks any
consumer who relies on parsing GHC output (hence #11208). This commit
partially reverts this change, now only printing `Constraint` (which
appears quite often in errors) as unqualified.

Fixes #11208.

Updates tests in `array` submodule.

Test Plan: validate

Reviewers: hvr, thomie, austin

Subscribers: thomie

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

GHC Trac Issues: #11208

3 years agoComment layout only
Simon Peyton Jones [Tue, 15 Dec 2015 14:26:34 +0000 (14:26 +0000)] 
Comment layout only

3 years agoAllow recursive (undecidable) superclasses
Simon Peyton Jones [Tue, 15 Dec 2015 14:26:13 +0000 (14:26 +0000)] 
Allow recursive (undecidable) superclasses

This patch fulfils the request in Trac #11067, #10318, and #10592,
by lifting the conservative restrictions on superclass constraints.

These restrictions are there (and have been since Haskell was born) to
ensure that the transitive superclasses of a class constraint is a finite
set.  However (a) this restriction is conservative, and can be annoying
when there really is no recursion, and (b) sometimes genuinely recursive
superclasses are useful (see the tickets).

Dimitrios and I worked out that there is actually a relatively simple way
to do the job. It’s described in some detail in

   Note [The superclass story] in TcCanonical
   Note [Expanding superclasses] in TcType

In brief, the idea is to expand superclasses only finitely, but to
iterate (using a loop that already existed) if there are more
superclasses to explore.

Other small things

- I improved grouping of error messages a bit in TcErrors

- I re-centred the haddock.compiler test, which was at 9.8%
  above the norm, and which this patch pushed slightly over

3 years agoComments on equality types and classes
Simon Peyton Jones [Tue, 15 Dec 2015 14:22:37 +0000 (14:22 +0000)] 
Comments on equality types and classes

This is really just doucumenting one aspect of the kind-equality patch.

See especially Note [Equality types and classes] in TysWiredIn.
Other places should just point to this Note.

Richard please check for veracity.

3 years agoImprove documentation for -XStrict
Simon Peyton Jones [Tue, 15 Dec 2015 14:19:52 +0000 (14:19 +0000)] 
Improve documentation for -XStrict

In particular, highlight that we do not put bangs on nested patterns

3 years agoFix formatting complaint from Sphinx
Simon Peyton Jones [Tue, 15 Dec 2015 14:19:12 +0000 (14:19 +0000)] 
Fix formatting complaint from Sphinx

3 years agoReset process submodule to v1.4.1.0 release tag
Herbert Valerio Riedel [Tue, 15 Dec 2015 13:37:55 +0000 (14:37 +0100)] 
Reset process submodule to v1.4.1.0 release tag

The `process-1.4.1.0` release is the version designated for GHC 8.0.1

/cc @snoyberg

3 years agoUpdate expected test output for 32 bit platforms
Erik de Castro Lopo [Tue, 15 Dec 2015 10:53:11 +0000 (21:53 +1100)] 
Update expected test output for 32 bit platforms

Test Plan: Run tests on a 32 bit platform

Reviewers: austin, hvr, bgamari

Reviewed By: bgamari

Subscribers: thomie

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

3 years agoTysWiredIn: Fix a comment - Note [TYPE] is in TysPrim
Ömer Sinan Ağacan [Tue, 15 Dec 2015 01:05:43 +0000 (20:05 -0500)] 
TysWiredIn: Fix a comment - Note [TYPE] is in TysPrim

3 years agoDocument -XOverloadedLabels
Adam Gundry [Tue, 15 Dec 2015 00:11:03 +0000 (01:11 +0100)] 
Document -XOverloadedLabels

This adds documentation of the new `OverloadedLabels` extension to
the users' guide.  Thanks to @bgamari for patiently reminding me
to get this done.  Feedback welcome.

Test Plan: N/A

Reviewers: austin, bgamari

Reviewed By: bgamari

Subscribers: thomie, bgamari

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

3 years agoDynFlags: delete function that doesn't do anything
Thomas Miedema [Tue, 15 Dec 2015 00:07:39 +0000 (01:07 +0100)] 
DynFlags: delete function that doesn't do anything

Reviewers: austin, bgamari

Reviewed By: austin, bgamari

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

3 years agoDynFlags: remove Opt_Static
Thomas Miedema [Tue, 15 Dec 2015 00:07:24 +0000 (01:07 +0100)] 
DynFlags: remove Opt_Static

There are currently 2 different ways to test for a static or dynamic
build:

    * Test if WayDyn is in ways
    * Test if Opt_Static is set

The problem is that these can easily go out of sync, especially when
using the
GHC API.

This commit replaces all queries of Opt_Static with an equivalent query
of
WayDyn. This would have prevented bug #8294 and fixes #11154.

Reviewers: hvr, austin, bgamari

Reviewed By: austin, bgamari

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

GHC Trac Issues: #10636

3 years agoFix runghc when $1_$2_SHELL_WRAPPER = NO
RyanGlScott [Tue, 15 Dec 2015 00:02:46 +0000 (01:02 +0100)] 
Fix runghc when $1_$2_SHELL_WRAPPER = NO

When that variable isn't on (which is always the case on Windows),
`runghc` naively attempts to invoke `ghc` by finding an executable
simply named `ghc`. This won't work if `ghc` doesn't exist (e.g., if
we're building GHC and using `ghc-stage2` instead). A simple fix is to
test for the existence of `ghc` beforehand, and if that fails, fall back
on `ghc-stage2`.

Fixes #11185.

Test Plan: ./validate

Reviewers: austin, hvr, thomie, bgamari

Reviewed By: thomie, bgamari

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

GHC Trac Issues: #11185

3 years agoMention "handle is semi-closed" in error messages
Thomas Miedema [Tue, 15 Dec 2015 00:02:39 +0000 (01:02 +0100)] 
Mention "handle is semi-closed" in error messages

Semi-closedness is mentioned in the Haskell report, so lets not hide it
from users.

Reviewers: austin, hvr, bgamari

Reviewed By: bgamari

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

3 years agoDynFlags Remove -fwarn-context-quantification flag
Ben Gamari [Tue, 15 Dec 2015 00:01:39 +0000 (01:01 +0100)] 
DynFlags Remove -fwarn-context-quantification flag

As mentioned in #4426 these warnings are now errors since the Great
Wildcards Refactor of 2015 (1e041b7382b6aa329e4ad9625439f811e0f27232).
I've opened #11221 to ensure we remove the last traces of the option in
8.2.

Test Plan: validate

Reviewers: austin

Subscribers: thomie

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

GHC Trac Issues: #4426

3 years agoTest #9632 in dependent/should_compile/T9632
Richard Eisenberg [Mon, 14 Dec 2015 20:59:21 +0000 (15:59 -0500)] 
Test #9632 in dependent/should_compile/T9632

3 years agoAdd IsString Outputable.SDoc instance
Herbert Valerio Riedel [Mon, 14 Dec 2015 19:55:08 +0000 (20:55 +0100)] 
Add IsString Outputable.SDoc instance

This allows to conveniently interpret string literals as `text`
when `-XOverloadedStrings` is in effect.

For what it's worth, `Text.PrettyPrint.Doc` also possesses such
an instance.

This is a spin-off from D1240

Reviewed By: bgamari

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

3 years agoAdd testcase for #11216
Ben Gamari [Mon, 14 Dec 2015 14:14:36 +0000 (15:14 +0100)] 
Add testcase for #11216

3 years agoMake binds in do-blocks strict when -XStrict (#11193)
Adam Sandberg Eriksson [Mon, 14 Dec 2015 14:03:15 +0000 (15:03 +0100)] 
Make binds in do-blocks strict when -XStrict (#11193)

Previously bindings in `do` blocks were omitted. With `-XStrict`
```lang=hs
do content <- action
   other_things
```
should be equivalent to
```lang=hs
do !content <- action
   other_things
```

Fixes #11193.

Reviewers: bgamari, austin

Reviewed By: bgamari

Subscribers: thomie

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

GHC Trac Issues: #11193

3 years agoSuggest import Data.Kinds when * is out of scope
Richard Eisenberg [Mon, 14 Dec 2015 14:02:54 +0000 (15:02 +0100)] 
Suggest import Data.Kinds when * is out of scope

With -XTypeInType, `*` must be imported to be used. This patch makes
sure the user knows this.

But I'm not sure this is the best way to deal with `*`. Feedback welcome
on either this small fix or the approach to `*`, in general.

You may wish to see `Note [HsAppsTy]` in HsTypes if you want to take a
broader view.

Test Plan: dependent/should_fail/RenamingStar

Reviewers: simonpj, bgamari, austin

Subscribers: thomie

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

3 years agoUse Cxt for deriving clauses in TH (#10819)
Ben Gamari [Mon, 14 Dec 2015 14:01:12 +0000 (15:01 +0100)] 
Use Cxt for deriving clauses in TH (#10819)

Summary:
Deriving clauses in the TH representations of data, newtype, data
instance, and newtype instance declarations previously were just [Name],
which didn't allow for more complex derived classes, eg. multi-parameter
typeclasses.

This switches out [Name] for Cxt, representing the derived classes as
types instead of names.

Test Plan: validate

Reviewers: goldfire, spinda, austin

Reviewed By: goldfire, austin

Subscribers: thomie

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

GHC Trac Issues: #10819

3 years agoSome more typos in comments
Gabor Greif [Mon, 14 Dec 2015 09:43:23 +0000 (10:43 +0100)] 
Some more typos in comments

3 years agoDon't pass CC= explicitly to `./configure` scripts
Herbert Valerio Riedel [Mon, 14 Dec 2015 09:42:17 +0000 (10:42 +0100)] 
Don't pass CC= explicitly to `./configure` scripts

This is a follow-up to fcc6b1d / D1608 which is made possible
by the recent Cabal update:

As `ghc-cabal` is called with `--with-gcc`, this gets passed to `./configure`
as `CC=...` argument. So we don't need to set `CC=...` ourselves explicitly again.

Prior to the changes in Cabal (pulled in via  0bf0cf936c7) and fcc6b1d,
`./configure` scripts would be called with a `--with-cc` argument followed by a
`--with-gcc` argument.

After this commit, `./configure` will be passed a single `CC=...` argument
constructed by the `Cabal` library.

Reviewed By: erikd

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

3 years agoUse idiomatic way to tell Autoconf the c compiler
Herbert Valerio Riedel [Mon, 14 Dec 2015 06:36:37 +0000 (07:36 +0100)] 
Use idiomatic way to tell Autoconf the c compiler

The non-idiomatic `--with-cc` flag was added via
5c789e424c1461c1dadfd38c44fcb9e8f38bf755

However, `--with-cc` seems rather fragile and support for `--with-cc` needs
to be added explicitly to autoconf-based Cabal packages. The `CC=` flag, however,
is supported natively by GNU Autoconf, so let's use the standard facility for that.

Relatedly, Cabal prior to version 1.24 used a similiar flag `--with-gcc=...`,
but starting with Cabal-1.24 this has been changed to use `CC=...` instead as well
(see https://github.com/haskell/cabal/pull/2946)

This also updates a few submodules removing the now obsolete `--with-cc` flag
support.

Reviewed By: trofi, thomie, erikd

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

3 years agoUpdate Cabal submodule
Herbert Valerio Riedel [Sun, 13 Dec 2015 22:37:27 +0000 (23:37 +0100)] 
Update Cabal submodule

3 years agoconfigure: add support for 'sh4' (Trac #11209)
Sergei Trofimovich [Sun, 13 Dec 2015 12:36:47 +0000 (12:36 +0000)] 
configure: add support for 'sh4' (Trac #11209)

Debian has Renesas SH4 (SuperH) port with a triplet:

    sh4-linux-gnu

Patch by glaubitz adds 'sh4' CPU to recognize target
as ArchUnknown.

Signed-off-by: Sergei Trofimovich <siarheit@google.com>
3 years agoRemove redundant imports
Richard Eisenberg [Sat, 12 Dec 2015 22:31:31 +0000 (17:31 -0500)] 
Remove redundant imports

3 years agoFix release notes markup
Ben Gamari [Sat, 12 Dec 2015 19:46:20 +0000 (20:46 +0100)] 
Fix release notes markup

3 years agoRefactor type families in Template Haskell
John Leo [Sat, 12 Dec 2015 18:28:18 +0000 (19:28 +0100)] 
Refactor type families in Template Haskell

Fixes #10902.

Test Plan: validate

Reviewers: goldfire, austin, hvr, jstolarek, bgamari

Reviewed By: jstolarek, bgamari

Subscribers: hvr, thomie

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

GHC Trac Issues: #10902

3 years agoBuild system: fix 'make install-strip' in bindist
Thomas Miedema [Sat, 12 Dec 2015 16:02:28 +0000 (17:02 +0100)] 
Build system: fix 'make install-strip' in bindist

The INSTALL_PROGRAM variable is set in mk/config.mk, so we have to
include that file before using it.

Running 'make install' before './configure' in a bindist will now also
display a nice message.

Reviewers: hvr, austin, bgamari

Reviewed By: bgamari

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

GHC Trac Issues: #1851

3 years agoDwarf: Use .short instead of .hword on Darwin
Ben Gamari [Sat, 12 Dec 2015 16:00:10 +0000 (17:00 +0100)] 
Dwarf: Use .short instead of .hword on Darwin

Apparently gnu as uses `.short` as a synonym for `.word`. To emit a
16-bit value one would use `.hword`. However, Darwin doesn't support
`.hword`, instead taking `.short` to mean a 16-bit value. The
insanity is nearly unbearable!

OS X reference:
https://developer.apple.com/library/mac/documentation/DeveloperTools/Ref
erence/Assembler/040-Assembler_Directives/asm_directives.html#//apple_re
f/doc/uid/TP30000823-TPXREF101

gnu as reference:
https://sourceware.org/binutils/docs/as/hword.html#hword

Test Plan: Validate

Reviewers: austin

Reviewed By: austin

Subscribers: thomie

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

GHC Trac Issues: #11202

3 years agoMake -XStrict imply -XStrictData
Adam Sandberg Eriksson [Sat, 12 Dec 2015 15:58:40 +0000 (16:58 +0100)] 
Make -XStrict imply -XStrictData

Fixes #11182.

Reviewers: bgamari, simonpj, austin

Reviewed By: simonpj, austin

Subscribers: thomie

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

GHC Trac Issues: #11182

3 years agoRework the Implicit CallStack solver to handle local lets.
Eric Seidel [Sat, 12 Dec 2015 15:53:50 +0000 (16:53 +0100)] 
Rework the Implicit CallStack solver to handle local lets.

We can't just solve CallStack constraints indiscriminately when they
occur in the RHS of a let-binder. The top-level given CallStack (if
any) will not be in scope, so I've re-worked the CallStack solver as
follows:

1. CallStacks are treated like regular IPs unless one of the following
   two rules apply.

2. In a function call, we push the call-site onto a NEW wanted
   CallStack, which GHC will solve as a regular IP (either directly from a
   given, or by quantifying over it in a local let).

3. If, after the constraint solver is done, any wanted CallStacks
   remain, we default them to the empty CallStack. This rule exists mainly
   to clean up after rule 2 in a top-level binder with no given CallStack.

In rule (2) we have to be careful to emit the new wanted with an
IPOccOrigin instead of an OccurrenceOf origin, so rule (2) doesn't fire
again. This is a bit shady but I've updated the Note to explain the
trick.

Test Plan: validate

Reviewers: simonpj, austin, bgamari, hvr

Reviewed By: simonpj, bgamari

Subscribers: thomie

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

GHC Trac Issues: #10845

3 years agoImplement -fwarn-missing-pat-syn-sigs
Matthew Pickering [Sat, 12 Dec 2015 16:38:07 +0000 (16:38 +0000)] 
Implement -fwarn-missing-pat-syn-sigs

This adds a warning when a pattern synonym is not accompanied by a
signature in the style of `-fwarn-missing-sigs`.

It is turned on by -Wall.

If the user specifies, `-fwarn-missing-exported-signatures` with
`-fwarn-missing-pat-syn-sigs` then it will only warn when the pattern
synonym is exported.

Test Plan: ./validate

Reviewers: hvr, austin, bgamari

Reviewed By: bgamari

Subscribers: thomie

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

GHC Trac Issues: #11053

3 years agoFrontend plugins.
Edward Z. Yang [Fri, 11 Dec 2015 04:41:53 +0000 (20:41 -0800)] 
Frontend plugins.

Summary:
Frontend plugins enable users to write plugins to replace
GHC major modes.  E.g. instead of saying

    ghc --make A B C

a user can now say

    ghc --frontend GHC.Frontend.Shake A B C

which might provide an alternative implementation of a multi-module
build.  For more details, see the manual entry.

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

Reviewers: simonmar, bgamari, austin, simonpj

Subscribers: thomie

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

GHC Trac Issues: #11194

3 years agoTest #9017 in polykinds/T9017
Richard Eisenberg [Sat, 12 Dec 2015 03:07:06 +0000 (22:07 -0500)] 
Test #9017 in polykinds/T9017

3 years agoTest case for #7961.
Richard Eisenberg [Sat, 12 Dec 2015 02:51:37 +0000 (21:51 -0500)] 
Test case for #7961.

Test case: dependent/shoud_compile/TypeLevelVec

3 years agorm rae.txt
Austin Seipp [Fri, 11 Dec 2015 23:52:15 +0000 (17:52 -0600)] 
rm rae.txt

Signed-off-by: Austin Seipp <austin@well-typed.com>
3 years agoRevert .gitmodules changes from 6746549772c5
Austin Seipp [Fri, 11 Dec 2015 23:36:20 +0000 (17:36 -0600)] 
Revert .gitmodules changes from 6746549772c5

Signed-off-by: Austin Seipp <austin@well-typed.com>
3 years agohaddock: Fix submodule commit to point to ghc-head
Austin Seipp [Fri, 11 Dec 2015 23:34:26 +0000 (17:34 -0600)] 
haddock: Fix submodule commit to point to ghc-head

6746549772c5 accidentally pointed it to a branch (wip/rae-nokinds), before
rebasing it onto ghc-head.

Signed-off-by: Austin Seipp <austin@well-typed.com>
3 years agoRevert README.md changes from 6746549772c5
Austin Seipp [Fri, 11 Dec 2015 23:31:23 +0000 (17:31 -0600)] 
Revert README.md changes from 6746549772c5

Signed-off-by: Austin Seipp <austin@well-typed.com>
3 years agoAdd kind equalities to GHC.
Richard Eisenberg [Fri, 11 Dec 2015 23:19:53 +0000 (18:19 -0500)] 
Add kind equalities to GHC.

This implements the ideas originally put forward in
"System FC with Explicit Kind Equality" (ICFP'13).

There are several noteworthy changes with this patch:
 * We now have casts in types. These change the kind
   of a type. See new constructor `CastTy`.

 * All types and all constructors can be promoted.
   This includes GADT constructors. GADT pattern matches
   take place in type family equations. In Core,
   types can now be applied to coercions via the
   `CoercionTy` constructor.

 * Coercions can now be heterogeneous, relating types
   of different kinds. A coercion proving `t1 :: k1 ~ t2 :: k2`
   proves both that `t1` and `t2` are the same and also that
   `k1` and `k2` are the same.

 * The `Coercion` type has been significantly enhanced.
   The documentation in `docs/core-spec/core-spec.pdf` reflects
   the new reality.

 * The type of `*` is now `*`. No more `BOX`.

 * Users can write explicit kind variables in their code,
   anywhere they can write type variables. For backward compatibility,
   automatic inference of kind-variable binding is still permitted.

 * The new extension `TypeInType` turns on the new user-facing
   features.

 * Type families and synonyms are now promoted to kinds. This causes
   trouble with parsing `*`, leading to the somewhat awkward new
   `HsAppsTy` constructor for `HsType`. This is dispatched with in
   the renamer, where the kind `*` can be told apart from a
   type-level multiplication operator. Without `-XTypeInType` the
   old behavior persists. With `-XTypeInType`, you need to import
   `Data.Kind` to get `*`, also known as `Type`.

 * The kind-checking algorithms in TcHsType have been significantly
   rewritten to allow for enhanced kinds.

 * The new features are still quite experimental and may be in flux.

 * TODO: Several open tickets: #11195, #11196, #11197, #11198, #11203.

 * TODO: Update user manual.

Tickets addressed: #9017, #9173, #7961, #10524, #8566, #11142.
Updates Haddock submodule.

3 years agoFix infix record field fixity (#11167 and #11173).
Adam Gundry [Fri, 11 Dec 2015 21:43:26 +0000 (22:43 +0100)] 
Fix infix record field fixity (#11167 and #11173).

This extends D1585 with proper support for infix duplicate record
fields.  In particular, it is now possible to declare record fields as
infix in a module for which `DuplicateRecordFields` is enabled, fixity
is looked up correctly and a readable (although unpleasant) error
message is generated if multiple fields with different fixities are in
scope.

As a bonus, `DEPRECATED` and `WARNING` pragmas now work for
duplicate record fields. The pragma applies to all fields with the
given label.

In addition, a couple of minor `DuplicateRecordFields` bugs, which were
pinpointed by the `T11167_ambig` test case, are fixed by this patch:

  - Ambiguous infix fields can now be disambiguated by putting a type
    signature on the first argument

  - Polymorphic type constructor signatures (such as `ContT () IO a` in
    `T11167_ambig`) now work for disambiguation

Parts of this patch are from D1585 authored by @KaneTW.

Test Plan: New tests added.

Reviewers: KaneTW, bgamari, austin

Reviewed By: bgamari

Subscribers: thomie, hvr

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

GHC Trac Issues: #11167, #11173

3 years agotestsuite: Only run recomp015 on ELF-based platforms
Ben Gamari [Fri, 11 Dec 2015 21:41:23 +0000 (22:41 +0100)] 
testsuite: Only run recomp015 on ELF-based platforms

It fails on OS X with hundreds of messages of the form,
```
ManySections.s:196576:10: error:
     error: mach-o section specifier uses an unknown section type
.section s65525,"",@progbits
         ^

ManySections.s:196579:10: error:
     error: mach-o section specifier uses an unknown section type
.section s65526,"",@progbits
```

It fails on Windows with messages of the form,
```
ManySections.s:196579:10: error:
     Error: junk at the end of line, first unrecognized character is ','
```

Test Plan: Validate

Reviewers: hsyl20, thomie, austin

Reviewed By: thomie, austin

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

GHC Trac Issues: #11022

3 years agoImproved data family export documentation
David Kraeutmann [Fri, 11 Dec 2015 21:36:55 +0000 (22:36 +0100)] 
Improved data family export documentation

Reviewers: simonpj, austin, bgamari

Reviewed By: simonpj

Subscribers: thomie

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

GHC Trac Issues: #11164

3 years agoRemoved colon append operation (fixes #10785)
Ben Gamari [Fri, 11 Dec 2015 21:36:15 +0000 (22:36 +0100)] 
Removed colon append operation (fixes #10785)

Reviewers: jgertm, austin, thomie

Reviewed By: thomie

Subscribers: thomie

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

GHC Trac Issues: #10785

3 years agoT4801: Update expected allocations on Darwin
Ben Gamari [Fri, 11 Dec 2015 21:19:44 +0000 (22:19 +0100)] 
T4801: Update expected allocations on Darwin

3 years agoMark retc001 as broken on Darwin
Ben Gamari [Fri, 11 Dec 2015 21:09:43 +0000 (23:09 +0200)] 
Mark retc001 as broken on Darwin

Due to #11204. A relatively easy fix would be to add a one second delay as
described in the ticket, but this seems terrible.

3 years agoT7478: Don't expect broken on Darwin
Ben Gamari [Fri, 11 Dec 2015 20:48:02 +0000 (21:48 +0100)] 
T7478: Don't expect broken on Darwin

This appears to be fixed as noted by goldfire on #7478 and my own
experience.

3 years agoMake sure PatSyns only get added once to tcg_patsyns
Matthew Pickering [Fri, 11 Dec 2015 18:10:45 +0000 (18:10 +0000)] 
Make sure PatSyns only get added once to tcg_patsyns

Summary: Before, `PatSyn`s were getting added twice to `tcg_patsyns` so
when inspecting afterwards there were duplicates in the list.
This makes sure that only they only get added once.

Reviewers: austin, bgamari

Reviewed By: bgamari

Subscribers: thomie

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

3 years agoTest Trac #11187
Simon Peyton Jones [Thu, 10 Dec 2015 10:55:10 +0000 (10:55 +0000)] 
Test Trac #11187

3 years agoTest Trac #11192
Simon Peyton Jones [Thu, 10 Dec 2015 10:15:16 +0000 (10:15 +0000)] 
Test Trac #11192

3 years agoMore typos in comments/docs
Gabor Greif [Wed, 9 Dec 2015 15:15:07 +0000 (16:15 +0100)] 
More typos in comments/docs

3 years agoImprove documentation for DeriveAnyClass
Simon Peyton Jones [Wed, 9 Dec 2015 13:42:58 +0000 (13:42 +0000)] 
Improve documentation for DeriveAnyClass

c.f. Trac #9968

3 years agoComments only
Simon Peyton Jones [Wed, 9 Dec 2015 09:08:47 +0000 (09:08 +0000)] 
Comments only

3 years agoFix DeriveAnyClass (Trac #9968)
Simon Peyton Jones [Wed, 9 Dec 2015 09:07:46 +0000 (09:07 +0000)] 
Fix DeriveAnyClass (Trac #9968)

The main issue concerned things like

   data T a = MkT a deriving( C Int )

which is supposed to generate

   instance C Int (T a) where {}

But the 'Int' argument (called cls_tys in the code) wasn't
even being passed to inferConstraints and mk_data_eqn, so it
really had no chance.   DeriveAnyClass came along after this
code was written!

Anyway I did quite a bit of tidying up in inferConstraints.

Also I discovered that this case was not covered at all

   data T a b = MkT a b deriving( Bifunctor )

What constraints should we generate for the instance context?
We can deal with classes whose last arg has kind *, like Eq, Ord;
or (* -> *), like Functor, Traversable.  But we really don't have
a story for classes whose last arg has kind (* -> * -> *).

So I augmented checkSideConditions to check for that and give
a sensible error message.

ToDo: update the user manual.

3 years agoAdd missing whitespace in toArgs' error msg
Herbert Valerio Riedel [Tue, 8 Dec 2015 22:01:35 +0000 (23:01 +0100)] 
Add missing whitespace in toArgs' error msg

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

3 years agoRefactor GHCi Command type; allow "hidden" commands
Herbert Valerio Riedel [Tue, 8 Dec 2015 21:59:41 +0000 (22:59 +0100)] 
Refactor GHCi Command type; allow "hidden" commands

This transforms the 'Command' tuple into a record which is
easier to extend.

While at it, this refactoring turns the IDE `:complete` into a hidden
command excluded from completion.

The next obvious step is to add a summary text field for constructing
the `:help` output (as well as allowing to get `:help <CMD>` for single
commands.

This is a preparatory refactoring for D1240 / #10874

Reviewed By: thomie, bgamari

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

3 years agoAn assortment of typos
Gabor Greif [Tue, 8 Dec 2015 15:43:34 +0000 (16:43 +0100)] 
An assortment of typos

3 years agoComments about polymorphic recursion
Simon Peyton Jones [Tue, 8 Dec 2015 13:11:42 +0000 (13:11 +0000)] 
Comments about polymorphic recursion

See Trac #11176

3 years agoComments only
Simon Peyton Jones [Mon, 7 Dec 2015 12:48:44 +0000 (12:48 +0000)] 
Comments only

3 years agousers_guide: Show sub-sub-sections in ToC
Ben Gamari [Tue, 8 Dec 2015 14:59:43 +0000 (15:59 +0100)] 
users_guide: Show sub-sub-sections in ToC

3 years agodocs/glasgow_exts: Use warning admonition
Ben Gamari [Tue, 8 Dec 2015 12:14:14 +0000 (13:14 +0100)] 
docs/glasgow_exts: Use warning admonition

3 years agoFix typo sneaked in with fd3b845c01aa26b6e5
Herbert Valerio Riedel [Tue, 8 Dec 2015 13:54:14 +0000 (14:54 +0100)] 
Fix typo sneaked in with fd3b845c01aa26b6e5

3 years agoFix double MaybeT instance
Herbert Valerio Riedel [Tue, 8 Dec 2015 10:45:38 +0000 (11:45 +0100)] 
Fix double MaybeT instance

This is a fixup to fd3b845c01aa26b6e5cd12c00af59e5468e21b1b
which didn't take into account 09333313f32be975faf9158fcd3648489d78ad82
having pushed as well.

3 years agoRename s/7.12.1/8.0.1/ two minor occurences
Herbert Valerio Riedel [Tue, 8 Dec 2015 10:32:48 +0000 (11:32 +0100)] 
Rename s/7.12.1/8.0.1/ two minor occurences

[skip ci]

3 years agoUpdate libffi-tarballs submodule to libffi 3.1 (re #10238)
Herbert Valerio Riedel [Tue, 8 Dec 2015 09:46:04 +0000 (10:46 +0100)] 
Update libffi-tarballs submodule to libffi 3.1 (re #10238)

Reviewers: bgamari, austin

Subscribers: thomie

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

GHC Trac Issues: #10238

3 years agoMake HasDynFlags more transformers friendly
Herbert Valerio Riedel [Tue, 8 Dec 2015 10:11:11 +0000 (11:11 +0100)] 
Make HasDynFlags more transformers friendly

Ideally, we'd have the more general

    instance (MonadTrans t, Monad m, HasDynFlags m) => HasDynFlags (t m) where
        getDynFlags = lift getDynFlags

definition. However, that one would overlap with the `HasDynFlags (GhcT m)`
instance. Instead we define instances for a couple of common Monad
transformers explicitly in order to avoid nasty overlapping instances.

This is a preparatory refactoring for #10874

Reviewed By: austin

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

3 years agoAssociate ErrorCall pattern with ErrorCall type
Herbert Valerio Riedel [Tue, 8 Dec 2015 10:09:48 +0000 (11:09 +0100)] 
Associate ErrorCall pattern with ErrorCall type

This way,

    import Control.Exception (ErrorCall(ErrorCall))

or

    import Control.Exception (ErrorCall(..))

work as expected, and import the `ErrorCall` compatibility pattern as well.

When #5273 was implemented, it wasn't possible yet to associated
patterns with their types (see #10653).

Reviewed By: austin

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

3 years agoIntroduce HasGhciState class and refactor use-sites
Herbert Valerio Riedel [Tue, 8 Dec 2015 07:48:21 +0000 (08:48 +0100)] 
Introduce HasGhciState class and refactor use-sites

This allows to reach the GhciState without having to keep
track how many Monad transformer layers sit on top of the
GHCi monad.

While at it, this also refactors code to make more use of the
existing `modifyGHCiState` operation.

This is a preparatory refactoring for #10874

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

3 years agoGet rid of tcView altogether
Ömer Sinan Ağacan [Mon, 7 Dec 2015 16:41:51 +0000 (11:41 -0500)] 
Get rid of tcView altogether

This is just a trivial renaming that implements a ToDo mentioned in a comment
in Type.hs.

Adding Simon as reviewer since he added the ToDo comment.

Reviewers: simonpj, austin, goldfire, bgamari

Subscribers: thomie

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

3 years agoRemove redundant CPP conditionals
Herbert Valerio Riedel [Mon, 7 Dec 2015 21:50:44 +0000 (22:50 +0100)] 
Remove redundant CPP conditionals

It makes little sense to have __GLASGOW_HASKELL__ conditional
code inside GHCi's source-code, as GHCi is only ever build
by the current stage1 GHC, whose version is assumed to be the
same as the GHCi version being built.

4 years agoRe-use `transformers`'s `MaybeT` rather than our own
Herbert Valerio Riedel [Mon, 7 Dec 2015 16:32:23 +0000 (17:32 +0100)] 
Re-use `transformers`'s `MaybeT` rather than our own

The now removed `MaybeT` type was originally added back in 2008
via bc845b714132a897032502536fea8cd018ce325b

Reviewed By: bgamari

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

4 years agorts: One more Clang-unfriendly CPP usage
Ben Gamari [Mon, 7 Dec 2015 13:08:28 +0000 (14:08 +0100)] 
rts: One more Clang-unfriendly CPP usage

4 years agoghc-pkg: don't sort packages unnecessarily
Thomas Miedema [Mon, 7 Dec 2015 12:22:03 +0000 (13:22 +0100)] 
ghc-pkg: don't sort packages unnecessarily

The packages in the package database are already sorted alphabetically
by this point (see db_stack_sorted).

This is a better fix for #8245, commit 021b1f8.

Test Plan: look at output of './inplace/bin/ghc-pkg list
[--simple-output]'

Reviewers: austin, bgamari, psibi

Reviewed By: psibi

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

GHC Trac Issues: #8245

4 years agoMove checking for missing signatures to RnNames.reportUnusedNames
Eric Seidel [Mon, 7 Dec 2015 11:42:38 +0000 (12:42 +0100)] 
Move checking for missing signatures to RnNames.reportUnusedNames

Checking for missing signatures before renaming the export list is
prone to errors, so we now perform the check in `reportUnusedNames` at
which point everything has been renamed.

Test Plan: validate, new test case is T10908

Reviewers: goldfire, simonpj, austin, bgamari

Subscribers: thomie

Projects: #ghc

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

GHC Trac Issues: #10908

4 years agoRefactor ConDecl
Alan Zimmerman [Mon, 7 Dec 2015 11:40:38 +0000 (12:40 +0100)] 
Refactor ConDecl

The ConDecl type in HsDecls is an uneasy compromise. For the most part,
HsSyn directly reflects the syntax written by the programmer; and that
gives just the right "pegs" on which to hang Alan's API annotations. But
ConDecl doesn't properly reflect the syntax of Haskell-98 and GADT-style
data type declarations.

To be concrete, here's a draft new data type

```lang=hs
data ConDecl name
  | ConDeclGADT
      { con_names   :: [Located name]
      , con_type    :: LHsSigType name  -- The type after the ‘::’
      , con_doc     :: Maybe LHsDocString }

  | ConDeclH98
      { con_name    :: Located name

      , con_qvars     :: Maybe (LHsQTyVars name)
        -- User-written forall (if any), and its implicit
        -- kind variables
        -- Non-Nothing needs -XExistentialQuantification

      , con_cxt       :: Maybe (LHsContext name)
        -- ^ User-written context (if any)

      , con_details   :: HsConDeclDetails name
          -- ^ Arguments

      , con_doc       :: Maybe LHsDocString
          -- ^ A possible Haddock comment.
      } deriving (Typeable)
```

Note that

    For GADTs, just keep a type. That's what the user writes.
    NB:HsType can represent records on the LHS of an arrow:

      { x:Int,y:Bool} -> T

    con_qvars and con_cxt are both Maybe because they are both
    optional (the forall and the context of an existential data type

    For ConDeclGADT the type variables of the data type do not scope
    over the con_type; whereas for ConDeclH98 they do scope over con_cxt
    and con_details.

Updates haddock submodule.

Test Plan: ./validate

Reviewers: simonpj, erikd, hvr, goldfire, austin, bgamari

Subscribers: erikd, goldfire, thomie, mpickering

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

GHC Trac Issues: #11028

4 years agoUse TypeLits in the meta-data encoding of GHC.Generics
RyanGlScott [Mon, 7 Dec 2015 11:37:50 +0000 (12:37 +0100)] 
Use TypeLits in the meta-data encoding of GHC.Generics

Test Plan: Validate.

Reviewers: simonpj, goldfire, hvr, dreixel, kosmikus, austin, bgamari

Reviewed By: kosmikus, austin, bgamari

Subscribers: RyanGlScott, Fuuzetsu, bgamari, thomie, carter, dreixel

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

GHC Trac Issues: #9766

4 years agorts: Remove space before argument list in ASSERTs
Ben Gamari [Mon, 7 Dec 2015 10:33:06 +0000 (11:33 +0100)] 
rts: Remove space before argument list in ASSERTs

Test Plan: Validate

Reviewers: austin, erikd

Subscribers: thomie

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

4 years agoAdd isImport, isDecl, and isStmt functions to GHC API
Roman Shatsov [Mon, 7 Dec 2015 10:24:36 +0000 (11:24 +0100)] 
Add isImport, isDecl, and isStmt functions to GHC API

Reviewers: austin, thomie, bgamari

Reviewed By: thomie, bgamari

Subscribers: mpickering, thomie

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

GHC Trac Issues: #9015

4 years agoMinor stylistic fixes in glasgow_exts.rst
Ben Gamari [Mon, 7 Dec 2015 10:23:50 +0000 (11:23 +0100)] 
Minor stylistic fixes in glasgow_exts.rst