1. 27 Jan, 2011 1 commit
    • simonpj@microsoft.com's avatar
      Refine incomplete-pattern checks (Trac #4905) · a0f6d307
      simonpj@microsoft.com authored
      The changes are:
      
      * New flag -fwarn-incomplete-uni-patterns, which checks for
        incomplete patterns in (a) lambdas, (b) pattern bindings
      
      * New flag is not implied by -W or -Wall (too noisy; and many
        libraries use incomplete pattern bindings)
      
      * Actually do the incomplete-pattern check for pattern bindings
        (previously simply omitted)
      
      * Documentation for new flag
      a0f6d307
  2. 24 Jan, 2011 2 commits
    • Ian Lynagh's avatar
    • chak@cse.unsw.edu.au.'s avatar
      DPH options updated · 9e6e96bd
      chak@cse.unsw.edu.au. authored
      - '-Odph' is now '-O2 -fsimplifier-phases=3 -fsimplifier-iterations=20'
      - The new option '-fdph-none' is the default; it indicates that no DPH
        backend is selected and is the only valid option if the DPH libraries
        are not installed.  If vectorisation is attempted with -fdph-none a
        suitable error message is generated.
      - Hence, '-fdph-par' (or '-fdph-seq') needs to be explicitly selected
        when using vectorisation and when linking vectorised code.  (There
        seems to be no elegant way to avoid that.)
      9e6e96bd
  3. 04 Jan, 2011 1 commit
  4. 20 Dec, 2010 1 commit
  5. 22 Dec, 2010 1 commit
  6. 19 Dec, 2010 1 commit
    • kili's avatar
      Drop GhcWithLlvmCodeGen configuration bits · 17ff3689
      kili authored
      The LLVM code generator is always built unconditionally, so both the
      configuration variable in mk/config.mk.in as well as the string in
      compilerInfo can be removed.
      17ff3689
  7. 18 Dec, 2010 1 commit
  8. 14 Dec, 2010 1 commit
  9. 02 Dec, 2010 1 commit
  10. 30 Nov, 2010 1 commit
  11. 01 Dec, 2010 1 commit
  12. 27 Nov, 2010 2 commits
    • Ian Lynagh's avatar
      Always enable the archive-loading code · 9142c238
      Ian Lynagh authored
      If the GHCi .o lib doesn't exist, load the .a instead
      9142c238
    • rl@cse.unsw.edu.au's avatar
      New flag -dddump-rule-rewrites · 9c84f11b
      rl@cse.unsw.edu.au authored
      Now, -ddump-rule-firings only shows the names of the rules that fired (it would
      show "before" and "after" with -dverbose-core2core previously) and
      -ddump-rule-rewrites always shows the "before" and "after" bits, even without
      -dverbose-core2core.
      9c84f11b
  13. 24 Nov, 2010 1 commit
  14. 20 Nov, 2010 1 commit
  15. 17 Nov, 2010 1 commit
  16. 16 Nov, 2010 2 commits
    • simonpj@microsoft.com's avatar
      Some infrastruture for lambda-lifting · a0f04208
      simonpj@microsoft.com authored
      This stuff should have no effect but it sets things
      up so that we can try floating out lambdas of n value
      arguments.
      
      The new (secret) flag is -ffloatt-lam-args=n.
      
      This is *not* working yet, but it's got tangled up with
      other stuff I want to commit, and it does no harm.
      a0f04208
    • simonpj@microsoft.com's avatar
      Add warning for probable identities (fromIntegral and friends) · 0656c72a
      simonpj@microsoft.com authored
      See Trac #4488.  The basic idea is to check for
      
          fun :: ty -> ty
      
      where fun is one of
        toIntegerName     toRationalName
        fromIntegralName  realToFracName
      
      There's a (documented) flag to control it -fwarn-identities.
      Currently -Wall switches it on.
      0656c72a
  17. 28 Oct, 2010 1 commit
  18. 31 Aug, 2010 1 commit
  19. 23 Oct, 2010 1 commit
  20. 22 Oct, 2010 1 commit
    • simonpj@microsoft.com's avatar
      Add rebindable syntax for if-then-else · 4e0c994e
      simonpj@microsoft.com authored
      There are two main changes
      
       * New LANGUAGE option RebindableSyntax, which implies NoImplicitPrelude
      
       * if-the-else becomes rebindable, with function name "ifThenElse"
         (but case expressions are unaffected)
      
      Thanks to Sam Anklesaria for doing most of the work here
      4e0c994e
  21. 15 Oct, 2010 1 commit
    • Ian Lynagh's avatar
      Add a -fghci-sandbox flag so that we can en/disable the ghci sandbox · bf60bbfb
      Ian Lynagh authored
      It's on by default (which matches the previous behaviour).
      
      Motivation:
      GLUT on OS X needs to run on the main thread. If you
      try to use it from another thread then you just get a
      white rectangle rendered. For this, or anything else
      with such restrictions, you can turn the GHCi sandbox off
      and things will be run in the main thread.
      bf60bbfb
  22. 06 Oct, 2010 2 commits
  23. 07 Oct, 2010 1 commit
    • simonpj@microsoft.com's avatar
      Implement auto-specialisation of imported Ids · 92267aa2
      simonpj@microsoft.com authored
      This big-ish patch arranges that if an Id 'f' is 
        * Type-class overloaded 
             f :: Ord a => [a] -> [a]
        * Defined with an INLINABLE pragma
             {-# INLINABLE f #-}
        * Exported from its defining module 'D'
      
      then in any module 'U' that imports D
      
      1. Any call of 'f' at a fixed type will generate 
         (a) a specialised version of f in U
         (b) a RULE that rewrites unspecialised calls to the
             specialised on
      
        e.g. if the call is (f Int dOrdInt xs) then the 
        specialiser will generate
           $sfInt :: [Int] -> [Int]
           $sfInt = <code for f, imported from D, specialised>
           {-# RULE forall d.  f Int d = $sfInt #-}
      
      2. In addition, you can give an explicit {-# SPECIALISE -#}
         pragma for the imported Id
           {-# SPECIALISE f :: [Bool] -> [Bool] #-}
         This too generates a local specialised definition, 
         and the corresponding RULE 
      
      The new RULES are exported from module 'U', so that any module
      importing U will see the specialised versions of 'f', and will
      not re-specialise them.
      
      There's a flag -fwarn-auto-orphan that warns you if the auto-generated
      RULES are orphan rules. It's not in -Wall, mainly to avoid lots of
      error messages with existing packages.
      
      Main implementation changes
      
       - A new flag on a CoreRule to say if it was auto-generated.
         This is persisted across interface files, so there's a small
         change in interface file format.
      
       - Quite a bit of fiddling with plumbing, to get the 
         {-# SPECIALISE #-} pragmas for imported Ids.  In particular, a
         new field tgc_imp_specs in TcGblEnv, to keep the specialise
         pragmas for imported Ids between the typechecker and the desugarer.
      
       - Some new code (although surprisingly little) in Specialise,
         to deal with calls of imported Ids
      92267aa2
  24. 24 Sep, 2010 1 commit
  25. 23 Sep, 2010 2 commits
  26. 22 Sep, 2010 1 commit
  27. 20 Sep, 2010 1 commit
  28. 19 Sep, 2010 1 commit
    • simonpj@microsoft.com's avatar
      Add a flag -fwarn-missing-local-sigs, and improve -fwarn-mising-signatures · e8fa04cf
      simonpj@microsoft.com authored
      The new flag prints out a warning if you have a local,
      polymorphic binding that lacks a type signature. It's meant
      to help with the transition to the new typechecker, which
      discourages local let-generalisation.
      
      At the same time I moved the missing-signature code to TcHsSyn,
      where it takes place as part of zonking.  That way the 
      types are reported after all typechecking is complete,
      thereby fixing Trac #3696.  (It's even more important for
      local bindings, which is why I made the change.)
      e8fa04cf
  29. 18 Sep, 2010 1 commit
  30. 14 Sep, 2010 1 commit
    • Ian Lynagh's avatar
      Remove (most of) the FiniteMap wrapper · e95ee1f7
      Ian Lynagh authored
      We still have
          insertList, insertListWith, deleteList
      which aren't in Data.Map, and
          foldRightWithKey
      which works around the fold(r)WithKey addition and deprecation.
      e95ee1f7
  31. 13 Sep, 2010 2 commits
  32. 03 Sep, 2010 1 commit
  33. 28 Jul, 2010 1 commit
  34. 10 Sep, 2010 1 commit