1. 12 Sep, 2009 3 commits
  2. 11 Sep, 2009 15 commits
  3. 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
  4. 08 Sep, 2009 1 commit
  5. 05 Sep, 2009 1 commit
  6. 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
  7. 08 Sep, 2009 1 commit
  8. 10 Sep, 2009 1 commit
  9. 09 Sep, 2009 2 commits
  10. 10 Sep, 2009 1 commit
  11. 09 Sep, 2009 1 commit
  12. 08 Sep, 2009 2 commits
  13. 09 Sep, 2009 1 commit
  14. 08 Sep, 2009 1 commit