1. 10 Sep, 2013 3 commits
  2. 09 Sep, 2013 1 commit
  3. 06 Sep, 2013 1 commit
    • thoughtpolice's avatar
      Add basic support for GHCJS · b372e8ea
      thoughtpolice authored
      
      
      This patch encompasses most of the basic infrastructure for GHCJS. It
      includes:
      
        * A new extension, -XJavaScriptFFI
        * A new architecture, ArchJavaScript
        * Parser and lexer support for 'foreign import javascript', only
          available under -XJavaScriptFFI, using ArchJavaScript.
        * As a knock-on, there is also a new 'WayCustom' constructor in
          DynFlags, so clients of the GHC API can add custom 'tags' to their
          built files. This should be useful for other users as well.
      
      The remaining changes are really just the resulting fallout, making sure
      all the cases are handled appropriately for DynFlags and Platform.
      Authored-by: Luite Stegeman's avatarLuite Stegeman <stegeman@gmail.com>
      Signed-off-by: thoughtpolice's avatarAustin Seipp <aseipp@pobox.com>
      b372e8ea
  4. 04 Sep, 2013 3 commits
  5. 03 Sep, 2013 1 commit
  6. 02 Sep, 2013 1 commit
    • Simon Peyton Jones's avatar
      Make Specialise close over kind variables (fixes Trac #8196) · 8d7dd547
      Simon Peyton Jones authored
      This is a lingering bug from the introduction of polymorphic kinds.
      In the specialiser we were specialising over a type, but failing
      to specialise over the kinds it mentions.
      
      The fix is simple: add a call to closeOverKinds.
      
      Most of the patch is to add closeOverKinds, and to use it in a few
      other places where we are doing essentially the same thing.
      8d7dd547
  7. 29 Aug, 2013 2 commits
  8. 28 Aug, 2013 1 commit
  9. 27 Aug, 2013 2 commits
  10. 14 Aug, 2013 1 commit
    • Jan Stolarek's avatar
      Comparison primops return Int# (Fixes #6135) · 6579a6c7
      Jan Stolarek authored
      This patch modifies all comparison primops for Char#, Int#, Word#, Double#,
      Float# and Addr# to return Int# instead of Bool. A value of 1# represents True
      and 0# represents False. For a more detailed description of motivation for this
      change, discussion of implementation details and benchmarking results please
      visit the wiki page: http://hackage.haskell.org/trac/ghc/wiki/PrimBool
      
      There's also some cleanup: whitespace fixes in files that were extensively edited
      in this patch and constant folding rules for Integer div and mod operators (which
      for some reason have been left out up till now).
      6579a6c7
  11. 05 Aug, 2013 1 commit
  12. 04 Aug, 2013 1 commit
    • eir@cis.upenn.edu's avatar
      Refactor checking for GADT-like datacons' return types · 3cd1360f
      eir@cis.upenn.edu authored
      This check is somewhat subtle. See Note [Checking GADT return types]
      in TcTyClsDecls. The new plan is to check *before* desugaring the type
      from HsType to Type. This avoids problems with the pattern-match
      in rejigConRes.
      
      As a nice side benefit to this, I discovered that Template Haskell
      splices were a little conservative in their treatment of valid data
      constructors. (For example, a kind signature in the return type caused
      failure.) Now, the TH code uses exactly the same function as the
      "real" code, which is nice. See hsTyGetAppHead_maybe in HsTypes.
      3cd1360f
  13. 02 Aug, 2013 1 commit
  14. 30 Jul, 2013 1 commit
  15. 28 Jun, 2013 4 commits
  16. 25 Jun, 2013 2 commits
  17. 24 Jun, 2013 1 commit
  18. 21 Jun, 2013 1 commit
    • eir@cis.upenn.edu's avatar
      Revise implementation of overlapping type family instances. · 569b2652
      eir@cis.upenn.edu authored
      This commit changes the syntax and story around overlapping type
      family instances. Before, we had "unbranched" instances and
      "branched" instances. Now, we have closed type families and
      open ones.
      
      The behavior of open families is completely unchanged. In particular,
      coincident overlap of open type family instances still works, despite
      emails to the contrary.
      
      A closed type family is declared like this:
      > type family F a where
      >   F Int = Bool
      >   F a   = Char
      The equations are tried in order, from top to bottom, subject to
      certain constraints, as described in the user manual. It is not
      allowed to declare an instance of a closed family.
      569b2652
  19. 19 Jun, 2013 1 commit
  20. 17 Jun, 2013 1 commit
  21. 12 Jun, 2013 3 commits
    • Simon Peyton Jones's avatar
      Remove dead code · 289be612
      Simon Peyton Jones authored
      289be612
    • Simon Peyton Jones's avatar
      355d57a5
    • Simon Peyton Jones's avatar
      Fix the constraint simplifier (Trac #7967) · 262cab0f
      Simon Peyton Jones authored
      Richard's bug report showed up a couple of subtleties in the constraint solver
      
      * We can strengthen the kind invariants on CTyEqCan and CFunEqCan
          See Note [Kind orientation for CTyEqCan]
          and Note [Kind orientation for CFunEqCan] in TcRnTypes
        There are some changes to reOrient and checkKind in TcCanonical
        to support these stronger invarants.
      
      * In TcSimplify we must make sure that we re-simplify if defaultTyVar
        does anything.  See Note [Must simplify after defaulting] in TcSimplify.
      
      The usual round of refactoring follows!
      262cab0f
  22. 10 Jun, 2013 3 commits
  23. 06 Jun, 2013 1 commit
    • Simon Peyton Jones's avatar
      Add TyCon.checkRecTc, and use in in typeArity · a1a67b58
      Simon Peyton Jones authored
      This just formalises an abstraction we've been using anyway,
      namely to expand "recursive" TyCons until we see them twice.
      We weren't doing this in typeArity, and that inconsistency
      was leading to a subsequent ASSERT failure, when compiling
      Stream.hs, which has a newtype like this
      
         newtype Stream m a b = Stream (m (Either b (a, Stream m a b)))
      a1a67b58
  24. 05 Jun, 2013 1 commit
  25. 03 Jun, 2013 1 commit
  26. 30 May, 2013 1 commit