1. 24 Sep, 2008 4 commits
  2. 23 Sep, 2008 2 commits
    • Ian Lynagh's avatar
      Remove some dependencies on bootstrapping.conf from libraries/Makefile · 703b1252
      Ian Lynagh authored
      They were causing some unnecessary work:
      Running make in a built tree reregisters the GHC package in
      bootstrapping.conf, and the build system thought that this updated
      timestamp meant that the configure stamps were out of date. This is
      particularly bad for the libraries with configure scripts, as those
      take a while to run.
      
      The bootstrapping.conf is built in an earlier phase ("make boot") so
      one shouldn't rely on the dependencies anyway.
      703b1252
    • Ian Lynagh's avatar
      Bump the version number to 6.11 · dcabff85
      Ian Lynagh authored
      dcabff85
  3. 21 Sep, 2008 4 commits
  4. 20 Sep, 2008 1 commit
  5. 23 Sep, 2008 2 commits
  6. 22 Sep, 2008 3 commits
  7. 20 Sep, 2008 6 commits
    • simonpj@microsoft.com's avatar
      Fix Trac #2597 (first bug): correct type checking for empty list · 5d786b6a
      simonpj@microsoft.com authored
      The GHC front end never generates (ExplicitList []), but TH can.
      This patch makes the typechecker robust to such programs.
      5d786b6a
    • simonpj@microsoft.com's avatar
      Fix Trac #2597 (second bug): complain about an empty DoE block · 6fa448e4
      simonpj@microsoft.com authored
      When converting an empty do-block from TH syntax to HsSyn,
      complain rather than crashing.
      6fa448e4
    • Ian Lynagh's avatar
      Update dependencies · f23f0af4
      Ian Lynagh authored
      f23f0af4
    • Ian Lynagh's avatar
      Fix building with GHC 6.6 · e5e6f6a1
      Ian Lynagh authored
      e5e6f6a1
    • Ian Lynagh's avatar
      Remove fno-method-sharing from the list of static flags · e6ab8ea2
      Ian Lynagh authored
      It is now a dynamic flag
      e6ab8ea2
    • simonpj@microsoft.com's avatar
      Tidy up the treatment of dead binders · 7e8cba32
      simonpj@microsoft.com authored
      This patch does a lot of tidying up of the way that dead variables are
      handled in Core.  Just the sort of thing to do on an aeroplane.
      
      * The tricky "binder-swap" optimisation is moved from the Simplifier
        to the Occurrence Analyser.  See Note [Binder swap] in OccurAnal.
        This is really a nice change.  It should reduce the number of
        simplifier iteratoins (slightly perhaps).  And it means that
        we can be much less pessimistic about zapping occurrence info
        on binders in a case expression.  
      
      * For example:
      	case x of y { (a,b) -> e }
        Previously, each time around, even if y,a,b were all dead, the
        Simplifier would pessimistically zap their OccInfo, so that we
        can't see they are dead any more.  As a result virtually no 
        case expression ended up with dead binders.  This wasn't Bad
        in itself, but it always felt wrong.
      
      * I added a check to CoreLint to check that a dead binder really
        isn't used.  That showed up a couple of bugs in CSE. (Only in
        this sense -- they didn't really matter.)
        
      * I've changed the PprCore printer to print "_" for a dead variable.
        (Use -dppr-debug to see it again.)  This reduces clutter quite a
        bit, and of course it's much more useful with the above change.
      
      * Another benefit of the binder-swap change is that I could get rid of
        the Simplifier hack (working, but hacky) in which the InScopeSet was
        used to map a variable to a *different* variable. That allowed me
        to remove VarEnv.modifyInScopeSet, and to simplify lookupInScopeSet
        so that it doesn't look for a fixpoint.  This fixes no bugs, but 
        is a useful cleanup.
      
      * Roman pointed out that Id.mkWildId is jolly dangerous, because
        of its fixed unique.  So I've 
      
           - localied it to MkCore, where it is private (not exported)
      
           - renamed it to 'mkWildBinder' to stress that you should only
             use it at binding sites, unless you really know what you are
             doing
      
           - provided a function MkCore.mkWildCase that emodies the most
             common use of mkWildId, and use that elsewhere
      
         So things are much better
      
      * A knock-on change is that I found a common pattern of localising
        a potentially global Id, and made a function for it: Id.localiseId
      7e8cba32
  8. 19 Sep, 2008 11 commits
  9. 18 Sep, 2008 3 commits
  10. 18 Apr, 2008 1 commit
  11. 18 Sep, 2008 3 commits
    • Jedai's avatar
      RichTokenStream support · 36104d7a
      Jedai authored
      This patch adds support for raw token streams, that contain more
      information than normal token streams (they contains comments at
      least). The "lexTokenStream" function brings this support to the
      Lexer module. In addition to that, functions have been added to
      the GHC module to make easier to recover of the token stream of 
      a module ("getTokenStream").
      
      Building on that, I added what could be called "rich token
      stream": token stream to which have been added the source string
      corresponding to each token, the function addSourceToToken takes
      a StringBuffer and a starting SrcLoc and a token stream and build
      this rich token stream. getRichTokenStream is a convenience
      function to get a module rich token stream. "showRichTokenStream"
      use the SrcLoc information in such a token stream to get a string
      similar to the original source (except unsignificant
      whitespaces). Thus "putStrLn . showRichTokenStream =<<
      getRichTokenStream s mod" should print a valid module source, the
      interesting part being to modify the token stream between the get
      and the show of course.
      36104d7a
    • Ian Lynagh's avatar
    • Ian Lynagh's avatar
      371fe432