1. 25 May, 2020 1 commit
    • Zubin's avatar
      Add info about typeclass evidence to .hie files · a8dc02f0
      Zubin authored
      See `testsuite/tests/hiefile/should_run/HieQueries.hs` and
      `testsuite/tests/hiefile/should_run/HieQueries.stdout` for an example of this
      
      We add two new fields, `EvidenceVarBind` and `EvidenceVarUse` to the
      `ContextInfo` associated with an Identifier. These are associated with the
      appropriate identifiers for the evidence variables collected when we come across
      `HsWrappers`, `TcEvBinds` and `IPBinds` while traversing the AST.
      
      Instance dictionary and superclass selector dictionaries from `tcg_insts` and
      classes defined in `tcg_tcs` are also recorded in the AST as originating from
      their definition span
      
      This allows us to save a complete picture of the evidence constructed by the
      constraint solver, and will let us report this to the user, enabling features
      like going to the instance definition from the invocation of a class method(or
      any other method taking a constraint) and finding all usages of a particular
      instance.
      
      Additionally,
      
      - Mark NodeInfo with an origin so we can differentiate between bindings
        origininating in the source vs those in ghc
      - Along with typeclass evidence info, also include information on Implicit
        Parameters
      - Add a few utility functions to HieUtils in order to query the new info
      
      Updates haddock submodule
      a8dc02f0
  2. 24 May, 2020 10 commits
  3. 23 May, 2020 7 commits
    • Ben Gamari's avatar
      git: Add ignored commits file · 7ae57afd
      Ben Gamari authored and Marge Bot's avatar Marge Bot committed
      This can be used to tell git to ignore bulk renaming commits like the
      recently-finished module hierarchy refactoring. Configured with,
      
          git config blame.ignoreRevsFile .git-ignore-revs
      7ae57afd
    • Ben Gamari's avatar
      users-guide: Clarify meaning of -haddock flag · 856adf54
      Ben Gamari authored and Marge Bot's avatar Marge Bot committed
      Fixes #18206.
      856adf54
    • Ben Gamari's avatar
      Bump process submodule · a60dc835
      Ben Gamari authored and Marge Bot's avatar Marge Bot committed
      Fixes #17926.
      a60dc835
    • John Ericson's avatar
      Fix #18145 and also avoid needless work with implicit vars · 82cb8913
      John Ericson authored and Marge Bot's avatar Marge Bot committed
      
      
       - `forAllOrNothing` now is monadic, so we can trace whether we bind
         an explicit `forall` or not.
      
       - #18145 arose because the free vars calculation was needlessly
         complex. It is now greatly simplified.
      
       - Replaced some other implicit var code with `filterFreeVarsToBind`.
      
      Co-authored-by: Ryan Scott's avatarRyan Scott <ryan.gl.scott@gmail.com>
      82cb8913
    • Ben Gamari's avatar
      simplCore: Ignore ticks in rule templates · dcd6bdcc
      Ben Gamari authored and Marge Bot's avatar Marge Bot committed
      This fixes #17619, where a tick snuck in to the template of a rule,
      resulting in a panic during rule matching. The tick in question was
      introduced via post-inlining, as discussed in `Note [Simplifying
      rules]`. The solution we decided upon was to simply ignore ticks in the
      rule template, as discussed in `Note [Tick annotations in RULE
      matching]`.
      
      Fixes #18162.
      Fixes #17619.
      dcd6bdcc
    • Andrew Martin's avatar
      Implement cstringLength# and FinalPtr · 49301ad6
      Andrew Martin authored and Marge Bot's avatar Marge Bot committed
      This function and its accompanying rule resolve issue #5218.
      A future PR to the bytestring library will make the internal
      Data.ByteString.Internal.unsafePackAddress compute string length
      with cstringLength#. This will improve the status quo because it is
      eligible for constant folding.
      
      Additionally, introduce a new data constructor to ForeignPtrContents
      named FinalPtr. This additional data constructor, when used in the
      IsString instance for ByteString, leads to more Core-to-Core
      optimization opportunities, fewer runtime allocations, and smaller
      binaries.
      
      Also, this commit re-exports all the functions from GHC.CString
      (including cstringLength#) in GHC.Exts. It also adds a new test
      driver. This test driver is used to perform substring matches on Core
      that is dumped after all the simplifier passes. In this commit, it is
      used to check that constant folding of cstringLength# works.
      49301ad6
    • ase's avatar
      docs: fix formatting and add some links · d830bbc9
      ase authored and Marge Bot's avatar Marge Bot committed
      [skip ci]
      d830bbc9
  4. 21 May, 2020 22 commits