1. 17 Dec, 2015 15 commits
    • eir@cis.upenn.edu's avatar
      Fix #11232. · cab13162
      eir@cis.upenn.edu authored
      I somehow forgot to propagate roles into UnivCos. Very
      simple fix, happily.
      
      Test Plan: simplCore/should_compile/T11232
      
      Reviewers: bgamari, austin, simonpj
      
      Reviewed By: simonpj
      
      Subscribers: simonpj, thomie
      
      Differential Revision: https://phabricator.haskell.org/D1645
      
      GHC Trac Issues: #11232
      cab13162
    • quchen's avatar
      Conditionally show plural "s" in warnings · 4f870f84
      quchen authored
      Redundant constraints and defaulting warnings had "constraint(s)" in
      their messages; the "s" is now conditional based on the number of things
      warned about.
      
      Reviewers: hvr, austin, bgamari
      
      Reviewed By: bgamari
      
      Subscribers: thomie
      
      Differential Revision: https://phabricator.haskell.org/D1647
      4f870f84
    • Ben Gamari's avatar
      rules/haddock: Add EXTRA_HADDOCK_OPTS flag · e58a9361
      Ben Gamari authored
      Allowing one to pass the new `--hyperlinked-source` option to generate
      pretty marked-up sources for the core libraries.
      
      Test Plan: Try it
      
      Reviewers: hvr, austin
      
      Reviewed By: austin
      
      Subscribers: thomie
      
      Differential Revision: https://phabricator.haskell.org/D1643
      e58a9361
    • Ben Gamari's avatar
      Build system: Make cGhcRtsWithLibdw flag a proper Bool · 109d8479
      Ben Gamari authored
      Test Plan: validate
      
      Reviewers: austin
      
      Reviewed By: austin
      
      Subscribers: thomie
      
      Differential Revision: https://phabricator.haskell.org/D1642
      109d8479
    • Ben Gamari's avatar
      Add Shake configuration to configure.ac · 86ad116f
      Ben Gamari authored
      The Shake build system requires that this file be generated by autoconf.
      Generate it if we find a shake tree.
      
      Reviewers: austin, hvr
      
      Reviewed By: hvr
      
      Subscribers: thomie, erikd
      
      Differential Revision: https://phabricator.haskell.org/D1638
      86ad116f
    • Ben Gamari's avatar
      Build system: Cabalize genapply · 0cc4aad3
      Ben Gamari authored
      Test Plan: Validate
      
      Reviewers: thomie, austin
      
      Reviewed By: thomie, austin
      
      Differential Revision: https://phabricator.haskell.org/D1639
      0cc4aad3
    • Simon Marlow's avatar
      Fix libffi dependency, and remove redundant LibFFI.hsc · 27f47cda
      Simon Marlow authored
      LibFFI.hsc was moved to libraries/ghci/GHCi/FFI.hsc, I just forgot to
      remove the old one.  We also need an explicit dependency on libffi,
      which moves from compiler/ghc.mk to the top-level ghc.mk (because
      libraries/ghci/ghc.mk is auto-generated).
      27f47cda
    • Ben Gamari's avatar
      Fix haddock hyperlinker · 62e60bb9
      Ben Gamari authored
      Updates haddock submodule
      62e60bb9
    • Ben Gamari's avatar
      TcTypeable: Don't use bogus fingerprints when suppress-uniques is enabled · 786d528e
      Ben Gamari authored
      Previously the Typeable implementation would intentionally create TyCon
      representations with bogus fingerprints to avoid fingerprints (which may
      change often) from leaking into test output. As pointed out by Richard
      in #10376 this is very bad as simply enabling a debug flag,
      `-dsuppress-uniques`, completely breaks the soundness of `Typeable`!
      
      This patch removes this behavior and replaces it with logic in the
      testsuite driver to filter out spurious changes due to Typeable
      representations.
      
      Test Plan: Validate
      
      Reviewers: austin, simonpj, goldfire
      
      Reviewed By: goldfire
      
      Subscribers: thomie
      
      Differential Revision: https://phabricator.haskell.org/D1629
      
      GHC Trac Issues: #10376
      786d528e
    • Ben Gamari's avatar
      testsuite: Add missing LiteralsTest2.hs · b20a65d5
      Ben Gamari authored
      b20a65d5
    • Ben Gamari's avatar
      Bump haddock expected performance numbers · acd447e6
      Ben Gamari authored
      This was a pretty brutal upgrade, with >100% increase in allocations
      while processing `base`. Ugh.
      acd447e6
    • Simon Marlow's avatar
      Fix tests when run in parallel · dd3837ab
      Simon Marlow authored
      dd3837ab
    • Simon Marlow's avatar
      accept output · a6d664cf
      Simon Marlow authored
      a6d664cf
    • Simon Marlow's avatar
      Remote GHCi, -fexternal-interpreter · 4905b83a
      Simon Marlow authored
      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
      4905b83a
    • Edward Z. Yang's avatar
      GHC doesn't have a way to ask for user-package-db, so Cabal reimplemented it. · 7221ad70
      Edward Z. Yang authored
      Signed-off-by: default avatarEdward Z. Yang <ezyang@cs.stanford.edu>
      
      Test Plan: docs only
      
      Reviewers: austin, bgamari
      
      Subscribers: thomie
      
      Differential Revision: https://phabricator.haskell.org/D1644
      7221ad70
  2. 16 Dec, 2015 13 commits
  3. 15 Dec, 2015 12 commits
    • Ben Gamari's avatar
      Expose enabled language extensions to TH · c1e25536
      Ben Gamari authored
      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
      c1e25536
    • Ben Gamari's avatar
      primops: Mark actions evaluated by `catch*` as lazy · 28638dfe
      Ben Gamari authored
      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
      7c0fff41 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
      28638dfe
    • Ben Gamari's avatar
      Add testcase for #11224 · a701694b
      Ben Gamari authored
      Test Plan: Validate
      
      Reviewers: austin, mpickering
      
      Reviewed By: mpickering
      
      Subscribers: mpickering, thomie
      
      Differential Revision: https://phabricator.haskell.org/D1622
      
      GHC Trac Issues: #11224
      a701694b
    • Ben Gamari's avatar
      base: NonEmpty: Fix documentation example · 758e6b3a
      Ben Gamari authored
      Fixes #11178.
      758e6b3a
    • Ben Gamari's avatar
      Narrow scope of special-case for unqualified printing of names in core libraries · e2c91738
      Ben Gamari authored
      Commit 547c5971 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
      e2c91738
    • Simon Peyton Jones's avatar
      Comment layout only · 947e44fe
      Simon Peyton Jones authored
      947e44fe
    • Simon Peyton Jones's avatar
      Allow recursive (undecidable) superclasses · 6eabb6dd
      Simon Peyton Jones authored
      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
      6eabb6dd
    • Simon Peyton Jones's avatar
      Comments on equality types and classes · b8ca6459
      Simon Peyton Jones authored
      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.
      b8ca6459
    • Simon Peyton Jones's avatar
      Improve documentation for -XStrict · 98cdaee7
      Simon Peyton Jones authored
      In particular, highlight that we do not put bangs on nested patterns
      98cdaee7
    • Simon Peyton Jones's avatar
      Fix formatting complaint from Sphinx · d1ca5d21
      Simon Peyton Jones authored
      d1ca5d21
    • Herbert Valerio Riedel's avatar
      Reset process submodule to v1.4.1.0 release tag · f4d90f96
      Herbert Valerio Riedel authored
      The `process-1.4.1.0` release is the version designated for GHC 8.0.1
      
      /cc @snoyberg
      f4d90f96
    • Erik de Castro Lopo's avatar
      Update expected test output for 32 bit platforms · 4c9d1eab
      Erik de Castro Lopo authored
      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
      4c9d1eab