1. 03 Nov, 2007 2 commits
  2. 28 Oct, 2007 1 commit
  3. 02 Nov, 2007 3 commits
  4. 01 Nov, 2007 3 commits
    • simonpj@microsoft.com's avatar
    • simonpj@microsoft.com's avatar
      Rejig the error messages a bit; fixes a minor bug · 2e68d041
      simonpj@microsoft.com authored
      The type checker was only reporting the first message if an equality
      failed to match.  This patch does a bit of refactoring and fixes the
      bug, which was in the bogus use of eqInstMisMatch 
      in tcSimplify.report_no_instances.b
      
      This is really a bug in 6.8 too, so this would be good to merge across
      to the 6.8 branch.
      2e68d041
    • David Waern's avatar
      Refactor Haddock options · 03d8585e
      David Waern authored
      This patch renames the DOC_OPTIONS pragma to OPTIONS_HADDOCK. It also
      adds "-- # ..."-style Haddock option pragmas, for compatibility with
      code that use them.
      
      Another change is that both of these two pragmas behave like
      OPTIONS_GHC, i.e. they are only allowed at the top of the module, they
      are ignored everywhere else and they are stored in the dynflags. There is
      no longer any Haddock options in HsSyn.
      
      Please merge this to the 6.8.2 branch when 6.8.1 is out, if appropriate.
      03d8585e
  5. 31 Oct, 2007 2 commits
  6. 30 Oct, 2007 2 commits
  7. 29 Oct, 2007 4 commits
  8. 27 Oct, 2007 1 commit
    • simonpj@microsoft.com's avatar
      In a pattern binding, a type sig in the pattern cannot bind a type variable · 2f647ec6
      simonpj@microsoft.com authored
      In a pattern binding with a pattern type signature, such as
      
      	(Just (x::a)) = e
      
      the pattern type signature cannot bind type variables.  Hence
      'a' must be in scope already for the above example to be legal.
      
      This has been the situation for some time, but Dan changed it when
      adding view patterns.  This one-line change restores the old behaviour.
      2f647ec6
  9. 29 Oct, 2007 1 commit
    • simonpj@microsoft.com's avatar
      Substantial improvement to the interaction of RULES and inlining · cc51a698
      simonpj@microsoft.com authored
      	(Merge to 6.8 branch after testing.)
      
      There were a number of delicate interactions between RULEs and inlining
      in GHC 6.6.  I've wanted to fix this for a long time, and some perf
      problems in the 6.8 release candidate finally forced me over the edge!
      
      The issues are documented extensively in OccurAnal, Note [Loop breaking
      and RULES], and I won't duplicate them here.  (Many of the extra lines in
      OccurAnal are comments!)
      
      This patch resolves Trac bugs #1709, #1794, #1763, I believe.
      
      cc51a698
  10. 26 Oct, 2007 1 commit
  11. 24 Oct, 2007 2 commits
  12. 27 Oct, 2007 4 commits
  13. 07 Oct, 2007 1 commit
  14. 27 Oct, 2007 1 commit
  15. 26 Oct, 2007 3 commits
  16. 27 Oct, 2007 8 commits
    • simonpj@microsoft.com's avatar
      Make 'improvement' work properly in TcSimplify · 6ac37f3b
      simonpj@microsoft.com authored
      	(Please merge this, and the preceding 
      	handful from me to the 6.8 branch.)
      
      This patch fixes a serious problem in the type checker, whereby
      TcSimplify was going into a loop because it thought improvement
      had taken place, but actually the unificataion was actually deferred.
      
      We thereby fix Trac #1781, #1783, #1795, and #1797!
      
      In fixing this I found what a mess TcSimplify.reduceContext is! 
      We need to fix this.
      
      The main idea is to replace the "improvement flag" in Avails with
      a simpler and more direct test: have any of the mutable type variables
      in the (zonked) 'given' or 'irred' constraints been filled in?
      This test uses the new function TcMType.isFilledMetaTyVar; the test
      itself is towards the end of reduceContext.
      
      I fixed a variety of other infelicities too, and left some ToDos.
      
      6ac37f3b
    • simonpj@microsoft.com's avatar
    • simonpj@microsoft.com's avatar
      In an AbsBinds, the 'dicts' can include EqInsts · 6bb65108
      simonpj@microsoft.com authored
      An AbsBinds abstrats over evidence, and the evidence can be both
      Dicts (class constraints, implicit parameters) and EqInsts (equality
      constraints).  So we need to
        - use varType rather than idType
        - use instToVar rather than instToId
        - use zonkDictBndr rather than zonkIdBndr in zonking
      
      It actually all worked before, but gave warnings.
      
      6bb65108
    • simonpj@microsoft.com's avatar
      More notes · 0f8aee2a
      simonpj@microsoft.com authored
      0f8aee2a
    • simonpj@microsoft.com's avatar
      Comments only · 0a599d22
      simonpj@microsoft.com authored
      0a599d22
    • simonpj@microsoft.com's avatar
      Add anyM to IOEnv · 7018caf5
      simonpj@microsoft.com authored
      7018caf5
    • simonpj@microsoft.com's avatar
      Add a note to NOTES · 0119f79b
      simonpj@microsoft.com authored
      0119f79b
    • chevalier@alum.wellesley.edu's avatar
      Make compileToCore return the module name and type environment along with bindings · 8102af4e
      chevalier@alum.wellesley.edu authored
        compileToCore returned just a list of CoreBind, which isn't enough,
      since to do anything with the resulting Core code, you probably also
      want the type declarations. I left compileToCore as it is, but added a
      function compileToCoreModule that returns a complete Core module (with
      module name, type environment, and bindings). I'm not sure that
      returning the type environment is the best way to represent the type
      declarations for the given module, but I don't want to reinvent the
      External Core wheel for this.
      8102af4e
  17. 25 Oct, 2007 1 commit