This project is mirrored from Pull mirroring failed .
Repository mirroring has been paused due to too many failed attempts. It can be resumed by a project maintainer.
Last successful update .
  1. 04 Jan, 2013 1 commit
  2. 03 Jan, 2013 2 commits
  3. 02 Jan, 2013 20 commits
  4. 01 Jan, 2013 6 commits
    • Simon Peyton Jones's avatar
      Make the comments about SingI and EvLit match current reality · 215cf423
      Simon Peyton Jones authored
      See Note [SingI and EvLit] in TcEvidence.
    • Simon Peyton Jones's avatar
      Comments and white space only · b43fdcfe
      Simon Peyton Jones authored
    • Simon Peyton Jones's avatar
      Refactor the invariants for ClsInsts · 5efe9b11
      Simon Peyton Jones authored
      We now have the invariant for a ClsInst that the is_tvs field
      is always completely fresh type variables. See
      Note [Template tyvars are fresh] in InstEnv.
      (Previously we frehened them when extending the instance environment,
      but that seems messier because it was an invariant only when the
      ClsInst was in an InstEnv.  Moreover, there was an invariant that
      thet tyvars of the DFunid in the ClsInst had to match, and I have
      removed that invariant altogether; there is no need for it.)
      Other changes I made at the same time:
       * Make is_tvs into a *list*, in the right order for the dfun type
         arguments.  This removes the wierd need for the dfun to have the
         same tyvars as the ClsInst template, an invariant I have always
         hated. The cost is that we need to make it a VarSet when matching.
         We could cache an is_tv_set instead.
       * Add a cached is_cls field to the ClsInst, to save fishing
         the Class out of the DFun.  (Renamed is_cls to is_cls_nm.)
       * Make tcSplitDFunTy return the dfun args, not just the *number*
         of dfun args
       * Make InstEnv.instanceHead return just the *head* of the
         instance declaration.  Add instanceSig to return the whole
    • Simon Peyton Jones's avatar
      Fix typo in comment (Trac #7526) · 18003c9e
      Simon Peyton Jones authored
    • Ben Millwood's avatar
      Remove references to GHC 6.6 in docs · 9929172c
      Ben Millwood authored
    •'s avatar
  5. 29 Dec, 2012 1 commit
    • Iavor S. Diatchki's avatar
      Fix dictionaries for SingI. · 45279919
      Iavor S. Diatchki authored
      This adds the missing coercions in the constructed evidence for SingI.
      Previously we simply passed an integer or a string for the evidence,
      which was not quite correct and causes errors when the core lint is
      enabled.   This patch corrects this by inserting the necessary
  6. 24 Dec, 2012 8 commits
    • Simon Peyton Jones's avatar
      Make the treatment of addAltUnfoldings handle casts · 545fd8b9
      Simon Peyton Jones authored
      This minor refactoring re-attaches Note [Add unfolding for scrutinee].
      It had become detached, which led me on a bit of a wild goose
      While I was at it, I made the code work right for the case where
      the scrutinee is of form (x |> co); I don't think this is an important
      I also make simplAlt unconditionally zap occurrence information on
      case-alternative binders (see Note [Case alternative occ info]);
      it was almost always being zapped and the additional complexity seems
      not worth it.
    • Simon Peyton Jones's avatar
      Make combine-identical-alternatives work again (Trac #7360) · bacf7ca0
      Simon Peyton Jones authored
      Move the "combine indentical alternatives" transformation *before*
      simplifying the alternatives.  For example
           case x of y
              [] -> length y
              (_:_) -> length y }
      If we look *post* simplification, since 'y' is used in the
      alterantives, the case binders *might* be (see the keep_occ_info test
      in Simplify.simplAlt); and hence the combination of the two
      alteranatives does not happen.  But if we do it *pre* simplification
      there is no problem.
      This fixes Trac #7360.
    • Simon Peyton Jones's avatar
    • Simon Peyton Jones's avatar
      Simplify the binder-swap transformation · 9ea2b666
      Simon Peyton Jones authored
      The occurrence analyser implements the "binder-swap" transformation,
      described in Note [Binder swap] in OccAnal. For some reason I had
      implemeted an extremely complicated version, I believe intended to get
      as much as possible done in single simplifier pass.  But it turned
      out (Trac #7258) that the 'getProxies' bit of this complicated code
      scaled rather non-linearly, and all by itself could consume half of
      the entire compile time.
      The patch dramatically simplifies the transformation, so that
      we simply swizzle
           case x of y { I# v -> e }
           case x of y { I# v -> let x = y in e }
      I can't see any reason not to do this
        * Compiler allocation for #7258 with 200 fields goes down by 25%
          and compile time by 20%
        * The nofib figures do not budge
        * Quite a bit of complicated code goes away
    • Simon Peyton Jones's avatar
      Comment typo only · e661e290
      Simon Peyton Jones authored
    • Simon Peyton Jones's avatar
    • Simon Peyton Jones's avatar
      Remember to zonk when taking free variables in simpl_top · 1d07cc04
      Simon Peyton Jones authored
      Forgetting this meant that we were upating the same
      meta-tyvar twice.  Fixes Trac #7525.
    • Simon Peyton Jones's avatar
      A bit more tracing · e9e650dd
      Simon Peyton Jones authored
  7. 23 Dec, 2012 2 commits
    • Simon Peyton Jones's avatar
      Merge branch 'master' of · e5ccb4ee
      Simon Peyton Jones authored
    • Simon Peyton Jones's avatar
      Make {-# UNPACK #-} work for type/data family invocations · 1ee1cd41
      Simon Peyton Jones authored
      This fixes most of Trac #3990.  Consider
        data family D a
        data instance D Double = CD Int Int
        data T = T {-# UNPACK #-} !(D Double)
      Then we want the (D Double unpacked).
      To do this we need to construct a suitable coercion, and it's much
      safer to record that coercion in the interface file, lest the in-scope
      instances differ somehow.  That in turn means elaborating the HsBang
      type to include a coercion.
      To do that I moved HsBang from BasicTypes to DataCon, which caused
      quite a few minor knock-on changes.
      Interface-file format has changed!
      Still to do: need to do knot-tying to allow instances to take effect
      within the same module.