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

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

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

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

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

Reviewed By: austin, hvr

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

GHC Trac Issues: #10138

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

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

Reviewed By: ezyang

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

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

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

Summary: Add MonadZip Alt and MonadFix Alt instances

Reviewers: ekmett, dfeuer, hvr, austin

Reviewed By: austin

Subscribers: thomie

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

GHC Trac Issues: #10107

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

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

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

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

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

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

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

No change in behaviour

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

This got broken in commit 5258566.

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

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

Patch-from: Karel Gardas <karel.gardas@centrum.cz>

Reviewers: kgardas, austin

Subscribers: thomie

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

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

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

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

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

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

Reviewed By: austin

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

GHC Trac Issues: #9963

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

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

Reviewed by: austin

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

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

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

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

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

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

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

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

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

This fixes breakage introduced via
47b5b5c2b2c92ba091313c36489588edadceaa9d

Signed-off-by: Edward Z. Yang <ezyang@cs.stanford.edu>
Reviewed By: hvr

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

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

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

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

This addresses #10110

TODO: regression test

Reviewed By: hvr

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

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

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

This patch moves the definition of `strip_quotes` to testutil.py, which
is imported at the very top of testlib.py. This unbreaks the nightly
builders.

Reviewed By: austin

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

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

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

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

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

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

Contributions by Ben Gamari, Joachim Breitner and Reid Barton.

Reviewers: nomeata, bgamari, austin, rwbarton

Subscribers: thomie

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

GHC Trac Issues: #8976 #9873

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

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

Reviewers: austin

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

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

Reviewers: austin

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

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

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

Update hpc submodule (test cleanup)

Reviewers: austin

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

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

This is a follow-up change to 56e0ac98c3a439b8757a2e886db259270bdc85f0

See also discussion at
https://groups.google.com/d/msg/haskell-core-libraries/e9N3U6nJeQE/V-TvG3G-3x4J

Reviewed By: simonpj

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

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

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

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

This changes the library file name format

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

Signed-off-by: Edward Z. Yang <ezyang@cs.stanford.edu>
Reviewed By: austin

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

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

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

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

Signed-off-by: Edward Z. Yang <ezyang@cs.stanford.edu>
Reviewers: austin

Subscribers: thomie

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

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

Summary:
[skip-ci]

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

Reviewers: austin, bgamari

Subscribers: thomie

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

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

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

The GHC 7.10 tree was pointing to slightly newer commits

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

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

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

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

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

Test Plan:
    Compile and run on x86, x86_64, powerpc and arm:
    testsuite/tests/concurrent/should_run/AtomicPrimops.hs

Reviewers: tibbe, austin

Subscribers: thomie

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

GHC Trac Issues: #9886

4 years agoChanges to Safe Haskell documentation from feedback (#10140).
David Terei [Tue, 10 Mar 2015 03:55:52 +0000 (20:55 -0700)] 
Changes to Safe Haskell documentation from feedback (#10140).

4 years agoMerge branch 'master' of git://git.haskell.org/ghc
Andreas Voellmy [Mon, 9 Mar 2015 22:27:54 +0000 (18:27 -0400)] 
Merge branch 'master' of git://git.haskell.org/ghc

4 years agoRTS/IOManager: fix trac issue #9722.
Andreas Voellmy [Mon, 9 Mar 2015 22:27:41 +0000 (18:27 -0400)] 
RTS/IOManager: fix trac issue #9722.

Summary:
Whenever the RTS has been inactive for idleGCDelayTime, the idle timer
fires and calls wakeUpRts(), which in turn calls ioManagerWakeup(),
which in turn writes a byte (or a few) to a file descriptor (stored in
the io_manager_wakeup_fd variable) registered by the TimerManager and
on which the TimerManager will wait. (Note that the write will only
occur if the file descriptor is non-negative.) When the RTS shuts
down, it shuts down the TimerManager, and in this process the file
descriptor stored in io_manager_wakeup_fd is closed. In the error
case, the idle timer fires after the close of the file occurs, and
then the write() call in ioManagerWakeup() fails and the
aforementioned error message gets printed.

This patch solves the problem by (1) having the TimerManager (via
Control) write -1 to io_manager_wakeup_fd just before closing the file
descriptor written in io_manager_wakeup_fd, and (2) having
ioManagerWakeup() ignore an error returned by write() in the case that
the write returned -1 and the io_manager_wakeup_fd is -1.

Reviewers: austin, simonmar, hvr, thomie

Reviewed By: thomie

Subscribers: thomie

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

GHC Trac Issues: #9722

4 years agoRefactor Digraph to use Data.Graph when possible
Edward Z. Yang [Fri, 6 Mar 2015 21:43:31 +0000 (13:43 -0800)] 
Refactor Digraph to use Data.Graph when possible

Summary: This just rewrites the IntGraph data type.

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

Reviewers: austin

Subscribers: thomie

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

4 years agoRevert "Refactor Digraph to use Data.Graph when possible"
Edward Z. Yang [Mon, 9 Mar 2015 20:14:13 +0000 (13:14 -0700)] 
Revert "Refactor Digraph to use Data.Graph when possible"

This breaks the build with GHC 7.6 bootstrapping, since the Functor SCC
instance is not available.

This reverts commit c439af5f5baa2c8af3434652554135230edbf5c3.

4 years agoFix `ghc --make -fhpc` with imported lhs modules
Thomas Miedema [Tue, 3 Mar 2015 22:03:44 +0000 (23:03 +0100)] 
Fix `ghc --make -fhpc` with imported lhs modules

See Note [Don't normalise input filenames] in
`compiler/main/DriverPipeline.hs`. Fixes #2991.

Reviewers: austin

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

4 years agoRemove obsolete comment in cmmOffset
Joachim Breitner [Mon, 9 Mar 2015 15:04:42 +0000 (16:04 +0100)] 
Remove obsolete comment in cmmOffset

Summary:
as obviously, the code does _not_ adhere to the comment, and yet the
compiler does _not_ go into an infinite loop.

Test Plan: Run validate

Reviewers: austin

Subscribers: thomie

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

4 years agoRefactor Digraph to use Data.Graph when possible
Edward Z. Yang [Fri, 6 Mar 2015 21:43:31 +0000 (13:43 -0800)] 
Refactor Digraph to use Data.Graph when possible

Summary: This just rewrites the IntGraph data type.

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

Reviewers: austin

Subscribers: thomie

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

4 years agohsc2hs: update submodule
Austin Seipp [Mon, 9 Mar 2015 18:52:14 +0000 (13:52 -0500)] 
hsc2hs: update submodule

This includes the fix for #9524.

Signed-off-by: Austin Seipp <austin@well-typed.com>
4 years agoUpdate process submodule
Thomas Miedema [Sun, 8 Mar 2015 14:39:16 +0000 (15:39 +0100)] 
Update process submodule

Summary:
Rename `SysTools.readCreateProcess`.

Functions `readCreateProcess` and `readCreateProcessWithExitCode` were added
to `System.Process`, the former of which conflicts with
`SysTools.readCreateProcess`.

Reviewed by: austin

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

4 years agoAdd `GHC.OldList` legacy module
Herbert Valerio Riedel [Sat, 7 Mar 2015 22:31:27 +0000 (23:31 +0100)] 
Add `GHC.OldList` legacy module

This module provides access the list-specialised versions for legacy purposes
(such as implementing Haskell2010-ish preludes). This module basically
re-exports the hidden `Data.OldList` module (but in the less controversial `GHC.*`
namespace, which signals less committment to keep this module around).

This is legacy module is mostly for GHC 7.10's sake. What becomes long-term
of `GHC.OldList` can be decided unhurriedly during the GHC 7.12 development
cycle.

Reviewed By: austin

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

4 years agoDefine proper `MINIMAL` pragma for `class Ix`
Herbert Valerio Riedel [Sat, 7 Mar 2015 22:15:07 +0000 (23:15 +0100)] 
Define proper `MINIMAL` pragma for `class Ix`

Summary: This addresses #10142

Reviewers: goldfire, austin, ekmett

Reviewed By: austin, ekmett

Subscribers: thomie

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

GHC Trac Issues: #10142

4 years agobase: drop redundant Typeable derivings
Herbert Valerio Riedel [Sat, 7 Mar 2015 19:42:21 +0000 (20:42 +0100)] 
base: drop redundant Typeable derivings

Thanks to #9858 `Typeable` doesn't need to be explicitly derived anymore.
This also makes `AutoDeriveTypeable` redundant, as well as some imports of
`Typeable` (removal of whose may be beneficial to #9707). This commit
removes several such now redundant use-sites in `base`.

Reviewed By: austin, ekmett

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

4 years agoStore renamings as (ModuleName, ModuleName) pairs.
Edward Z. Yang [Sat, 7 Mar 2015 04:01:12 +0000 (20:01 -0800)] 
Store renamings as (ModuleName, ModuleName) pairs.

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

Test Plan: validate

Reviewers: austin, simonpj

Subscribers: thomie

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

4 years agobuild: fix 'make help'
Austin Seipp [Sat, 7 Mar 2015 17:18:44 +0000 (11:18 -0600)] 
build: fix 'make help'

Summary:
This fixes the usage of `make help` in the top-level and subdirectories.

Signed-off-by: Austin Seipp <austin@well-typed.com>
Test Plan: It worked now and didn't before.

Reviewers: hvr

Reviewed By: hvr

Subscribers: thomie

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

4 years agoDynamically link all loaded packages in new object
Peter Trommler [Sat, 7 Mar 2015 17:13:37 +0000 (11:13 -0600)] 
Dynamically link all loaded packages in new object

Summary:
As a result of fixing #8935 we needed to open shared libraries
with RTLD_LOCAL and so symbols from packages loaded earlier
cannot be found anymore. We need to include in the link all
packages loaded so far.

This fixes #10058

Test Plan: validate

Reviewers: hvr, simonmar, austin

Reviewed By: austin

Subscribers: rwbarton, thomie

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

GHC Trac Issues: #10058

4 years agoImprove core linter so it catches unsafeCoerce problems (T9122)
Alexander Vershilov [Sat, 7 Mar 2015 17:13:12 +0000 (11:13 -0600)] 
Improve core linter so it catches unsafeCoerce problems (T9122)

Summary:
This is a draft of the patch that is sent for review.

In this patch required changes in linter were introduced
and actual check:

 - new helper function: primRepSizeB
 - primRep check for floating
 - Add access to dynamic flags in linter.
 - Implement additional lint rules.

Reviewers: austin, goldfire, simonpj

Reviewed By: simonpj

Subscribers: thomie

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

GHC Trac Issues: #9122

4 years agoDon't assume tools are in same directory as ghc in some cases
Phil Ruffwind [Sat, 7 Mar 2015 17:04:00 +0000 (11:04 -0600)] 
Don't assume tools are in same directory as ghc in some cases

Summary: Tools such as `ghc-pkg` and `runghc` are no longer required to be in the same directory as `ghc` when running tests, provided that `TEST_HC` is not explicitly set and an in-tree compiler is not used.  Fixes #10126.

Reviewers: thomie, austin

Reviewed By: thomie, austin

Subscribers: thomie

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

GHC Trac Issues: #10126

4 years agoAdd missed test (uuugh)
Austin Seipp [Sat, 7 Mar 2015 16:40:18 +0000 (10:40 -0600)] 
Add missed test (uuugh)

Signed-off-by: Austin Seipp <austin@well-typed.com>
4 years agoCustom `Typeable` solver, that keeps track of kinds.
Iavor S. Diatchki [Sat, 7 Mar 2015 16:37:31 +0000 (10:37 -0600)] 
Custom `Typeable` solver, that keeps track of kinds.

Summary:
This implements the new `Typeable` solver: when GHC sees `Typeable` constraints
it solves them on the spot.

The current implementation creates `TyCon` representations on the spot.

Pro: No overhead at all in code that does not use `Typeable`
Cons: Code that uses `Typeable` may create multipe `TyCon` represntations.

We have discussed an implementation where representations of `TyCons` are
computed once, in the module, where a datatype is declared.  This would
lead to more code being generated:  for a promotable datatype we need to
generate `2 + number_of_data_cons` type-constructro representations,
and we have to do that for all programs, even ones that do not intend to
use typeable.

I added code to emit warning whenevar `deriving Typeable` is encountered---
the idea being that this is not needed anymore, and shold be fixed.

Also, we allow `instance Typeable T` in .hs-boot files, but they result
in a warning, and are ignored.  This last one was to avoid breaking exisitng
code, and should become an error, eventually.

Test Plan:
1. GHC can compile itself.
2. I compiled a number of large libraries, including `lens`.
    - I had to make some small changes:
      `unordered-containers` uses internals of `TypeReps`, so I had to do a 1 line fix
    - `lens` needed one instance changed, due to a poly-kinded `Typeble` instance

3. I also run some code that uses `syb` to traverse a largish datastrucutre.
I didn't notice any signifiant performance difference between the 7.8.3 version,
and this implementation.

Reviewers: simonpj, simonmar, austin, hvr

Reviewed By: austin, hvr

Subscribers: thomie

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

GHC Trac Issues: #9858

4 years agoRe-export `<$` from Prelude (#10113)
Herbert Valerio Riedel [Sat, 7 Mar 2015 10:37:52 +0000 (11:37 +0100)] 
Re-export `<$` from Prelude (#10113)

This is a follow-up to eb3661f2b9f8472f3714774126ebe1183484dd85
re-exporting `<$` from `Prelude` as well.

Reviewed By: austin, ekmett

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

4 years agoRe-export `<$>` from Prelude (#10113)
Herbert Valerio Riedel [Sat, 7 Mar 2015 10:10:34 +0000 (11:10 +0100)] 
Re-export `<$>` from Prelude (#10113)

Whether to re-export the `<$>` non-method operator from `Prelude` wasn't
explicitly covered in the original AMP proposal[1], but it turns out that
not doing so forces most code that makes use of applicatives to import
`Data.Functor` or `Control.Applicative` just to get that operator into
scope.  To this end, it was proposed to add `<$>` to Prelude as well[2].

The down-side is that this increases the amount of redundant-import
warnings triggered, as well as the relatively minor issue of stealing
the `<$>` operator from the default namespace for good (although at this
point `<$>` is supposed to be ubiquitous anyway due to `Applicative`
being implicitly required into the next Haskell Report)

 [1]: https://wiki.haskell.org/Functor-Applicative-Monad_Proposal
 [2]: http://thread.gmane.org/gmane.comp.lang.haskell.libraries/24161

Reviewed By: austin, ekmett

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

4 years agoDrop redundant LANGUAGE pragmas
Herbert Valerio Riedel [Sat, 7 Mar 2015 10:08:01 +0000 (11:08 +0100)] 
Drop redundant LANGUAGE pragmas

Due to refactoring & cleanups those pragmas have become redundant by now

4 years agotestsuite: format commands using config dict
Thomas Miedema [Fri, 6 Mar 2015 19:17:41 +0000 (20:17 +0100)] 
testsuite: format commands using config dict

Summary:
Allow `cmd_wrapper` to return a format string that can refer to config values.
Very useful! This allows for many tests to be defined in pure Python, instead
of in an additional script or Makefile.

Example:

  def Thpc(cmd):
    return(cmd + ' && {hpc} report Thpc.tix')
  test('Thpc', [cmd_wrapper(Thpc), only_ways['hpc']), compile_and_run, [''])

The `{hpc}` is replaced by the value of `config.hpc`. The result is that the
module `Thpc` first gets compiled, then the binary `Thpc` is run, and then the
`hpc report` command is run. The output of all of this is redirected
(and later appended) to Thpc.run.stdout/stderr as normally.

Reviewed By: austin

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

4 years agoUpdate shift/reduce commentary in Parser.y
Edward Z. Yang [Wed, 4 Mar 2015 00:05:45 +0000 (16:05 -0800)] 
Update shift/reduce commentary in Parser.y

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

Test Plan: none

Reviewers: austin, simonpj, simonmar

Subscribers: thomie

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

4 years agoTypos in docs [ci skip]
Gabor Greif [Fri, 6 Mar 2015 13:12:25 +0000 (14:12 +0100)] 
Typos in docs [ci skip]

4 years agotestsuite: accept updated output
Austin Seipp [Fri, 6 Mar 2015 01:56:34 +0000 (19:56 -0600)] 
testsuite: accept updated output

Signed-off-by: Austin Seipp <austin@well-typed.com>
4 years agoUser manual section to document the principles of kind inference
Simon Peyton Jones [Thu, 5 Mar 2015 22:32:44 +0000 (22:32 +0000)] 
User manual section to document the principles of kind inference

This just documents the conclusions of Trac #10132

4 years agolibraries: update deepseq submodule
Austin Seipp [Thu, 5 Mar 2015 19:31:28 +0000 (13:31 -0600)] 
libraries: update deepseq submodule

Signed-off-by: Austin Seipp <austin@well-typed.com>
4 years agoAdd public rnf/hash operations to TypeRep/TyCon
Herbert Valerio Riedel [Thu, 5 Mar 2015 17:56:03 +0000 (11:56 -0600)] 
Add public rnf/hash operations to TypeRep/TyCon

Summary:
`TyCon` and `TypeRep` are supposed to be abstract, by providing these
additional few public operations the need to import
`Data.Typeable.Internal` is reduced, and future changes to the internal
structure of `TypeRep`/`TyCon` shouldn't require changes in packages such as
`deepseq` or `hashable` anymore (hopefully).

Reviewers: ekmett, simonpj, tibbe, austin

Reviewed By: ekmett, simonpj, austin

Subscribers: thomie

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

4 years agoRemove unused/undocumented flag `-fhpc-no-auto`
Thomas Miedema [Wed, 4 Mar 2015 20:26:31 +0000 (21:26 +0100)] 
Remove unused/undocumented flag `-fhpc-no-auto`

Added in 53a5d0b01. Perhaps accidentally? It didn't do anything back then
either.

Reviewed By: austin

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

4 years agotravis: Get libstdc++ from a more sensible location
Joachim Breitner [Wed, 4 Mar 2015 16:37:09 +0000 (17:37 +0100)] 
travis: Get libstdc++ from a more sensible location

4 years agoThree other test updates following the fix to Trac #7854
Simon Peyton Jones [Wed, 4 Mar 2015 13:20:28 +0000 (13:20 +0000)] 
Three other test updates following the fix to Trac #7854

4 years agoCheck for equality before deferring
Simon Peyton Jones [Wed, 4 Mar 2015 13:18:57 +0000 (13:18 +0000)] 
Check for equality before deferring

This one was a bit of a surprise. In fixing Trac #7854, I moved
the checkAmbiguity tests to checkValidType. That meant it happened
even for monotypes, and that turned out to be very expensive in
T9872a, for reasons described in this (new) Note in TcUnify:

    Note [Check for equality before deferring]
    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    Particularly in ambiguity checks we can get equalities like (ty ~ ty).
    If ty involves a type function we may defer, which isn't very sensible.
    An egregious example of this was in test T9872a, which has a type signature
           Proxy :: Proxy (Solutions Cubes)
    Doing the ambiguity check on this signature generates the equality
       Solutions Cubes ~ Solutions Cubes
    and currently the constraint solver normalises both sides at vast cost.
    This little short-cut in 'defer' helps quite a bit.

I fixed the problem with a quick equality test, but it feels like an ad-hoc
solution; I think we might want to do something in the constraint solver too.

(The problem was there all along, just more hidden.)

4 years agoComments only
Simon Peyton Jones [Wed, 4 Mar 2015 12:01:12 +0000 (12:01 +0000)] 
Comments only

4 years agoA raft of small changes associated with -XConstrainedClassMethods
Simon Peyton Jones [Wed, 4 Mar 2015 11:59:47 +0000 (11:59 +0000)] 
A raft of small changes associated with -XConstrainedClassMethods

See Trac #7854.  Specifically:

* Major clean up and simplification of check_op in checkValidClass;
  specifically
     - use checkValidType on the entire method-selector type to detect
       ambiguity
     - put a specific test for -XConstrainedClassMethods

* Make -XConstrainedClassMethods be implied by -XMultiParamTypeClasses
  (a bit ad-hoc but see #7854), and document in the user manual.

* Do the checkAmbiguity test just once in TcValidity.checkValidType,
  rather than repeatedly at every level. See Note [When to call checkAmbiguity]

* Add -XAllowAmbiguousTypes in GHC.IP, since 'ip' really is ambiguous.
  (It's a rather magic function.)

* Improve location info for check_op in checkValidClass

* Update quite a few tests, which had genuinely-ambiguous class
  method signatures.  Some I fixed by making them unambiguous; some
  by adding -XAllowAmbiguousTypes

4 years agoSome minor refactoring in TcHsType
Simon Peyton Jones [Tue, 3 Mar 2015 21:54:58 +0000 (21:54 +0000)] 
Some minor refactoring in TcHsType

4 years agoTidy up and improve comments about one-shot info
Simon Peyton Jones [Tue, 3 Mar 2015 21:52:28 +0000 (21:52 +0000)] 
Tidy up and improve comments about one-shot info

(Triggered by investigating Trac #10102 etc.)

4 years agoFix -Werror build failure in RtsMain
Tamar Christina [Wed, 4 Mar 2015 01:41:43 +0000 (19:41 -0600)] 
Fix -Werror build failure in RtsMain

Summary:
Something in Excn.h's include chain is loading _mingw.h which is defining a macro that
PosixSource.h is going to define.

_mingw.h's version properly checks if it has already been defined and skips it, so fixing the warning can be done
by just including Excn.h later (moved it to before last include).

Test Plan: ./validate

Reviewers: austin

Reviewed By: austin

Subscribers: thomie

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

4 years agoClarify some comments in Packages.hs [skip-ci]
Edward Z. Yang [Tue, 3 Mar 2015 21:05:03 +0000 (13:05 -0800)] 
Clarify some comments in Packages.hs [skip-ci]

Signed-off-by: Edward Z. Yang <ezyang@cs.stanford.edu>
4 years agoDon't use deriveUnique *twice* in flattenTys.
Richard Eisenberg [Tue, 3 Mar 2015 17:55:54 +0000 (12:55 -0500)] 
Don't use deriveUnique *twice* in flattenTys.

Previously, we used deriveUnique and then uniqAway. This worked
doubly hard to avoid clashes. Doing just uniqAway is enough.

This commit also includes clarifying comments.

4 years agoAdd various instances to newtypes in Data.Monoid
Oleg Grenrus [Tue, 3 Mar 2015 13:21:43 +0000 (07:21 -0600)] 
Add various instances to newtypes in Data.Monoid

Summary:
Add Functor instances for Dual, Sum and Product
Add Foldable instances for Dual, Sum and Product
Add Traversable instances for Dual, Sum and Product
Add Foldable and Traversable instances for First and Last
Add Applicative, Monad instances to Dual, Sum, Product
Add MonadFix to Data.Monoid wrappers
Derive Data for Identity
Add Data instances to Data.Monoid wrappers
Add Data (Alt f a) instance

Reviewers: ekmett, dfeuer, hvr, austin

Reviewed By: dfeuer, austin

Subscribers: thomie

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

GHC Trac Issues: #10107

4 years agoPretty-print # on unboxed literals in core
Thomas Miedema [Tue, 3 Mar 2015 13:21:32 +0000 (07:21 -0600)] 
Pretty-print # on unboxed literals in core

Summary:
Ticket #10104 dealt with showing the '#'s on types with unboxed fields. This
commit pretty prints the '#'s on unboxed literals in core output.

Test Plan: simplCore/should_compile/T8274

Reviewers: jstolarek, simonpj, austin

Reviewed By: simonpj, austin

Subscribers: simonpj, thomie

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

GHC Trac Issues: #8274

4 years agoReplaced SEH handles with VEH handlers which should work uniformly across x86 and x64
Tamar Christina [Tue, 3 Mar 2015 13:20:55 +0000 (07:20 -0600)] 
Replaced SEH handles with VEH handlers which should work uniformly across x86 and x64

Summary:
On Windows, the default action for things like division by zero and
segfaults is to pop up a Dr. Watson error reporting dialog if the exception
is unhandled by the user code.

This is a pain when we are SSHed into a Windows machine, or when we
want to debug a problem with gdb (gdb will get a first and second chance to
handle the exception, but if it doesn't the pop-up will show).

veh_excn provides two macros, `BEGIN_CATCH` and `END_CATCH`, which
will catch such exceptions in the entire process and die by
printing a message and calling `stg_exit(1)`.

Previously this code was handled using SEH (Structured Exception Handlers)
however each compiler and platform have different ways of dealing with SEH.

`MSVC` compilers have the keywords `__try`, `__catch` and `__except` to have the
compiler generate the appropriate SEH handler code for you.

`MinGW` compilers have no such keywords and require you to manually set the
SEH Handlers, however because SEH is implemented differently in x86 and x64
the methods to use them in GCC differs.

`x86`: SEH is based on the stack, the SEH handlers are available at `FS[0]`.
     On startup one would only need to add a new handler there. This has
     a number of issues such as hard to share handlers and it can be exploited.

`x64`: In order to fix the issues with the way SEH worked in x86, on x64 SEH handlers
     are statically compiled and added to the .pdata section by the compiler.
     Instead of being thread global they can now be Image global since you have to
     specify the `RVA` of the region of code that the handlers govern.

You can on x64 Dynamically allocate SEH handlers, but it seems that (based on
experimentation and it's very under-documented) that the dynamic calls cannot override
static SEH handlers in the .pdata section.

Because of this and because GHC no longer needs to support < windows XP, the better
alternative for handling errors would be using the in XP introduced VEH.

The bonus is because VEH (Vectored Exception Handler) are a runtime construct the API
is the same for both x86 and x64 (note that the Context object does contain CPU specific
structures) and the calls are the same cross compilers. Which means this file can be
simplified quite a bit.
Using VEH also means we don't have to worry about the dynamic code generated by GHCi.

Test Plan:
Prior to this diff the tests for `derefnull` and `divbyzero` seem to have been disabled for windows.
To reproduce the issue on x64:
1) open ghci
2) import GHC.Base
3) run: 1 `divInt` 0

which should lead to ghci crashing an a watson error box displaying.

After applying the patch, run:

make TEST="derefnull divbyzero"

on both x64 and x86 builds of ghc to verify fix.

Reviewers: simonmar, austin

Reviewed By: austin

Subscribers: thomie

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

GHC Trac Issues: #6079

4 years agoCite the TrieMap idea [skip-ci]
Edward Z. Yang [Mon, 2 Mar 2015 22:54:30 +0000 (14:54 -0800)] 
Cite the TrieMap idea [skip-ci]

Signed-off-by: Edward Z. Yang <ezyang@cs.stanford.edu>
4 years agoGive full-precision time for BEGIN_SAMPLE/END_SAMPLE.
Edward Z. Yang [Tue, 24 Feb 2015 04:02:25 +0000 (20:02 -0800)] 
Give full-precision time for BEGIN_SAMPLE/END_SAMPLE.

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

Test Plan: validate

Reviewers: simonmar, austin

Subscribers: thomie

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

4 years agoSmall emitCmmSwitch/emitCmmLitSwitch refactoring
Joachim Breitner [Mon, 2 Mar 2015 20:35:05 +0000 (21:35 +0100)] 
Small emitCmmSwitch/emitCmmLitSwitch refactoring

both use the same logic to divide, so put it in
    divideBranches :: Ord a => [(a,b)] -> ([(a,b)], a, [(a,b)])

4 years agoImprove if-then-else tree for cases on literal values
Joachim Breitner [Mon, 2 Mar 2015 20:20:24 +0000 (21:20 +0100)] 
Improve if-then-else tree for cases on literal values

Previously, in the branch of the if-then-else tree, it would emit a
final check if the scrut matches the alternative, even if earlier
comparisons alread imply this equality. By keeping track of the bounds
we can skip this check. Of course this is only sound for integer types.
This closes #10129.
Differential Revision: https://phabricator.haskell.org/D693

4 years agoTypos in non-code
Gabor Greif [Mon, 2 Mar 2015 18:28:36 +0000 (19:28 +0100)] 
Typos in non-code

4 years agoRemoved unused constrained which causes build to fail with -Werror
Tamar Christina [Mon, 2 Mar 2015 17:10:37 +0000 (11:10 -0600)] 
Removed unused constrained which causes build to fail with -Werror

Summary:
 Unused Show constraint is cauzing validate build failures because of -Werror.
 Removing constraint solves the problem

Test Plan: validate

Reviewers: austin, hvr

Reviewed By: austin

Subscribers: thomie

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

4 years ago`make test` in root directory now runs fulltest
Thomas Miedema [Mon, 2 Mar 2015 17:10:09 +0000 (11:10 -0600)] 
`make test` in root directory now runs fulltest

Summary:
Currently, running `make test` in:
  /                   runs fast testsuite
  /testsuite          doesn't work
  /testsuite/tests    runs slow testsuite

This commit:
  * changes `make test` in the ghc root directory to run the slow testsuite,
    just like it already does in `testsuite/tests`
  * adds some simple targets to `/testsuite`, that all delegate to
    `/testsuite/tests`
  * adds a new target `fasttest` to the toplevel Makefile, with a shorthand
    name `fast` (for consistency with /testsuite and /testsuite/tests)
  * declares some more targets PHONY for safety

Wiki pages that need updating:
  * Building/StandardTargets
  * Buliding/RunningTests

Reviewers: austin

Reviewed By: austin

Subscribers: thomie

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

4 years agoFix typecheck tests (--slow)
Thomas Miedema [Mon, 2 Mar 2015 17:09:50 +0000 (11:09 -0600)] 
Fix typecheck tests (--slow)

Summary:
Fallout from AMP, recent addition of -fwarn-redundant-constraints and others.
Some of these tests need `mtl` or `syb` to run.

Reviewers: austin

Reviewed By: austin

Subscribers: thomie

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

4 years agoFix detection of llvm-x.x
Thomas Miedema [Mon, 2 Mar 2015 17:09:33 +0000 (11:09 -0600)] 
Fix detection of llvm-x.x

Summary:
Four bug fixes and a little refactoring.
* `find -perm \mode` should be `find -perm /mode` (#9697)

* `find -regex '$3' should be `find -regex "$3"` (#7661)

From `man sh` on my system (Ubuntu 14.04):
"Enclosing characters in single quotes preserves the literal meaning of all
the characters ..."

* LlcCmd and OptCmd should be passed to ghc, using `-pgmlo` and `-pgmlc`, for
  detection of #9439.

* -pgmlo and -pgmlc were undocumented because of an xml tag misplacement.

Test Plan:
The aclocal.m4 macro has seen about 10 iterations since its inception. Without a
testsuite, I can't guarantee this version is bug free either. It's all pretty
frustrating.

Reviewers: bgamari, austin

Reviewed By: austin

Subscribers: thomie

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

GHC Trac Issues: #9697, #7661, #9439

4 years agofix typos in coreSyn
Javran Cheng [Mon, 2 Mar 2015 17:09:23 +0000 (11:09 -0600)] 
fix typos in coreSyn

Summary: fixed few typos in coreSyn, no trac number

Test Plan: validate

Reviewers: austin

Reviewed By: austin

Subscribers: thomie

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

4 years agoShow record construction/update without parens
Thomas Miedema [Mon, 2 Mar 2015 17:07:58 +0000 (11:07 -0600)] 
Show record construction/update without parens

Summary:
The 2010 report mentions:
"The result of `show` is a syntactically correct Haskell expression ...
Parenthesis are only added where needed, //ignoring associativity//".

Reviewers: austin

Reviewed By: austin

Subscribers: thomie

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

GHC Trac Issues: #2530

4 years agoImprove documentation of infinite inlining bug
Simon Peyton Jones [Mon, 2 Mar 2015 16:30:36 +0000 (16:30 +0000)] 
Improve documentation of infinite inlining bug

This fixes the documentation suggestion in Trac #10105

4 years agoTwo kind-polymorphism fixes (Trac #10122)
Simon Peyton Jones [Mon, 2 Mar 2015 16:29:39 +0000 (16:29 +0000)] 
Two kind-polymorphism fixes (Trac #10122)

* The original fix was to improve the documentation, in
  line with the suggestions on Trac #10122

* But in doing so I realised that the kind generalisation in
  TcRnDriver.tcRnType was completely wrong.  So I fixed that
  and updated Note [Kind-generalise in tcRnType] to explain.

4 years agoComments only
Simon Peyton Jones [Thu, 26 Feb 2015 17:43:31 +0000 (17:43 +0000)] 
Comments only

4 years agoTest Trac #10112
Simon Peyton Jones [Thu, 26 Feb 2015 17:27:15 +0000 (17:27 +0000)] 
Test Trac #10112

4 years agoImprove comments on coreView/tcView, and combine coreExpandTyCon/tcExpandTyCon
Simon Peyton Jones [Thu, 26 Feb 2015 17:26:56 +0000 (17:26 +0000)] 
Improve comments on coreView/tcView, and combine coreExpandTyCon/tcExpandTyCon

This is minor stuff triggered by Trac #10103.

* Fix outdated comments on tcView/coreView (we should really combine
  them with a new name, but I'll leave that slightly-disruptive change
  for now)

* Combine tcExpandTyCon_maybe and coreExpandTyCon_maybe (which were identical)
  into expandSynTyCon_maybe

* A few more comment fixups

4 years agoComments only
Simon Peyton Jones [Thu, 26 Feb 2015 16:41:12 +0000 (16:41 +0000)] 
Comments only

4 years agoExtend the docs for Data.List.transpose
Joachim Breitner [Mon, 2 Mar 2015 09:55:22 +0000 (10:55 +0100)] 
Extend the docs for Data.List.transpose

by giving a sufficient general example to explain what happens when the
rows are not of the same lengths. Thanks to Doug McIlroy for the
suggestoin. Fixes #10128.

4 years agoUpdate process submodule to 1.2.3.0 snapshot
Herbert Valerio Riedel [Fri, 27 Feb 2015 07:47:36 +0000 (08:47 +0100)] 
Update process submodule to 1.2.3.0 snapshot

This fixes the compilation failure

  libraries\process\System\Process\Internals.hs:36:5:
      Not in scope: `stopDelegateControlC'
      ...

(however, GHC HEAD skipped process-1.2.2 which has that issue)

4 years agoAllocationLimitExceeded should be a child of SomeAsyncException
Simon Marlow [Wed, 25 Feb 2015 09:31:18 +0000 (09:31 +0000)] 
AllocationLimitExceeded should be a child of SomeAsyncException

4 years agoAxe ModFinderCache, folding it into a generalized FinderCache.
Edward Z. Yang [Tue, 27 Jan 2015 23:55:52 +0000 (15:55 -0800)] 
Axe ModFinderCache, folding it into a generalized FinderCache.

Summary:
FinderCache is now keyed by a module, ModuleNames in the home package are
turned into Modules using thisPackage in the dynamic flags.  Simplifies some
code!

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

Reviewers: simonpj, austin

Subscribers: thomie

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

4 years agoFix comments, and a little reformatting
Simon Marlow [Tue, 24 Feb 2015 08:22:25 +0000 (08:22 +0000)] 
Fix comments, and a little reformatting