1. 21 Dec, 2015 7 commits
    • Ben Gamari's avatar
      testsuite: Add testcase for #8316 · a61e717f
      Ben Gamari authored
      This is still broken but really out to be fixed. At least know we'll
      know if someone fixes it inadvertently.
      
      Test Plan: validate
      
      Reviewers: austin
      
      Reviewed By: austin
      
      Subscribers: thomie
      
      Differential Revision: https://phabricator.haskell.org/D1682
      
      GHC Trac Issues: #8316
      a61e717f
    • Ben Gamari's avatar
      testsuite/ClassOperator: This actually should_fail · fd1b5ae7
      Ben Gamari authored
      See #11264 for details.
      fd1b5ae7
    • Simon Marlow's avatar
      Maintain cost-centre stacks in the interpreter · c8c44fd9
      Simon Marlow authored
      Summary:
      Breakpoints become SCCs, so we have detailed call-stack info for
      interpreted code.  Currently this only works when GHC is compiled with
      -prof, but D1562 (Remote GHCi) removes this constraint so that in the
      future call stacks will be available without building your own GHCi.
      
      How can you get a stack trace?
      
      * programmatically: GHC.Stack.currentCallStack
      * I've added an experimental :where command that shows the stack when
        stopped at a breakpoint
      * `error` attaches a call stack automatically, although since calls to
        `error` are often lifted out to the top level, this is less useful
        than it might be (ImplicitParams still works though).
      * Later we might attach call stacks to all exceptions
      
      Other related changes in this diff:
      
      * I reduced the number of places that get ticks attached for
        breakpoints.  In particular there was a breakpoint around the whole
        declaration, which was often redundant because it bound no variables.
        This reduces clutter in the stack traces and speeds up compilation.
      
      * I tidied up some RealSrcSpan stuff in InteractiveUI, and made a few
        other small cleanups
      
      Test Plan: validate
      
      Reviewers: ezyang, bgamari, austin, hvr
      
      Subscribers: thomie
      
      Differential Revision: https://phabricator.haskell.org/D1595
      
      GHC Trac Issues: #11047
      c8c44fd9
    • Ryan Scott's avatar
      Encode strictness in GHC generics metadata · ee6fba89
      Ryan Scott authored
      This augments `MetaSel` with a `Bang` field, which gives generic
      programmers access to the following information about each field
      selector:
      
      * `SourceUnpackedness`: whether a field was marked `{-# NOUNPACK #-}`,
        `{-# UNPACK #-}`, or not
      * `SourceStrictness`: whether a field was given a strictness (`!`) or
        laziness (`~`) annotation
      * `DecidedStrictness`: what strictness GHC infers for a field during
        compilation, which may be influenced by optimization levels,
        `-XStrictData`, `-funbox-strict-fields`, etc.
      
      Unlike in Phab:D1603, generics does not grant a programmer the ability
      to "splice" in metadata, so there is no issue including
      `DecidedStrictness` with `Bang` (whereas in Template Haskell, it had to
      be split off).
      
      One consequence of this is that `MetaNoSel` had to be removed, since it
      became redundant. The `NoSelector` empty data type was also removed for
      similar reasons.
      
      Fixes #10716.
      
      Test Plan: ./validate
      
      Reviewers: dreixel, goldfire, kosmikus, austin, hvr, bgamari
      
      Reviewed By: bgamari
      
      Subscribers: thomie
      
      Differential Revision: https://phabricator.haskell.org/D1646
      
      GHC Trac Issues: #10716
      ee6fba89
    • Ben Gamari's avatar
      testsuite: Add ClassOperator testcase · 9f23dd9d
      Ben Gamari authored
      This is derived from Haddock's `Operators` `html-test`, which appears to
      fail with GHC master yet compiles with 7.10.2
      
      Reviewers: simonpj, austin
      
      Subscribers: thomie
      
      Differential Revision: https://phabricator.haskell.org/D1667
      
      GHC Trac Issues: #11264
      9f23dd9d
    • msosn's avatar
      Warn about unused type variables in type families · eb7796f1
      msosn authored
      The warnings are enabled with the flag -fwarn-unused-matches, the same
      one that enables warnings on the term level.
      
      Identifiers starting with an underscore are now always parsed as type
      variables.  When the NamedWildCards extension is enabled, the renamer
      replaces those variables with named wildcards.
      
      An additional NameSet nwcs is added to LocalRdrEnv. It's used to keep
      names of the type variables that should be replaced with wildcards.
      
      While renaming HsForAllTy, when a name is explicitly bound it is removed
      from the nwcs NameSet. As a result, the renamer doesn't replace them in
      the quantifier body. (Trac #11098)
      
      Fixes #10982, #11098
      
      Reviewers: alanz, bgamari, hvr, austin, jstolarek
      
      Reviewed By: jstolarek
      
      Subscribers: goldfire, mpickering, RyanGlScott, thomie
      
      Differential Revision: https://phabricator.haskell.org/D1576
      
      GHC Trac Issues: #10982
      eb7796f1
    • dolio's avatar
      Modify IsString String instance (fixes #10814) · b225b234
      dolio authored
      The new instance resolves to `s ~ [Char]` as soon as we know that `s ~
      [a]`, to avoid certain functions (like (++)) causing a situation where
      `a` is ambiguous and (currently) unable to be defaulted.
      
      Reviewers: #core_libraries_committee, hvr, austin, bgamari
      
      Reviewed By: hvr, bgamari
      
      Subscribers: thomie
      
      Differential Revision: https://phabricator.haskell.org/D1572
      
      GHC Trac Issues: #10814
      b225b234
  2. 20 Dec, 2015 3 commits
  3. 19 Dec, 2015 1 commit
  4. 18 Dec, 2015 6 commits
  5. 17 Dec, 2015 20 commits
    • Herbert Valerio Riedel's avatar
      Update containers submodule to v0.5.7.0 release · c5c72aaf
      Herbert Valerio Riedel authored
      This is the designated release to go with GHC 8.0.1
      
      This release doesn't need any warning-suppression flags anymore, so
      remove those from mk/warnings.mk
      
      /cc @foxik
      c5c72aaf
    • Ryan Scott's avatar
      Move Data.Functor.(Classes,Compose,Product,Sum) into base · e0e03d5b
      Ryan Scott authored
      These modules were previously provided by the `transformers`
      package. Hence the submodule update.
      
      This patch was originally contributed by M Farkas-Dyck and
      subsequently taken over and completed by Ryan.
      
      The original proposal discussion can be found at
      https://mail.haskell.org/pipermail/libraries/2015-July/026014.html
      
      This addresses #11135
      
      Differential Revision: https://phabricator.haskell.org/D1543
      e0e03d5b
    • thomie's avatar
      Testsuite: mark frontend01 conditionally expect_broken on #10301 · bc436f9e
      thomie authored
      This should fix validate on Travis.
      bc436f9e
    • thomie's avatar
      Suppress warnings when compiling primitive and random · f1fa3839
      thomie authored
      And fix a redundant constraint warning in a test that requires
      primitive.
      f1fa3839
    • eir@cis.upenn.edu's avatar
      Fix #11230. · 1722fa10
      eir@cis.upenn.edu authored
      Previously, we were optimizing away all case expressions over
      coercions with dead binders. But sometimes we want to force
      the coercion expression. Like when it contains an error.
      
      Test case: typecheck/should_run/T11230
      1722fa10
    • eir@cis.upenn.edu's avatar
      Fix tcTyClTyVars to handle SigTvs · ae86eb9f
      eir@cis.upenn.edu authored
      Previously, tcTyClTyVars required that the names of the LHsQTyVars
      matched up exactly with the names of the kind of the given TyCon.
      It now does a bit of matching up when necessary to relax this
      restriction.
      
      This commit enables a few tests that had previously been disabled.
      
      The shortcoming this addresses is discussed in #11203, but that
      ticket is not directly addressed here.
      
      Test case: polykinds/SigTvKinds, perf/compiler/T9872d
      ae86eb9f
    • thomie's avatar
      Testsuite: #10712 is fixed · a2f04a26
      thomie authored
      Verified by running:
      
        make TEST='exceptionsrun001 T3279 conc012 conc014' slowtest
      a2f04a26
    • Ben Gamari's avatar
      Disable recomp015 on ARM · e2e24f28
      Ben Gamari authored
      Due to differences in assembly syntax. See #11022.
      e2e24f28
    • Ben Gamari's avatar
      T9961 allocations crept further upwards · aee58e16
      Ben Gamari authored
      Sad.
      aee58e16
    • Simon Peyton Jones's avatar
      Remove unused T10524.stderr · e32c2e1f
      Simon Peyton Jones authored
      e32c2e1f
    • Eugene Akentyev's avatar
      Add -fprint-typechecker-elaboration flag (fixes #10662) · d3dac4e3
      Eugene Akentyev authored
      Reviewers: thomie, austin, bgamari
      
      Reviewed By: thomie, bgamari
      
      Subscribers: thomie
      
      Differential Revision: https://phabricator.haskell.org/D1625
      
      GHC Trac Issues: #10662
      d3dac4e3
    • Adam Gundry's avatar
      Reify DuplicateRecordFields by label, rather than by selector · 4b161c93
      Adam Gundry authored
      See `Note [Reifying field labels]` in `TcSplice`. This makes
      typical uses of TH work better with `DuplicateRecordFields`.
      If `reify` is called on the `Name` of a field label produced by
      the output of a previous `reify`, and there are multiple  fields
      with that label defined in the same module, it may fail with
      an ambiguity error.
      
      Test Plan:
      Added tests, and manually tested that this makes
      Aeson's `deriveJSON` avoid the `$sel:` prefixes.
      
      Reviewers: simonpj, goldfire, austin, bgamari
      
      Reviewed By: bgamari
      
      Subscribers: thomie
      
      Differential Revision: https://phabricator.haskell.org/D1586
      
      GHC Trac Issues: #11103
      4b161c93
    • 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
      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
  6. 16 Dec, 2015 3 commits