1. 29 Mar, 2016 1 commit
  2. 28 Mar, 2016 1 commit
  3. 26 Mar, 2016 2 commits
  4. 25 Mar, 2016 1 commit
  5. 24 Mar, 2016 13 commits
    • kaiha's avatar
      Add option `no-keep-hi-files` and `no-keep-o-files` (fixes #4114) · 24149528
      kaiha authored
      Summary: Remove `.hi` and `.o` files if the flags `no-keep-hi-files` and
      `no-keep-o-files` are given.
      
      Test Plan: ./validate
      
      Reviewers: austin, thomie, bgamari
      
      Reviewed By: thomie, bgamari
      
      Subscribers: thomie
      
      Differential Revision: https://phabricator.haskell.org/D2021
      
      GHC Trac Issues: #4114
      24149528
    • Simon Peyton Jones's avatar
      Tidy up handling of coercion variables · cb08f8da
      Simon Peyton Jones authored
      * Comments to explain that a CoVar, whose IdInfo is CoVarId,
        is always unlifted (but may be nominal or representational role)
      
        And TyCoRep.isCoercionType picks out only those unlifted
        types, NOT the lifted versions
      
      * Introduce Var.NcId for non-co-var Ids
        with predicate isNonCoVarId
      
      * Add assertions in CoreSubst that the Id env is only
        used for NcIds
      
      * Fix lurking bug in CSE which extended the
        CoreSubst Id env with a CoVar
      
      * Fix two bugs in Specialise.spec_call, which wrongly treated
        CoVars like NcIds
          - needed a varToCoreExpr in one place
          - needed extendSubst not extendIdSubst in another
        This was the root cause of Trac #11644
      
      Minor refactoring
      
      * Eliminate unused mkDerivedLocalCoVarM, mkUserLocalCoVar
      * Small refactor in mkSysLocalOrCoVar
      cb08f8da
    • Ben Gamari's avatar
      Defer inlining of Eq for primitive types · 0bd0c31e
      Ben Gamari authored
      Summary:
      This is one solution to #11688, wherein (==) was inlined to soon
      defeating a rewrite rule provided by bytestring. Since the RHSs of Eq's
      methods are simple, there is little to be gained and much to be lost by
      inlining them early.
      
      For instance, the bytestring library provides,
      
      ```lang=haskell
      break :: (Word8 -> Bool) -> ByteString -> (ByteString, ByteString)
      breakByte :: Word8 -> ByteString -> (ByteString, ByteString)
      ```
      
      and a rule
      
      ```
      forall x. break ((==) x) = breakByte x
      ```
      
      since `breakByte` implments an optimized version of `break (== x)` for
      known `x :: Word8`. If we allow `(==)` to be inlined too early, we will
      prevent this rule from firing. This was the cause of #11688.
      
      This patch just defers the `Eq` methods, although it's likely worthwhile
      giving `Ord` this same treatment. This regresses compiler allocations
      for T9661 by about 8% due to the additional inlining that we now require
      the simplifier to perform.
      
      Updates the `bytestring` submodule to include updated rewrite rules
      which match on `eqWord8` instead of `(==)`.
      
      Test Plan:
       * Validate, examine performance impact
      
      Reviewers: simonpj, hvr, austin
      
      Subscribers: thomie
      
      Differential Revision: https://phabricator.haskell.org/D1980
      
      GHC Trac Issues: #11688
      0bd0c31e
    • Ben Gamari's avatar
      Default RuntimeRep variables unless -fprint-explicit-runtime-reps · 371608f1
      Ben Gamari authored
      Summary:
      Addresses #11549 by defaulting `RuntimeRep` variables to `PtrRepLifted`
      and adding a new compiler flag `-fprint-explicit-runtime-reps` to
      disable this behavior.
      
      This is just a guess at the right way to go about this. If it's
      wrong-beyond-any-hope just say so.
      
      Test Plan: Working on a testcase
      
      Reviewers: goldfire, austin
      
      Subscribers: simonpj, thomie
      
      Differential Revision: https://phabricator.haskell.org/D1961
      
      GHC Trac Issues: #11549
      371608f1
    • Ben Gamari's avatar
      Show: Restore redundant parentheses around records · 1448f8ab
      Ben Gamari authored
      As discussed in #2530 we are going to continue to produce parentheses
      here in order to preserve compatibility with previous GHC releases. It
      was found that dropped parentheses would break some testsuites which
      compared against output from Show. This has been documented in the users
      guide.
      
      This reverts commit 5692643c.
      
      Test Plan: Validate
      
      Reviewers: hvr, austin
      
      Subscribers: thomie
      
      Differential Revision: https://phabricator.haskell.org/D2027
      
      GHC Trac Issues: #2350
      1448f8ab
    • Ben Gamari's avatar
      Add expected output for T9405 · 8335cc73
      Ben Gamari authored
      8335cc73
    • Ben Gamari's avatar
      DsExpr: Rip out static/dynamic check in list desugaring · 0db05941
      Ben Gamari authored
      Previously we would try to break explicit lists into a dynamic prefix
      and static tail and desugar the former into a `build` expression.
      Unfortunately, this heuristic resulted in surprising behavior
      (see #11710) and wasn't pulling its weight. Here we drop it (along with
      the `-fsimple-list-literals` flag), leaving only the list length
      heuristic to determine whether `build` or cons list desugaring should be
      used.
      
      Test Plan: Validate
      
      Reviewers: simonpj, austin
      
      Reviewed By: simonpj
      
      Subscribers: thomie
      
      Differential Revision: https://phabricator.haskell.org/D2023
      
      GHC Trac Issues: #11710
      0db05941
    • kaiha's avatar
      Create empty dump files (fixes #10320) · 9f9345e5
      kaiha authored
      Test Plan: ./validate
      
      Reviewers: austin, bgamari
      
      Reviewed By: bgamari
      
      Subscribers: thomie
      
      Differential Revision: https://phabricator.haskell.org/D2015
      
      GHC Trac Issues: #10320
      9f9345e5
    • Josh Price's avatar
      Add unicode syntax for banana brackets · 03a1bb4d
      Josh Price authored
      Summary:
      Add "⦇" and "⦈" as unicode alternatives for "(|" and "|)" respectively.
      
      This must be implemented differently than other unicode additions
      because ⦇" and "⦈" are interpretted as a $unigraphic rather than
      a $unisymbol.
      
      Test Plan: validate
      
      Reviewers: goldfire, bgamari, austin
      
      Reviewed By: bgamari, austin
      
      Subscribers: thomie, mpickering
      
      Differential Revision: https://phabricator.haskell.org/D2012
      
      GHC Trac Issues: #10162
      03a1bb4d
    • archblob's avatar
      Close ticky profiling file stream after printing (#9405) · 2708c22b
      archblob authored
      Test Plan: T9405
      
      Reviewers: simonmar, austin, bgamari
      
      Reviewed By: simonmar, bgamari
      
      Subscribers: thomie
      
      Differential Revision: https://phabricator.haskell.org/D2008
      
      GHC Trac Issues: #9405
      2708c22b
    • Rik Steenkamp's avatar
      Add `PatSynSigSkol` and modify `PatSynCtxt` · 997312b0
      Rik Steenkamp authored
      As the type of a pattern synonym cannot in general be represented by a
      value of type Type, we cannot use a value `SigSkol (PatSynCtxt n) (Check
      ty)` to represent the signature of a pattern synonym (this causes
      incorrect signatures to be printed in error messages). Therefore we now
      represent it by a value `PatSynSigSkol n` (instead of incorrect
      signatures we simply print no explicit signature).
      
      Furthermore, we rename `PatSynCtxt` to `PatSynBuilderCtxt`, and use
      `SigSkol (PatSynBuilderCtxt n) (Check ty)` to represent the type of a
      bidirectional pattern synonym when used in an expression context.
      Before, this type was represented by a value `SigSkol (PatSynCtxt n)
      (Check ty)`, which caused incorrect error messages.
      
      Also, in `mk_dict_err` of `typecheck\TcErrors.hs` we now distinguish
      between all enclosing implications and "useful" enclosing implications,
      for better error messages concerning pattern synonyms. See `Note [Useful
      implications]`.
      
      See the Phabricator page for examples.
      
      Reviewers: mpickering, goldfire, simonpj, austin, bgamari
      
      Reviewed By: bgamari
      
      Subscribers: thomie
      
      Differential Revision: https://phabricator.haskell.org/D1967
      
      GHC Trac Issues: #11667
      997312b0
    • Ben Gamari's avatar
      Ensure T9646 dump-simpl output is cleaned · da3b29bd
      Ben Gamari authored
      da3b29bd
    • bollmann's avatar
      Fix regression test for #11145. · e57b9ffe
      bollmann authored
      Test Plan: ./validate
      
      Reviewers: austin, bgamari
      
      Reviewed By: bgamari
      
      Subscribers: thomie
      
      Differential Revision: https://phabricator.haskell.org/D2032
      
      GHC Trac Issues: #11145
      e57b9ffe
  6. 23 Mar, 2016 1 commit
  7. 21 Mar, 2016 9 commits
  8. 20 Mar, 2016 8 commits
  9. 19 Mar, 2016 1 commit
  10. 17 Mar, 2016 3 commits
    • eir@cis.upenn.edu's avatar
      Fix #11512 by getting visibility right for methods · f4f315a3
      eir@cis.upenn.edu authored
      Test case: typecheck/should_compile/T11512
      f4f315a3
    • eir@cis.upenn.edu's avatar
      Fix #11716. · 3fe87aa0
      eir@cis.upenn.edu authored
      There were several smallish bugs here:
       - We had too small an InScopeSet when rejigging GADT return types.
       - When adding the extra_tvs with a datatype kind signature, we
         were sometimes changing Uniques of an explicitly bound kind var.
       - Using coercionKind in the flattener got the wrong visibility
         for a binder. Now we just zonk to get what we need.
      
      Test case: dependent/should_compile/RaeJobTalk
      3fe87aa0
    • eir@cis.upenn.edu's avatar
      Fix #11711. · b5565f1a
      eir@cis.upenn.edu authored
      There were two bugs here, both simple: we need to filter out
      covars before calling isMetaTyVar in the solver, and TcPat had
      a tcSubType the wrong way round.
      
      test case: dependent/should_compile/T11711
      b5565f1a