1. 11 Sep, 2009 10 commits
  2. 10 Sep, 2009 6 commits
    • Simon Marlow's avatar
      bd04809a
    • Simon Marlow's avatar
    • Simon Marlow's avatar
      0a30f73f
    • Simon Marlow's avatar
      ad282663
    • Simon Marlow's avatar
      fix installation of header files (#3451) · 05ca104e
      Simon Marlow authored
      05ca104e
    • simonpj@microsoft.com's avatar
      Three improvements to Template Haskell (fixes #3467) · 1e436f2b
      simonpj@microsoft.com authored
      This patch implements three significant improvements to Template Haskell.
        
      Declaration-level splices with no "$" 
      ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
      This change simply allows you to omit the "$(...)" wrapper for 
      declaration-level TH splices.  An expression all by itself is
      not legal, so we now treat it as a TH splice.  Thus you can now
      say
      	data T = T1 | T2
       	deriveMyStuff ''T
      
      where deriveMyStuff :: Name -> Q [Dec]
      This makes a much nicer interface for clients of libraries that use
      TH: no scary $(deriveMyStuff ''T).
      
      Nested top-level splices
      ~~~~~~~~~~~~~~~~~~~~~~~~
      Previously TH would reject this, saying that splices cannot be nested:
      	f x = $(g $(h 'x))
      But there is no reason for this not to work.  First $(h 'x) is run,
      yielding code <blah> that is spliced instead of the $(h 'x). Then (g
      <blah>) is typechecked and run, yielding code that replaces the
      $(g ...) splice.  
      
      So this simply lifts the restriction.
      
      Fix Trac #3467: non-top-level type splices
      ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
      
      It appears that when I added the ability to splice types in TH
      programs, I failed to pay attention to non-top-level splices -- that
      is, splices inside quotatation brackets.  
      
      This patch fixes the problem.  I had to modify HsType, so there's a
      knock-on change to Haddock.
      
      Its seems that a lot of lines of code has changed, but almost all the
      new lines are comments!
      
      General tidying up
      ~~~~~~~~~~~~~~~~~~
      As a result of thinking all this out I re-jigged the data type ThStage,
      which had far too many values before.  And I wrote a nice state transition
      diagram to make it all precise; 
         see Note [Template Haskell state diagram] in TcSplice
      
      Lots more refactoring in TcSplice, resulting in significantly less code.
      (A few more lines, but actually less code -- the rest is comments.)
      
      I think the result is significantly cleaner.
      1e436f2b
  3. 08 Sep, 2009 1 commit
  4. 05 Sep, 2009 1 commit
  5. 10 Sep, 2009 4 commits
    • simonpj@microsoft.com's avatar
      Comments in Cmm · be60e519
      simonpj@microsoft.com authored
      be60e519
    • Simon Marlow's avatar
      fix warnings · 95693ea9
      Simon Marlow authored
      95693ea9
    • Simon Marlow's avatar
      binary has unused-import warnings · 8a2b4cfc
      Simon Marlow authored
      8a2b4cfc
    • Simon Marlow's avatar
      Change the representation of the package database · 930421d4
      Simon Marlow authored
       - the package DB is a directory containing one file per package
         instance (#723)
      
       - there is a binary cache of the database (#593, #2089)
      
       - the binary package is now a boot package
      
       - there is a new package, bin-package-db, containing the Binary
         instance of InstalledPackageInfo for the binary cache.
      
      Also included in this patch
      
       - Use colour in 'ghc-pkg list' to indicate broken or hidden packages
        
         Broken packages are red, hidden packages are 
        
         Colour support comes from the terminfo package, and is only used when
          - not --simple-output
          - stdout is a TTY
          - the terminal type has colour capability
      
       - Fix the bug that 'ghc-pkg list --user' shows everything as broken
      930421d4
  6. 08 Sep, 2009 1 commit
  7. 10 Sep, 2009 1 commit
  8. 09 Sep, 2009 2 commits
  9. 10 Sep, 2009 1 commit
  10. 09 Sep, 2009 1 commit
  11. 08 Sep, 2009 2 commits
  12. 09 Sep, 2009 1 commit
  13. 08 Sep, 2009 6 commits
  14. 26 Aug, 2009 1 commit
  15. 08 Sep, 2009 2 commits
    • simonpj@microsoft.com's avatar
      Fix Trac #3403: interaction of CPR and pattern-match failure · 8a25c54e
      simonpj@microsoft.com authored
      A fine bug report (#3403) demonstrated that we were losing the tail
      call property when a complicated pattern match was involved.  After
      a bit of investigation I discovered that the culprit was the failure
      join-point introduced by the pattern matcher.  It was a zero-argument
      thunk, which is not very CPR-friendly, and that interacted badly with
      CPR worker/wrapper.
      
      It's easy to fix, the same way that we fix other join points, by supplying
      a dummy argument (that is not really passed at runtime.
      8a25c54e
    • simonpj@microsoft.com's avatar
      Fix Trac #3468: improve checking for hs-boot interfaces · a0d2e0fb
      simonpj@microsoft.com authored
      When checking the interface exported by a hs-boot file against the
      Real Thing, I'd failed to check the kind of a type constructor.  If you
      get it wrong, the inconsistency leads to all manner of mischief, as 
      'wkahl' reports in #3468.
      
      This patch should do the job.
      a0d2e0fb