1. 14 Jan, 2016 3 commits
  2. 13 Jan, 2016 9 commits
    • Ömer Sinan Ağacan's avatar
      Minor improvement in CoreDump outputs: · c3133273
      Ömer Sinan Ağacan authored
      Don't add parens unnecessarily when arguments of the application are all
      hidden (because of parameters like -dsuppress-all,
      -dsuppress-type-applications etc.)
      Reviewers: bgamari, austin
      Subscribers: thomie
      Differential Revision: https://phabricator.haskell.org/D1771
    • Iavor S. Diatchki's avatar
      Handle over-applied custom type errors too. · 6ea24af9
      Iavor S. Diatchki authored
          type family F :: Type -> Type where
             F = TypeError (Text "Error")
      Now, if we see something like `F Int` we should still report the custom
      type error.
    • kseo's avatar
      Print a message when loading a .ghci file. · c3f92464
      kseo authored
      Test Plan: ./validate
      Reviewers: austin, thomie, bgamari
      Reviewed By: bgamari
      Subscribers: rwbarton, thomie
      Differential Revision: https://phabricator.haskell.org/D1756
      GHC Trac Issues: #11389
    • Ben Gamari's avatar
      Add test for Data.Typeable.typeOf · e782e882
      Ben Gamari authored
      Test Plan: Validate
      Reviewers: goldfire, austin
      Subscribers: thomie
      Differential Revision: https://phabricator.haskell.org/D1770
      GHC Trac Issues: #11120
    • Ben Gamari's avatar
      Add missing type representations · ac3cf68c
      Ben Gamari authored
      Previously we were missing `Typeable` representations for several
      wired-in types (and their promoted constructors). These include,
       * `Nat`
       * `Symbol`
       * `':`
       * `'[]`
      Moreover, some constructors were incorrectly identified as being defined
      in `GHC.Types` whereas they were in fact defined in `GHC.Prim`.
      Ultimately this is just a temporary band-aid as there is general
      agreement that we should eliminate the manual definition of these
      representations entirely.
      Test Plan: Validate
      Reviewers: austin, hvr
      Subscribers: thomie
      Differential Revision: https://phabricator.haskell.org/D1769
      GHC Trac Issues: #11120
    • thomie's avatar
      TemplateHaskell: revive isStrict, notStrict and unpacked · d44bc5c0
      thomie authored
      These 3 functions are useful to keep around a bit longer, to prevent
      breaking existing code that uses them.
      Related to #10697.
      Reviewers: austin, goldfire, RyanGlScott, bgamari
      Reviewed By: RyanGlScott, bgamari
      Differential Revision: https://phabricator.haskell.org/D1761
    • niteria's avatar
      Use implicit CallStacks for ASSERT when available · 88d6d5aa
      niteria authored
      This aids with debugging, since all you have to do to get more
      stack frames is add a constraint `(?callStack :: CallStack) =>`.
      Old output:
      ghc-stage2: panic! (the 'impossible' happened)
        (GHC version 8.1.20160107 for x86_64-unknown-linux):
              ASSERT failed!
        file compiler/types/TyCoRep.hs line 1800
        InScope []
        [Xuv :-> n_av5[sk]]
      New output:
      ghc-stage2: panic! (the 'impossible' happened)
        (GHC version 8.1.20160107 for x86_64-unknown-linux):
              ASSERT failed!
        CallStack (from ImplicitParams):
        assertPprPanic, called at compiler/types/TyCoRep.hs:1800:95 in
        InScope []
        [Xuv :-> n_av5[sk]]
      Test Plan:
      manual testing
      Reviewers: austin, gridaphobe, bgamari
      Reviewed By: gridaphobe, bgamari
      Subscribers: thomie
      Differential Revision: https://phabricator.haskell.org/D1751
    • Simon Marlow's avatar
      A little closer to supporting breakpoints with -fexternal-interpreter · 3e796e1a
      Simon Marlow authored
      Summary: Moves getIdValFromApStack to the server, and removes one use of wormhole.
      Test Plan: validate
      Reviewers: bgamari, niteria, austin, hvr, erikd
      Subscribers: thomie
      Differential Revision: https://phabricator.haskell.org/D1768
      GHC Trac Issues: #11100
    • Simon Marlow's avatar
      Add -prof stack trace to assert · 6cb860a9
      Simon Marlow authored
      So that assertion failures have full call stack information attached
      when using `ghc -fexternal-interpreter -prof`.  Here's one I just
      collected by inserting a dummy assert in Happy:
      *** Exception: Assertion failed
      CallStack (from ImplicitParams):
        assert, called at ./First.lhs:37:11 in main:First
      CallStack (from -prof):
        First.mkFirst (First.lhs:37:11-27)
        First.mkFirst (First.lhs:37:11-93)
        Main.main2.runParserGen.first (Main.lhs:107:48-56)
        Main.main2.runParserGen.first (Main.lhs:107:27-57)
        Main.main2.runParserGen (Main.lhs:(96,9)-(276,9))
        Main.main2.runParserGen (Main.lhs:(90,9)-(276,10))
        Main.main2.runParserGen (Main.lhs:(86,9)-(276,10))
        Main.main2.runParserGen (Main.lhs:(85,9)-(276,10))
        Main.main2 (Main.lhs:74:20-43)
        Main.main2 (Main.lhs:(64,9)-(78,61))
        Main.main (Main.lhs:57:9-18)
      Test Plan: validate
      Reviewers: erikd, hvr, austin, bgamari
      Reviewed By: bgamari
      Subscribers: thomie
      Differential Revision: https://phabricator.haskell.org/D1765
      GHC Trac Issues: #11047
  3. 12 Jan, 2016 1 commit
  4. 11 Jan, 2016 1 commit
  5. 10 Jan, 2016 1 commit
  6. 09 Jan, 2016 11 commits
  7. 08 Jan, 2016 11 commits
    • Rik Steenkamp's avatar
      Fix test for T9367 (Windows) · 1cdf12c4
      Rik Steenkamp authored
      See c8c44fd9.
      Reviewed By: thomie, bgamari
      Differential Revision: https://phabricator.haskell.org/D1745
    • thomie's avatar
      Build system: fix `pwd` issues on Windows · f7b45c31
      thomie authored
      Some parts of the build system require that paths are what msys2 calls
      "mixed style":
        * forwards slashes
        * absolute paths starting with a drive letter followed by a colon
          (e.g. "C:")
      The removal of ghc-pwd in 4c56ad36 changed $(TOP) from mixed style to
      unix style, resulting in a broken Windows build for some.
      Differential Revision: https://phabricator.haskell.org/D1752
    • Simon Marlow's avatar
      Docs for stack traces in GHCi · 2bd05b88
      Simon Marlow authored
    • niteria's avatar
      Add a pointer to the relevant paper for InScopeSet · 47ccf4d2
      niteria authored
      This was non-obvious to me when reading the sources and the
      paper provides the motivation and explores the design space.
      Test Plan: just a comment
      Reviewers: simonpj, austin, ezyang, bgamari
      Reviewed By: bgamari
      Subscribers: thomie
      Differential Revision: https://phabricator.haskell.org/D1749
    • Simon Marlow's avatar
      Rename the test-way prof_h to normal_h · 10769a1b
      Simon Marlow authored
    • Simon Marlow's avatar
      Fix +RTS -h when compiling without -prof · c33e7c2b
      Simon Marlow authored
      Was broken by ce1f1607.  I've added a
      test so that hopefully it won't break again.
      Test Plan: validate & new test case
      Reviewers: bgamari, austin, erikd
      Subscribers: thomie
      Differential Revision: https://phabricator.haskell.org/D1746
      GHC Trac Issues: #11304
    • Jonas Scholl's avatar
      Improve GHC.Event.IntTable performance · 1abb7005
      Jonas Scholl authored
      Speed up GHC.Event.IntTable.lookup by removing the IO context from the
      go helper function. This generates a little bit better code as we can
      avoid repeating the stack check.
      Remove unused parameter from GHC.Event.IntTable.updateWith.go and
      directly return a bool instead of a maybe and then checking that whether
      it is a Nothing.
      Test Plan: validate
      Reviewers: austin, hvr, bgamari
      Reviewed By: bgamari
      Subscribers: thomie
      Differential Revision: https://phabricator.haskell.org/D1742
      GHC Trac Issues: #8793
    • Ryan Scott's avatar
      Fix Template Haskell's handling of infix GADT constructors · 01634277
      Ryan Scott authored
      This is the second (and hopefully last) fix needed to make TH handle
      GADTs properly (after D1465). This Diff addresses some issues with infix
      GADT constructors, specifically:
      * Before, you could not determine if a GADT constructor was declared
        infix because TH did not give you the ability to determine if there is
        a //user-specified// fixity declaration for that constructor. The
        return type of `reifyFixity` was changed to `Maybe Fixity` so that it
        yields `Just` the fixity is there is a fixity declaration, and
        `Nothing` otherwise (indicating it has `defaultFixity`).
      * `DsMeta`/`Convert` were changed so that infix GADT constructors are
        turned into `GadtC`, not `InfixC` (which should be reserved for
        Haskell98 datatype declarations).
      * Some minor fixes to the TH pretty-printer so that infix GADT
        constructors will be parenthesized in GADT signatures.
      Fixes #11345.
      Test Plan: ./validate
      Reviewers: goldfire, austin, bgamari, jstolarek
      Reviewed By: jstolarek
      Subscribers: thomie
      Differential Revision: https://phabricator.haskell.org/D1744
      GHC Trac Issues: #11345
    • Jan Stolarek's avatar
    • Simon Marlow's avatar
      Support for qRecover in TH with -fexternal-interpreter · 09425cbe
      Simon Marlow authored
      Summary: This completes the support for TH with -fexternal-interpreter.
      Test Plan: validate
      Reviewers: bgamari, ezyang, austin, niteria, goldfire, erikd
      Subscribers: thomie
      Differential Revision: https://phabricator.haskell.org/D1748
      GHC Trac Issues: #11100
    • Simon Marlow's avatar
      Enable stack traces with ghci -fexternal-interpreter -prof · 6be09e88
      Simon Marlow authored
      The main goal here is enable stack traces in GHCi.  After this change,
      if you start GHCi like this:
        ghci -fexternal-interpreter -prof
      (which requires packages to be built for profiling, but not GHC
      itself) then the interpreter manages cost-centre stacks during
      execution and can produce a stack trace on request.  Call locations
      are available for all interpreted code, and any compiled code that was
      built with the `-fprof-auto` familiy of flags.
      There are a couple of ways to get a stack trace:
      * `error`/`undefined` automatically get one attached
      * `Debug.Trace.traceStack` can be used anywhere, and prints the current
      Because the interpreter is running in a separate process, only the
      interpreted code is running in profiled mode and the compiler itself
      isn't slowed down by profiling.
      The GHCi debugger still doesn't work with -fexternal-interpreter,
      although this patch gets it a step closer.  Most of the functionality
      of breakpoints is implemented, but the runtime value introspection is
      still not supported.
      Along the way I also did some refactoring and added type arguments to
      the various remote pointer types in `GHCi.RemotePtr`, so there's
      better type safety and documentation in the bridge code between GHC
      and ghc-iserv.
      Test Plan: validate
      Reviewers: bgamari, ezyang, austin, hvr, goldfire, erikd
      Subscribers: thomie
      Differential Revision: https://phabricator.haskell.org/D1747
      GHC Trac Issues: #11047, #11100
  8. 07 Jan, 2016 3 commits
    • Gabor Greif's avatar
      Typos in docs and comments · c78fedde
      Gabor Greif authored
    • Simon Peyton Jones's avatar
      Test Trac #10625 · 1ee92293
      Simon Peyton Jones authored
    • Simon Peyton Jones's avatar
      Make demand analysis understand catch · 9915b656
      Simon Peyton Jones authored
      As Trac #11222, and #10712 note, the strictness analyser
      needs to be rather careful about exceptions.  Previously
      it treated them as identical to divergence, but that
      won't quite do.
      See Note [Exceptions and strictness] in Demand, which
      explains the deal.
      Getting more strictness in 'catch' and friends is a
      very good thing.  Here is the nofib summary, keeping
      only the big ones.
              Program           Size    Allocs   Runtime   Elapsed  TotalMem
                fasta          -0.1%     -6.9%     -3.0%     -3.0%     +0.0%
                  hpg          -0.1%     -2.0%     -6.2%     -6.2%     +0.0%
             maillist          -0.1%     -0.3%      0.08      0.09     +1.2%
      reverse-complem          -0.1%    -10.9%     -6.0%     -5.9%     +0.0%
               sphere          -0.1%     -4.3%      0.08      0.08     +0.0%
                 x2n1          -0.1%     -0.0%      0.00      0.00     +0.0%
                  Min          -0.2%    -10.9%    -17.4%    -17.3%     +0.0%
                  Max          -0.0%     +0.0%     +4.3%     +4.4%     +1.2%
       Geometric Mean          -0.1%     -0.3%     -2.9%     -3.0%     +0.0%
      On the way I did quite a bit of refactoring in Demand.hs