ghc.git
21 months agoCircleCI: Disable artifact collection on OS X
Ben Gamari [Tue, 21 Nov 2017 19:22:22 +0000 (14:22 -0500)] 
CircleCI: Disable artifact collection on OS X

The storeartifacts step inexplicably hangs on OS X. I am currently be working
with CircleCI support to resolve this.

21 months agorel-notes: Fix up formatting in release notes
Ben Gamari [Mon, 20 Nov 2017 22:14:03 +0000 (17:14 -0500)] 
rel-notes: Fix up formatting in release notes

21 months agoghc-pkg: Add missing newlines to usage message
Ben Gamari [Mon, 20 Nov 2017 22:13:16 +0000 (17:13 -0500)] 
ghc-pkg: Add missing newlines to usage message

21 months agoBump haddock submodule
Ben Gamari [Mon, 20 Nov 2017 13:12:15 +0000 (08:12 -0500)] 
Bump haddock submodule

21 months agoBump hsc2hs submodule
Ben Gamari [Mon, 20 Nov 2017 03:13:07 +0000 (22:13 -0500)] 
Bump hsc2hs submodule

21 months agoStop generating make files when using hadrian.
Moritz Angermann [Mon, 20 Nov 2017 03:12:09 +0000 (22:12 -0500)] 
Stop generating make files when using hadrian.

The boot script generates lots of .mk files
for the make based build system. This change adds
a `--hadrian` flag to `boot`, which skips the `.mk`
file generation.

Reviewers: bgamari

Subscribers: rwbarton, thomie

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

21 months agoRename ghc-version -> ghcversion-file
Moritz Angermann [Mon, 20 Nov 2017 03:11:43 +0000 (22:11 -0500)] 
Rename ghc-version -> ghcversion-file

Reviewers: bgamari

Reviewed By: bgamari

Subscribers: rwbarton, thomie

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

21 months agoFix #elfi -> #elif; unbreak -Werror.
Moritz Angermann [Sun, 19 Nov 2017 23:46:01 +0000 (18:46 -0500)] 
Fix #elfi -> #elif; unbreak -Werror.

Reviewers: bgamari, erikd

Reviewed By: bgamari

Subscribers: rwbarton, thomie

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

21 months agobase: Make documentation of atomically more accurate
Andrew Martin [Sat, 18 Nov 2017 19:43:20 +0000 (14:43 -0500)] 
base: Make documentation of atomically more accurate

21 months agoFix T4437
Bartosz Nitka [Sat, 18 Nov 2017 14:11:38 +0000 (14:11 +0000)] 
Fix T4437

This test tests if the flags are in sync between GHC and
Cabal.
After b0b80e9 'Implement the basics of hex floating point
literals' landed, the Cabal side had to be updated. That
has been done, and 835d8dd 'GHC.Prim use virtual-modules'
brought the Cabal submodule up to date.

21 months agoFix rts.cabal.in
Moritz Angermann [Sat, 18 Nov 2017 07:05:31 +0000 (15:05 +0800)] 
Fix rts.cabal.in

Overlap with commit 2f463873, resulted in `hooks/LongGCSync.c`
missing from the `rts.cabal.in` file.  As the `rts.cabal` file is only
used by hadrian, this did not trigger with the make base build
system which can do globbing.

Also ignore the `rts.cabal` file, as it's generated by configure
from the `rts.cabal.in`.

21 months agoRelocatable GHC
Moritz Angermann [Fri, 17 Nov 2017 07:04:50 +0000 (15:04 +0800)] 
Relocatable GHC

GHC and the binary distribution that's produced is
not relocatable outside of Windows.  This diff tries to
address this for at least Linux and macOS.

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

Reviewed By: bgamari

Subscribers: duog, rwbarton, thomie, erikd

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

21 months agoGHC.Prim use virtual-modules
Moritz Angermann [Thu, 16 Nov 2017 14:54:11 +0000 (22:54 +0800)] 
GHC.Prim use virtual-modules

Stop the GHC.Prim madness with `virtual-module` support from cabal.
Needs https://github.com/haskell/cabal/pull/4875.

Bumps submodule libraries/Cabal to include the necessary logic for `virtual-module`.

Reviewers: bgamari

Reviewed By: bgamari

Subscribers: rwbarton, thomie

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

21 months agoAdds -ghc-version flag to ghc.
Moritz Angermann [Fri, 17 Nov 2017 11:29:25 +0000 (19:29 +0800)] 
Adds -ghc-version flag to ghc.

Summary:
When building the rts with ghc (e.g. using ghc as a c compiler), ghc's
"Value Add"[1] is, it includes adding `-include /path/to/ghcversion.h`.  For
this it looksup the rts package in the package database, which--if
empty--fails.  Thus to allow compiling C files with GHC, we add the
`-ghc-version` flag, which takes the path to the `ghcversion.h` file.

A `-no-ghc-version` flag was omitted, as at that point it becomes
questionable why one would use ghc to compile c if one doesn't
any of the added value.

--

[1] from `compiler/main/DriverPipeline.hs`
>        -- add package include paths even if we're just compiling .c
>        -- files; this is the Value Add(TM) that using ghc instead of
>        -- gcc gives you :)

Reviewers: bgamari, geekosaur, austin

Reviewed By: bgamari

Subscribers: rwbarton, thomie

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

22 months agoconfigure: Fix incorrect quoting
Ben Gamari [Thu, 16 Nov 2017 20:07:33 +0000 (15:07 -0500)] 
configure: Fix incorrect quoting

This is a regression affecting Windows introduced by
3bed4aa703c41ccbd310496420fbb71afdfd99e7.

22 months agoDocument -ddump-timings
Ben Gamari [Wed, 15 Nov 2017 22:28:48 +0000 (17:28 -0500)] 
Document -ddump-timings

22 months agoDetect overly long GC sync
Simon Marlow [Wed, 11 Feb 2015 14:19:21 +0000 (14:19 +0000)] 
Detect overly long GC sync

Summary:
GC sync is the time between a GC being intiated and all the mutator
threads finally stopping so that the GC can start. Problems that cause
the GC sync to be delayed are hard to find and can cause dramatic
slowdowns for heavily parallel programs.

The new flag --long-gc-sync=<time> helps by emitting a warning and
calling a user-overridable hook when the GC sync time exceeds the
specified threshold. A debugger can be used to set a breakpoint when
this happens and inspect the stacks of threads to find the culprit.

Test Plan:
```
$ ./inplace/bin/ghc-stage2 +RTS --long-gc-sync=0.0000001 -S
    Alloc    Copied     Live     GC     GC      TOT      TOT  Page Flts
    bytes     bytes     bytes   user   elap     user     elap
  1135856     51144    153736  0.000  0.000    0.002    0.002    0    0  (Gen:  0)
  1034760     94704    188752  0.000  0.000    0.002    0.002    0    0  (Gen:  0)
  1038888    134832    228888  0.009  0.009    0.011    0.011    0    0  (Gen:  1)
  1025288     90128    235184  0.000  0.000    0.012    0.012    0    0  (Gen:  0)
  1049088    130080    333984  0.000  0.000    0.013    0.013    0    0  (Gen:  0)
Warning: waited 0us for GC sync
  1034424     73360    331976  0.000  0.000    0.013    0.013    0    0  (Gen:  0)
```

Also tested on a real production problem.

Reviewers: niteria, bgamari, erikd

Subscribers: rwbarton, thomie

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

22 months agoPull recent Hadrian changes from upstream
Andrey Mokhov [Wed, 15 Nov 2017 21:58:19 +0000 (21:58 +0000)] 
Pull recent Hadrian changes from upstream

Merge commit 'c1fcd9b3f60e8420dd228cd4e3efeb9cfa793aa5'

22 months agoSquashed 'hadrian/' changes from 5ebb69a..fa3771f
Andrey Mokhov [Wed, 15 Nov 2017 21:58:18 +0000 (21:58 +0000)] 
Squashed 'hadrian/' changes from 5ebb69a..fa3771f

fa3771f hadrian: Disable -Wno-undef in files which include ffi.h (#459)
f15e851 Do not run configure by default (#458)
5baa8db Fix AppVeyor cache failure (#456)
94dbe9d Fix ghc-cabal build (#455)
a679764 Fix CI scripts (#454)
06ec241 Widen bounds on Cabal (#452)

git-subtree-dir: hadrian
git-subtree-split: fa3771fe6baf5008a8506fec48220f8347ac59af

22 months agousers_guide: Fix "CancelSynchronousIo" casing
Niklas Hambüchen [Wed, 15 Nov 2017 16:43:04 +0000 (11:43 -0500)] 
users_guide: Fix "CancelSynchronousIo" casing

Reviewers: bgamari, angerman

Reviewed By: angerman

Subscribers: angerman, rwbarton, thomie

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

22 months agoAdjust AltCon Ord instance to match Core linter requirements.
klebinger.andreas@gmx.at [Wed, 15 Nov 2017 16:42:48 +0000 (11:42 -0500)] 
Adjust AltCon Ord instance to match Core linter requirements.

When sorting by the Ord instance put DEFAULT before other constructors.

This is in line with what the core linter requests allowing the use of
the instance for putting alternatives in the correct order.
This implements #14464.

Reviewers: bgamari, simonpj

Reviewed By: simonpj

Subscribers: simonpj, rwbarton, thomie

GHC Trac Issues: #14464

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

22 months agoCabalify all the things
Moritz Angermann [Wed, 15 Nov 2017 16:41:34 +0000 (11:41 -0500)] 
Cabalify all the things

Adding cabal files to `unlit`, `touchy` and `hp2ps`, allows us to treat
them uniformally across the build system. In particular Hadrian will use
these.

Reviewers: bgamari

Reviewed By: bgamari

Subscribers: rwbarton, thomie

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

22 months agoAllow the rts lib to be called rts-1.0
Moritz Angermann [Wed, 15 Nov 2017 16:41:15 +0000 (11:41 -0500)] 
Allow the rts lib to be called rts-1.0

Reviewers: bgamari, simonmar

Reviewed By: bgamari

Subscribers: rwbarton, thomie

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

22 months agorts: Fix gc timing
Douglas Wilson [Wed, 15 Nov 2017 16:40:54 +0000 (11:40 -0500)] 
rts: Fix gc timing

We were accumulating the gc times of the previous gc.
`stats.gc.{cpu,elappsed}_ns` were being accumulated into
`stats.gc_{cpu,elapsed}_ns` before they were set.

There is also a change in that heap profiling will no longer cause gc
events to
be emitted.

Reviewers: bgamari, erikd, simonmar

Reviewed By: bgamari

Subscribers: rwbarton, thomie

GHC Trac Issues: #14257, #14445

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

22 months agoAdd dump flag for timing output
Ben Gamari [Wed, 15 Nov 2017 16:40:16 +0000 (11:40 -0500)] 
Add dump flag for timing output

This allows you to use `-ddump-to-file -ddump-timings` for more useful
dump output.

Test Plan: Try it

Subscribers: rwbarton, thomie

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

22 months agoCLabels: Remove CaseLabel
Ben Gamari [Wed, 15 Nov 2017 16:39:31 +0000 (11:39 -0500)] 
CLabels: Remove CaseLabel

Reviewers: simonmar

Subscribers: rwbarton, thomie

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

22 months agoCLabel: Clean up unused label types
Ben Gamari [Wed, 15 Nov 2017 16:39:11 +0000 (11:39 -0500)] 
CLabel: Clean up unused label types

Test Plan: Validate

Reviewers: trommler, simonmar

Reviewed By: trommler

Subscribers: rwbarton, thomie

GHC Trac Issues: #14454

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

22 months agoRTS: Disable warnings in ffi.h
Peter Trommler [Wed, 15 Nov 2017 16:38:50 +0000 (11:38 -0500)] 
RTS: Disable warnings in ffi.h

The update of GHC's in-tree libffi causes warnings about
undefined macros and hence validate fails.

Also mark broken tests that have a ticket.

Fixes #14353

Test Plan: ./validate (on AIX and powerpc if possible)

Reviewers: bgamari, hvr, erikd, simonmar

Reviewed By: bgamari

Subscribers: snowleopard, rwbarton, thomie

GHC Trac Issues: #14353, #11259, #14455, #11261

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

22 months agoAdds rts/rts.cabal.in file
Moritz Angermann [Wed, 15 Nov 2017 16:38:04 +0000 (11:38 -0500)] 
Adds rts/rts.cabal.in file

This is in preparation for cabalification of the `rts`. To be actually
able to parse this file, a rather recent Cabal is required. One after
commit 357d49d of haskell/cabal. The relevant PR to support the new
`asm-sources` and `cmm-sources` is haskell/cabal/pull/4857.

Not that this does *not* allow cabal to build the RTS. It does however
provide enough information such that cabal can `copy` and `register`
the package properly in the package database, if all the build
artifacts have been build properly.

As such it does not require any custom handling of the `rts` package.
As the rts as well as all the other packages built by the GHC built
system are built outside of cabal anyway.

Reviewers: bgamari, hvr, erikd, simonmar

Reviewed By: bgamari

Subscribers: rwbarton, thomie, erikd

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

22 months agoStaticPointers: Clarify documentation
Facundo Domínguez [Wed, 15 Nov 2017 16:37:32 +0000 (11:37 -0500)] 
StaticPointers: Clarify documentation

 * Document requirement to use the same binaries.
 * Fix some code comments.

Test Plan: ./validate

Reviewers: bgamari, mboes, hvr

Reviewed By: bgamari, mboes

Subscribers: rwbarton, thomie

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

22 months agoAdd new mbmi and mbmi2 compiler flags
John Ky [Wed, 15 Nov 2017 16:35:42 +0000 (11:35 -0500)] 
Add new mbmi and mbmi2 compiler flags

This adds support for the bit deposit and extraction operations provided
by the BMI and BMI2 instruction set extensions on modern amd64 machines.

Test Plan: Validate

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

Reviewed By: bgamari

Subscribers: goldfire, erikd, trommler, newhoggy, rwbarton, thomie

GHC Trac Issues: #14206

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

22 months agoTTG3 Combined Step 1 and 3 for Trees That Grow
Alan Zimmerman [Sun, 12 Nov 2017 19:56:16 +0000 (21:56 +0200)] 
TTG3 Combined Step 1 and 3 for Trees That Grow

Further progress on implementing Trees that Grow on hsSyn AST.

See https://ghc.haskell.org/trac/ghc/wiki/ImplementingTreesThatGrow

Trees that grow extension points are added for
  - Rest of HsExpr.hs

Updates haddock submodule

Test Plan: ./validate

Reviewers: bgamari, shayan-najd, goldfire

Subscribers: goldfire, rwbarton, thomie, mpickering

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

22 months agoA bit more tc-tracing
Simon Peyton Jones [Tue, 14 Nov 2017 09:21:39 +0000 (09:21 +0000)] 
A bit more tc-tracing

22 months agoFix a TyVar bug in the flattener
Simon Peyton Jones [Tue, 14 Nov 2017 09:16:22 +0000 (09:16 +0000)] 
Fix a TyVar bug in the flattener

A year ago I gave up on trying to rigorously separate TyVars
from TcTyVars, and instead allowed TyVars to appear rather more
freely in types examined by the constraint solver:

   commit 18d0bdd3848201882bae167e3b15fd797d217e93
   Author: Simon Peyton Jones <simonpj@microsoft.com>
   Date:   Wed Nov 23 16:00:00 2016 +0000

   Allow TyVars in TcTypes

See Note [TcTyVars in the typechecker] in TcType.

However, TcFlatten.flatten_tyvar1 turned out to treat
a TyVar specially, and implicitly assumed that it could
not have an equality constraint in the inert set.  Wrong!

This caused Trac #14450.  Fortunately it is easily fixed,
by deleting code.

22 months agoWIP on combined Step 1 and 3 for Trees That Grow, HsExpr
Alan Zimmerman [Thu, 9 Nov 2017 21:20:19 +0000 (23:20 +0200)] 
WIP on combined Step 1 and 3 for Trees That Grow, HsExpr

See https://ghc.haskell.org/trac/ghc/wiki/ImplementingTreesThatGrow

Trees that grow extension points are added for
- HsExpr

Updates haddock submodule

Test Plan: ./validate

Reviewers: bgamari, goldfire

Subscribers: rwbarton, thomie, shayan-najd, mpickering

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

22 months agoDeclare proper spec version in `base.cabal`
Herbert Valerio Riedel [Sat, 11 Nov 2017 16:40:15 +0000 (17:40 +0100)] 
Declare proper spec version in `base.cabal`

This is a follow-up to ba2ae2c8729d5aef2aeb7fb32d6c0ea2a465ea25
which started relying on a new Cabal feature requiring the
the cabal spec version declaration to be updated accordingly.

22 months agocircleci: Bump down thread count
Ben Gamari [Sat, 11 Nov 2017 16:45:37 +0000 (11:45 -0500)] 
circleci: Bump down thread count

It appears that our jobs generally run on VMs with 2 vCPUs. Consequently running
with 8 jobs will completely oversubscribe the machine. I suspect this is the
cause of #14453. Let's bump this down to 3 for now. Ideally we would determine
this from the environment.

22 months agoUse LICENSE instead of ../LICENSE in the compiler.cabal file
Moritz Angermann [Sat, 11 Nov 2017 15:56:10 +0000 (10:56 -0500)] 
Use LICENSE instead of ../LICENSE in the compiler.cabal file

Reviewers: bgamari

Reviewed By: bgamari

Subscribers: rwbarton, thomie

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

22 months agoAdds cmm-sources to base
Moritz Angermann [Sat, 11 Nov 2017 15:55:51 +0000 (10:55 -0500)] 
Adds cmm-sources to base

Bumps Cabal submodule.

Reviewers: bgamari, hvr

Reviewed By: bgamari

Subscribers: rwbarton, thomie

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

22 months agoWindows: Bump to GCC 7.2 for GHC 8.4
Tamar Christina [Sat, 11 Nov 2017 15:55:31 +0000 (10:55 -0500)] 
Windows: Bump to GCC 7.2 for GHC 8.4

GHC 8.4 is expected to ship with an updated GCC bindist based on GCC
7.2.

I am however at this time not updating the crt due to an issue
introduced in September.
https://sourceforge.net/p/mingw-w64/mailman/message/36085637/

Unless a favorable fix comes out of the discussion I will just ship the
old crt with GHC 8.4.

Test Plan: ./validate

Reviewers: austin, bgamari

Reviewed By: bgamari

Subscribers: thomie, rwbarton

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

22 months agoSquashed 'hadrian/' changes from 438dc576e7..5ebb69ae1e
Ben Gamari [Fri, 10 Nov 2017 14:28:36 +0000 (09:28 -0500)] 
Squashed 'hadrian/' changes from 438dc576e7..5ebb69ae1e

5ebb69ae1e Drop GccLtXX flags, require GCC > 4.7 and up (#450)

git-subtree-dir: hadrian
git-subtree-split: 5ebb69ae1eb063f25c59383bffb3b5449015c6f9

22 months agoMerge commit '5229c43ccf77bcbffeced01dccb27398d017fa34'
Ben Gamari [Fri, 10 Nov 2017 14:28:36 +0000 (09:28 -0500)] 
Merge commit '5229c43ccf77bcbffeced01dccb27398d017fa34'

22 months agoFix PPC NCG after blockID patch
Peter Trommler [Thu, 9 Nov 2017 22:55:01 +0000 (17:55 -0500)] 
Fix PPC NCG after blockID patch

Commit rGHC8b007ab assigns the same label to the first basic block
of a proc and to the proc entry point. This violates the PPC 64-bit ELF
v. 1.9 and v. 2.0 ABIs and leads to duplicate symbols.

This patch fixes duplicate symbols caused by block labels

In commit rGHCd7b8da1 an info table label is generated from a block id.
Getting the entry label from that info label leads to an undefined
symbol because a suffix "_entry" that is not present in the block label.

To fix that issue add a new info table label flavour for labels
derived from block ids. Converting such a label with toEntryLabel
produces the original block label.

Fixes #14311

Test Plan: ./validate

Reviewers: austin, bgamari, simonmar, erikd, hvr, angerman

Reviewed By: bgamari

Subscribers: rwbarton, thomie

GHC Trac Issues: #14311

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

22 months agoChange `OPTIONS_GHC -O` to `OPTIONS_GHC -O2`
Douglas Wilson [Thu, 9 Nov 2017 22:54:45 +0000 (17:54 -0500)] 
Change `OPTIONS_GHC -O` to `OPTIONS_GHC -O2`

These pragmas were having the perverse effect of having these
performance critical modules be LESS optimized in builds with -O2.

Test Plan: Check on gipedia whether this is worthwhile.

Reviewers: austin, bgamari

Reviewed By: bgamari

Subscribers: rwbarton, thomie

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

22 months agotestsuite: Add test for #5889
Douglas Wilson [Thu, 9 Nov 2017 22:54:28 +0000 (17:54 -0500)] 
testsuite: Add test for #5889

Test Plan: make test TEST=5889

Reviewers: austin, bgamari

Reviewed By: bgamari

Subscribers: rwbarton, thomie

GHC Trac Issues: #5889

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

22 months agoRemove unreliable Core Lint empty case checks
David Feuer [Thu, 9 Nov 2017 22:54:11 +0000 (17:54 -0500)] 
Remove unreliable Core Lint empty case checks

Trac #13990 shows that the Core Lint checks for empty case are
unreliable, and very hard to make reliable. The consensus (among
simonpj, nomeata, and goldfire) seems to be that they should be
removed altogether. Do that.

Add test

Reviewers: goldfire, bgamari

Reviewed By: bgamari

Subscribers: rwbarton, thomie

GHC Trac Issues: #13990

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

22 months agoUpdate comment in GHC.Real (trac#14432)
Bodigrim [Thu, 9 Nov 2017 22:53:57 +0000 (17:53 -0500)] 
Update comment in GHC.Real (trac#14432)

Reviewers: hvr, bgamari

Reviewed By: bgamari

Subscribers: rwbarton, thomie

GHC Trac Issues: #14432

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

22 months agobase: Fix #14425
Ben Gamari [Thu, 9 Nov 2017 22:53:39 +0000 (17:53 -0500)] 
base: Fix #14425

Test Plan: Validate

Reviewers: hvr

Subscribers: rwbarton, thomie

GHC Trac Issues: #14425

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

22 months agobase: Normalize style of approxRational
Ben Gamari [Thu, 9 Nov 2017 22:53:24 +0000 (17:53 -0500)] 
base: Normalize style of approxRational

Stumbled upon this odd bit of style while looking at #14425. Usually I
don't like to do this sort of reformatting, but this seemed like it
would be necessary in the course fo fixing #14425.

Reviewers: hvr

Subscribers: rwbarton, thomie

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

22 months agobase: Add test for #14425
Ben Gamari [Thu, 9 Nov 2017 22:52:26 +0000 (17:52 -0500)] 
base: Add test for #14425

Test Plan: Validate

Reviewers: hvr

Subscribers: rwbarton, thomie

GHC Trac Issues: #14425

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

22 months agoMerge initial Hadrian snapshot
Ben Gamari [Thu, 9 Nov 2017 22:50:42 +0000 (17:50 -0500)] 
Merge initial Hadrian snapshot

We will continue to pull in squashed snapshots periodically until we
eventually discontinue development in Hadrian's GitHub repository.

22 months agoUpdate Win32 version for GHC 8.4.
Tamar Christina [Wed, 8 Nov 2017 06:21:16 +0000 (01:21 -0500)] 
Update Win32 version for GHC 8.4.

Update to Win32 2.6 which is the expected version release for 8.4

This involves moving Cabal forward which brings some backwards incompatible
changes that needs various fixups.

Bump a bunch of submodules

Test Plan: ./validate

Reviewers: austin, bgamari, angerman

Reviewed By: bgamari, angerman

Subscribers: angerman, thomie, rwbarton

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

22 months agotestsuite: Fix output of T14394
Ben Gamari [Thu, 9 Nov 2017 22:07:53 +0000 (17:07 -0500)] 
testsuite: Fix output of T14394

22 months agoRemove left-overs from compareByteArray# inline conversion
Herbert Valerio Riedel [Wed, 8 Nov 2017 23:38:53 +0000 (00:38 +0100)] 
Remove left-overs from compareByteArray# inline conversion

These removes left-overs from e3ba26f8b49700b41ff4672f3f7f6a4e453acdcc
where I implemented `compareByteArray#` as an out-of-line primop, which
got optimised into an inline primop shortly afterwards
(as per 7673561555ae354fd9eed8de1e57c681906e2d49).

22 months agoInvoke lintUnfolding only on top-level unfoldings (#14430)
Joachim Breitner [Wed, 8 Nov 2017 03:17:50 +0000 (22:17 -0500)] 
Invoke lintUnfolding only on top-level unfoldings (#14430)

as nested unfoldings are linted together with the top-level unfolding,
and lintUnfolding does the wrong things for nestd unfoldings that
mention join points.

The easiest way of doing that was to pass a TopLevel flag through
`tcUnfolding`, which is invoked both for top level and nested
unfoldings.

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

22 months agoWIP on Doing a combined Step 1 and 3 for Trees That Grow
Alan Zimmerman [Sun, 5 Nov 2017 19:49:11 +0000 (21:49 +0200)] 
WIP on Doing a combined Step 1 and 3 for Trees That Grow

See https://ghc.haskell.org/trac/ghc/wiki/ImplementingTreesThatGrow

Trees that grow extension points are added for
- ValBinds
- HsPat
- HsLit
- HsOverLit
- HsType
- HsTyVarBndr
- HsAppType
- FieldOcc
- AmbiguousFieldOcc

Updates haddock submodule

Test Plan: ./validate

Reviewers: shayan-najd, simonpj, austin, goldfire, bgamari

Subscribers: goldfire, rwbarton, thomie, mpickering

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

22 months agoFix in-scope set in simplifier
Simon Peyton Jones [Wed, 8 Nov 2017 11:09:33 +0000 (11:09 +0000)] 
Fix in-scope set in simplifier

This patch fixes Trac #14408.  The problem was that the StaticEnv
field of an ApplyToVar or Select continuation didn't have enough
variables in scope.  The fix is simple, and I documented the
invariant in Note [StaticEnv invariant] in SimplUtils.

No change in behaviour: this just stops an ASSERT from tripping.

22 months agoMinimise provided dictionaries in pattern synonyms
Simon Peyton Jones [Wed, 8 Nov 2017 08:52:06 +0000 (08:52 +0000)] 
Minimise provided dictionaries in pattern synonyms

Trac #14394 showed that it's possible to get redundant
constraints in the inferred provided constraints of a pattern
synonym.  This patch removes the redundancy with mkMinimalBySCs.

To do this I had to generalise the type of mkMinimalBySCs slightly.
And, to reduce confusing reversal, I made it stable: it now returns
its result in the same order as its input.  That led to a raft of
error message wibbles, mostly for the better.

22 months agoFix another dark corner in the shortcut solver
Simon Peyton Jones [Wed, 8 Nov 2017 08:45:53 +0000 (08:45 +0000)] 
Fix another dark corner in the shortcut solver

The shortcut solver for type classes (Trac #12791) was eagerly
solving a constaint from an OVERLAPPABLE instance. It happened
to be the only one in scope, so it was unique, but since it's
specfically flagged as overlappable it's really a bad idea to
solve using it, rather than using the Given dictionary.

This led to Trac #14434, a nasty and hard to identify bug.

22 months agoImrpove comments about equality types
Simon Peyton Jones [Wed, 8 Nov 2017 08:23:53 +0000 (08:23 +0000)] 
Imrpove comments about equality types

22 months agoMerge remote-tracking branch 'github/pr/83'
Ben Gamari [Wed, 8 Nov 2017 06:18:44 +0000 (01:18 -0500)] 
Merge remote-tracking branch 'github/pr/83'

22 months agobase: Escape \ in CallStack example
Chris Martin [Tue, 7 Nov 2017 02:18:49 +0000 (21:18 -0500)] 
base: Escape \ in CallStack example

[skip ci]

22 months agoUpdate link to Haskeline user preferences
Taylor Fausak [Tue, 7 Nov 2017 04:21:19 +0000 (22:21 -0600)] 
Update link to Haskeline user preferences

Unfortunately trac.haskell.org doesn't exist anymore.

[skip ci]

22 months agoRevert "WIP on combining Step 1 and 3 of Trees That Grow"
Ben Gamari [Tue, 7 Nov 2017 16:50:36 +0000 (11:50 -0500)] 
Revert "WIP on combining Step 1 and 3 of Trees That Grow"

This reverts commit 0ff152c9e633accca48815e26e59d1af1fe44ceb.

Sadly this broke when bootstrapping with 8.0.2 due to #14396.

Reverts haddock submodule.

22 months agorelnotes: Note enabling of -fllvm-pass-vectorse-in-regs
Ben Gamari [Tue, 7 Nov 2017 14:58:59 +0000 (09:58 -0500)] 
relnotes: Note enabling of -fllvm-pass-vectorse-in-regs

[skip ci]

22 months agorelnotes: Clarify a few things
Ben Gamari [Tue, 7 Nov 2017 14:55:02 +0000 (09:55 -0500)] 
relnotes: Clarify a few things

[skip ci]

22 months agotestsuite: Bump haddock.compiler allocations
Ben Gamari [Tue, 7 Nov 2017 14:02:39 +0000 (09:02 -0500)] 
testsuite: Bump haddock.compiler allocations

This is due to alanz's recent trees that grow patch, almost certainly because of
the increased surface area of libghc.

22 months agoFactor out builds into steps. Address ghc/ghc#83 comments.
Mateusz Kowalczyk [Tue, 7 Nov 2017 10:52:38 +0000 (10:52 +0000)] 
Factor out builds into steps. Address ghc/ghc#83 comments.

This should greatly improve log output.

22 months agoRevert "Sdist -> bindist -> tests"
Mateusz Kowalczyk [Thu, 2 Nov 2017 11:15:11 +0000 (11:15 +0000)] 
Revert "Sdist -> bindist -> tests"

This reverts commit e1d38d6f7decee1e513d44bb3bce08bd004bfa4d.

22 months agoSdist -> bindist -> tests
Mateusz Kowalczyk [Fri, 27 Oct 2017 18:02:33 +0000 (19:02 +0100)] 
Sdist -> bindist -> tests

22 months agoSet up AppVeyor, Windows CI.
Mateusz Kowalczyk [Fri, 27 Oct 2017 13:28:43 +0000 (14:28 +0100)] 
Set up AppVeyor, Windows CI.

22 months agoSet up Linux, OSX and FreeBSD on CircleCI.
Mateusz Kowalczyk [Fri, 27 Oct 2017 17:14:06 +0000 (18:14 +0100)] 
Set up Linux, OSX and FreeBSD on CircleCI.

22 months agoWIP on combining Step 1 and 3 of Trees That Grow
Alan Zimmerman [Sun, 5 Nov 2017 19:49:11 +0000 (21:49 +0200)] 
WIP on combining Step 1 and 3 of Trees That Grow

See https://ghc.haskell.org/trac/ghc/wiki/ImplementingTreesThatGrow

Trees that grow extension points are added for
- ValBinds
- HsPat
- HsLit
- HsOverLit
- HsType
- HsTyVarBndr
- HsAppType
- FieldOcc
- AmbiguousFieldOcc

Updates haddock submodule

Test Plan: ./validate

Reviewers: shayan-najd, simonpj, austin, goldfire, bgamari

Subscribers: goldfire, rwbarton, thomie, mpickering

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

22 months agoMerge commit '7b0b9f603bb1215e2b7af23c2404d637b95a4988' as 'hadrian'
Andrey Mokhov [Mon, 6 Nov 2017 22:59:38 +0000 (22:59 +0000)] 
Merge commit '7b0b9f603bb1215e2b7af23c2404d637b95a4988' as 'hadrian'

22 months agoSquashed 'hadrian/' content from commit 438dc57
Andrey Mokhov [Mon, 6 Nov 2017 22:59:37 +0000 (22:59 +0000)] 
Squashed 'hadrian/' content from commit 438dc57

git-subtree-dir: hadrian
git-subtree-split: 438dc576e7b84c473a09d1d7ec7798a30303bc4e

22 months agobase: Add examples to Bifunctor documentation
Julie Moronuki [Wed, 1 Nov 2017 03:28:46 +0000 (23:28 -0400)] 
base: Add examples to Bifunctor documentation

22 months agoSpecialise lcm :: Word -> Word -> Word (trac#14424)
Bodigrim [Mon, 6 Nov 2017 19:49:11 +0000 (21:49 +0200)] 
Specialise lcm :: Word -> Word -> Word (trac#14424)

22 months agoUpdate autoconf test for gcc to require 4.7 and up
Peter Trommler [Mon, 6 Nov 2017 20:35:30 +0000 (15:35 -0500)] 
Update autoconf test for gcc to require 4.7 and up

Fixing #14244 required the newer gcc atomic built-ins that are provided
from 4.7 and up. This updates the test to check for minimum gcc version
4.7.

The version tests for 3.4 (!), 4.4, and 4.6 are no longer needed and can
be removed. This makes the build system simpler.

Test Plan: validate

Reviewers: austin, bgamari, hvr, simonmar

Reviewed By: bgamari

Subscribers: rwbarton, thomie, erikd

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

22 months agoDynFlags: Introduce -show-mods-loaded flag
Ben Gamari [Mon, 6 Nov 2017 20:35:19 +0000 (15:35 -0500)] 
DynFlags: Introduce -show-mods-loaded flag

This flag reintroduces the verbose module name output produced by GHCi's
:load command behind a new flag, -show-mods-loaded. This was originally
removed in D3651 but apparently some tools (e.g. haskell-mode) rely on
this output.

Addresses #14427.

Test Plan: Validate

Reviewers: svenpanne

Reviewed By: svenpanne

Subscribers: rwbarton, thomie

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

22 months agoUpdate ErrorCall documentation for the location argument
Ömer Sinan Ağacan [Mon, 6 Nov 2017 20:35:08 +0000 (15:35 -0500)] 
Update ErrorCall documentation for the location argument

Reviewers: hvr, bgamari

Reviewed By: bgamari

Subscribers: rwbarton, thomie

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

22 months agoTypo in glasgow_exts.rst
Douglas Wilson [Mon, 6 Nov 2017 20:34:51 +0000 (15:34 -0500)] 
Typo in glasgow_exts.rst

Reviewers: austin, bgamari

Reviewed By: bgamari

Subscribers: rwbarton, thomie

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

22 months agocmm/CBE: Fix a few more zip uses
Ben Gamari [Mon, 6 Nov 2017 20:34:37 +0000 (15:34 -0500)] 
cmm/CBE: Fix a few more zip uses

Ensure that we don't consider lists of equal length to be equal when
they are not. I noticed these while working on the fix for #14361.

Reviewers: austin, simonmar, michalt

Reviewed By: michalt

Subscribers: rwbarton, thomie

GHC Trac Issues: #14361

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

22 months agocmm/CBE: Fix comparison between blocks of different lengths
Ben Gamari [Mon, 6 Nov 2017 20:33:26 +0000 (15:33 -0500)] 
cmm/CBE: Fix comparison between blocks of different lengths

Previously CBE computed equality by taking the lists of middle nodes of
the blocks being compared and zipping them together. It would then map
over this list with the equality relation, and accumulate the result.

However, this is completely wrong: Consider what will happen when we
compare a block with no middle nodes with one with one or more. The
result of `zip` will be empty and consequently the pass may conclude
that the two are indeed equivalent (if their last nodes also match).
This is very bad and the cause of #14361.

The solution I chose was just to write out an explicit recursion, like I
distinctly recall considering doing when I first wrote this code.
Unfortunately I was feeling clever at the time.

Unfortunately this case was just rare enough not to be triggered by the
testsuite. I still need to find a testcase that doesn't have external
dependencies.

Test Plan: Need to find a more minimal testcase

Reviewers: austin, simonmar, michalt

Reviewed By: michalt

Subscribers: michalt, rwbarton, thomie, hvr

GHC Trac Issues: #14361

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

22 months agorts/win32: Emit exception handler output to stderr
Ben Gamari [Mon, 6 Nov 2017 20:33:18 +0000 (15:33 -0500)] 
rts/win32: Emit exception handler output to stderr

Test Plan: Validate

Reviewers: Phyx, austin, erikd, simonmar

Reviewed By: Phyx

Subscribers: rwbarton, thomie

GHC Trac Issues: #14415

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

22 months agotestsuite: Bump metrics of haddock.Cabal
Ben Gamari [Mon, 6 Nov 2017 20:23:45 +0000 (15:23 -0500)] 
testsuite: Bump metrics of haddock.Cabal

22 months agoClean up comments about match algorithm a bit.
klebinger.andreas@gmx.at [Sun, 29 Oct 2017 19:26:51 +0000 (20:26 +0100)] 
Clean up comments about match algorithm a bit.

22 months agochange example from msum to mfilter
Julie Moronuki [Tue, 31 Oct 2017 05:15:41 +0000 (01:15 -0400)] 
change example from msum to mfilter

22 months agoFix documentation and comment issues
Cyd Parser [Wed, 1 Nov 2017 06:13:50 +0000 (23:13 -0700)] 
Fix documentation and comment issues

22 months agoDeserialize all function TypeReps
David Feuer [Thu, 2 Nov 2017 21:30:59 +0000 (17:30 -0400)] 
Deserialize all function TypeReps

Previously, we could only deserialize `TypeRep (a -> b)` if
both `a` and `b` had kind `Type`. Now, we do it regardless of
their runtime representations.

Reviewers: austin, bgamari

Reviewed By: bgamari

Subscribers: rwbarton, thomie

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

22 months agoName TypeRep constructor fields
David Feuer [Thu, 2 Nov 2017 21:30:23 +0000 (17:30 -0400)] 
Name TypeRep constructor fields

Give `TypeRep` constructor fields names, and use them when pattern
matching and constructing values. This is a bit verbose, but makes
it obvious which field means what.

Reviewers: austin, hvr, bgamari

Reviewed By: bgamari

Subscribers: rwbarton, thomie

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

22 months agoBump haddock submodule
alexbiehl [Thu, 2 Nov 2017 21:29:08 +0000 (17:29 -0400)] 
Bump haddock submodule

Reviewers: austin, bgamari

Subscribers: rwbarton, thomie

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

22 months agollvmGen: Pass vector arguments in vector registers by default
Ben Gamari [Thu, 2 Nov 2017 21:28:40 +0000 (17:28 -0400)] 
llvmGen: Pass vector arguments in vector registers by default

Earlier this year Edward Kmett requested [1] that we enable passing of
vector values in vector registers by default. The GHC calling convention
changes have been in LLVM for a number of years now so let's just flip
the switch.

[1] https://mail.haskell.org/pipermail/ghc-devs/2017-March/013905.html

Reviewers: austin

Subscribers: rwbarton, thomie

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

22 months agoCmmSink: Use a IntSet instead of a list
alexbiehl [Thu, 2 Nov 2017 21:27:37 +0000 (17:27 -0400)] 
CmmSink: Use a IntSet instead of a list

CmmProcs which have *lots* of local variables take a considerable
amount of time in CmmSink. This was noticed by @tdammers in #7258
while compiling files with large records (~200-400 fields).

Before:

```
        Sun Oct 29 19:58 2017 Time and Allocation Profiling Report (Final)

           ghc-stage2 +RTS -p -RTS
-B/Users/alexbiehl/git/ghc/inplace/lib /Users/alexbiehl/Downloads/W2.hs
-fforce-recomp -O2

        total time  =       26.00 secs   (25996 ticks @ 1000 us, 1 processor)
        total alloc = 14,921,627,912 bytes  (excludes profiling overheads)

COST CENTRE     MODULE      SRC %time %alloc

sink            CmmPipeline
compiler/cmm/CmmPipeline.hs:(104,13)-(105,59)        55.7   15.9
SimplTopBinds   SimplCore   compiler/simplCore/SimplCore.hs:761:39-74 19.5   30.6
FloatOutwards   SimplCore   compiler/simplCore/SimplCore.hs:471:40-66 4.2    9.0
RegAlloc-linear AsmCodeGen compiler/nativeGen/AsmCodeGen.hs:(658,27)-(660,55)    4.0   11.1
pprNativeCode   AsmCodeGen compiler/nativeGen/AsmCodeGen.hs:(529,37)-(530,65)    2.8    6.3
NewStranal      SimplCore   compiler/simplCore/SimplCore.hs:480:40-63 1.6    3.7
OccAnal         SimplCore compiler/simplCore/SimplCore.hs:(739,22)-(740,67)     1.5    3.5
StgCmm          HscMain compiler/main/HscMain.hs:(1426,13)-(1427,62)          1.2    2.4
regLiveness     AsmCodeGen compiler/nativeGen/AsmCodeGen.hs:(591,17)-(593,52)    1.2    1.9
genMachCode     AsmCodeGen compiler/nativeGen/AsmCodeGen.hs:(580,17)-(582,62)    0.9    1.8
NativeCodeGen   CodeOutput  compiler/main/CodeOutput.hs:171:18-78 0.9    2.1
CoreTidy        HscMain     compiler/main/HscMain.hs:1253:27-67 0.8    1.9
```

After:

```
        Sun Oct 29 19:18 2017 Time and Allocation Profiling Report (Final)

           ghc-stage2 +RTS -p -RTS
-B/Users/alexbiehl/git/ghc/inplace/lib /Users/alexbiehl/Downloads/W2.hs
-fforce-recomp -O2

        total time  =       13.31 secs   (13307 ticks @ 1000 us, 1 processor)
        total alloc = 15,772,184,488 bytes  (excludes profiling overheads)

COST CENTRE     MODULE         SRC %time %alloc

SimplTopBinds   SimplCore
compiler/simplCore/SimplCore.hs:761:39-74            38.3   29.0
sink            CmmPipeline compiler/cmm/CmmPipeline.hs:(104,13)-(105,59)        13.2   20.3
RegAlloc-linear AsmCodeGen compiler/nativeGen/AsmCodeGen.hs:(658,27)-(660,55)    8.3   10.5
FloatOutwards   SimplCore compiler/simplCore/SimplCore.hs:471:40-66             8.1    8.5
pprNativeCode   AsmCodeGen compiler/nativeGen/AsmCodeGen.hs:(529,37)-(530,65)    5.4    5.9
NewStranal      SimplCore compiler/simplCore/SimplCore.hs:480:40-63             3.1    3.5
OccAnal         SimplCore compiler/simplCore/SimplCore.hs:(739,22)-(740,67)     2.9    3.3
StgCmm          HscMain compiler/main/HscMain.hs:(1426,13)-(1427,62)          2.3    2.3
regLiveness     AsmCodeGen compiler/nativeGen/AsmCodeGen.hs:(591,17)-(593,52)    2.1    1.8
NativeCodeGen   CodeOutput     compiler/main/CodeOutput.hs:171:18-78 1.7    2.0
genMachCode     AsmCodeGen compiler/nativeGen/AsmCodeGen.hs:(580,17)-(582,62)    1.6    1.7
CoreTidy        HscMain        compiler/main/HscMain.hs:1253:27-67 1.4    1.8
foldNodesBwdOO  Hoopl.Dataflow compiler/cmm/Hoopl/Dataflow.hs:(397,1)-(403,17)       1.1    0.8
```

Reviewers: austin, bgamari, simonmar

Reviewed By: bgamari

Subscribers: duog, rwbarton, thomie, tdammers

GHC Trac Issues: #7258

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

22 months agorts/PrimOps.cmm: add declaration for heapOverflow closure
Sergei Trofimovich [Thu, 2 Nov 2017 23:07:57 +0000 (23:07 +0000)] 
rts/PrimOps.cmm: add declaration for heapOverflow closure

Before the change UNREG ghc build failed as:
```
  rts_dist_HC rts/dist/build/PrimOps.o
/tmp/ghc2370_0/ghc_4.hc: In function 'stg_newByteArrayzh':

/tmp/ghc2370_0/ghc_4.hc:26:13: error:
     error: 'base_GHCziIOziException_heapOverflow_closure'
         undeclared (first use in this function)
     R1.w = (W_)&base_GHCziIOziException_heapOverflow_closure;
                 ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   |
26 | R1.w = (W_)&base_GHCziIOziException_heapOverflow_closure;
   |             ^
```

It's an UNREG-specific failure because C backend always requires
declarations to be known.

Added missing declaration.

Signed-off-by: Sergei Trofimovich <slyfox@gentoo.org>
22 months agoRevert "Move check-ppr and check-api-annotations to testsuite/utils"
Ben Gamari [Thu, 2 Nov 2017 18:35:01 +0000 (14:35 -0400)] 
Revert "Move check-ppr and check-api-annotations to testsuite/utils"

Unfortunately this (ironically) ended up breaking bindist testing since
we didn't have a package-data.mk. Unfortunately there is no easy way to
fix this.

This reverts commit 1e9f90af7311c33de0f7f5b7dba594725596d675.

22 months agoFix atomicread/write operations
Peter Trommler [Thu, 2 Nov 2017 17:34:41 +0000 (13:34 -0400)] 
Fix atomicread/write operations

In `libraries/ghc-prim/cbits/atomic.c` no barriers were issued for
atomic read and write operations. Starting with gcc 4.7 compiler
intrinsics are offered. The atomic intrinisics are also available in
clang. Use these to implement `hs_atomicread*` and `hs_atomicwrite`.

Test Plan: validate on OSX and Windows

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

Reviewed By: bgamari

Subscribers: dfeuer, rwbarton, thomie

GHC Trac Issues: #14244

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

22 months agoIntroduce -dsuppress-stg-free-vars flag
Ben Gamari [Thu, 2 Nov 2017 17:32:21 +0000 (13:32 -0400)] 
Introduce -dsuppress-stg-free-vars flag

This breaks out control over STG free variable list output from
-dppr-debug into its own distinct flag. This makes it more discoverable
and easier to change independently from other dump output.

Test Plan: Validate

Reviewers: austin

Subscribers: rwbarton, thomie

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

22 months agoTcRnDriver: Bracket family instance consistency output in -ddump-rn-trace
Ben Gamari [Thu, 2 Nov 2017 16:07:50 +0000 (12:07 -0400)] 
TcRnDriver: Bracket family instance consistency output in -ddump-rn-trace

Reviewers: austin

Subscribers: rwbarton, thomie

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

22 months agoAdd custom exception for fixIO
David Feuer [Thu, 2 Nov 2017 16:06:56 +0000 (12:06 -0400)] 
Add custom exception for fixIO

Traditionally, `fixIO f` throws `BlockedIndefinitelyOnMVar` if
`f` is strict. This is not particularly friendly, since the
`MVar` in question is just part of the way `fixIO` happens to be
implemented. Instead, throw a new `FixIOException` with a better
explanation of the problem.

Reviewers: austin, hvr, bgamari

Subscribers: rwbarton, thomie

GHC Trac Issues: #14356

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

22 months agoUse proper Unique for Name
alexbiehl [Thu, 2 Nov 2017 16:06:21 +0000 (12:06 -0400)] 
Use proper Unique for Name

I noticed this while tinkering in haddock. This might be a relict from
ancient times where newtypes wouldn't optimize well.

Reviewers: austin, bgamari

Reviewed By: bgamari

Subscribers: rwbarton, thomie

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