1. 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
  2. 24 Nov, 2010 1 commit
  3. 20 Nov, 2010 1 commit
  4. 17 Nov, 2010 1 commit
  5. 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
  6. 28 Oct, 2010 1 commit
  7. 31 Aug, 2010 1 commit
  8. 23 Oct, 2010 1 commit
  9. 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
  10. 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
  11. 06 Oct, 2010 2 commits
  12. 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
  13. 24 Sep, 2010 1 commit
  14. 23 Sep, 2010 2 commits
  15. 22 Sep, 2010 1 commit
  16. 20 Sep, 2010 1 commit
  17. 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
  18. 18 Sep, 2010 1 commit
  19. 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
  20. 13 Sep, 2010 2 commits
  21. 03 Sep, 2010 1 commit
  22. 28 Jul, 2010 1 commit
  23. 10 Sep, 2010 1 commit
  24. 08 Sep, 2010 1 commit
  25. 23 Aug, 2010 1 commit
  26. 22 Aug, 2010 1 commit
  27. 19 Aug, 2010 1 commit
  28. 17 Aug, 2010 1 commit
  29. 16 Aug, 2010 1 commit
    • simonpj@microsoft.com's avatar
      Refactor the command-line argument parsing (again) · 0cb74388
      simonpj@microsoft.com authored
      This change allows the client of CmdLineParser a bit more flexibility,
      by giving him an arbitrary computation (not just a deprecation
      message) for each flag.  
      
      There are several clients, so there are lots of boilerplate changes.
      
      Immediate motivation: if RTS is not profiled, we want to make 
      Template Haskell illegal.  That wasn't with the old setup.
      0cb74388
  30. 13 Aug, 2010 1 commit
  31. 08 Aug, 2010 2 commits
  32. 05 Aug, 2010 1 commit
    • Ian Lynagh's avatar
      Make -rtsopts more flexible · 32073806
      Ian Lynagh authored
      The default is a new "some" state, which allows only known-safe flags
      that we want on by default. Currently this is only "--info".
      32073806
  33. 02 Aug, 2010 1 commit
  34. 24 Jul, 2010 1 commit