1. 23 Feb, 2007 4 commits
  2. 22 Feb, 2007 4 commits
  3. 11 Jan, 2007 1 commit
  4. 21 Feb, 2007 3 commits
  5. 19 Feb, 2007 1 commit
    • mnislaih's avatar
      Removed unnecessary code · 704422eb
      mnislaih authored
      The breakpointJump functions never show up in the code that the typechecker sees, as they are inserted by the desugarer later.
      704422eb
  6. 21 Feb, 2007 8 commits
  7. 20 Feb, 2007 4 commits
  8. 19 Feb, 2007 1 commit
  9. 16 Feb, 2007 3 commits
  10. 14 Feb, 2007 1 commit
  11. 15 Feb, 2007 1 commit
    • mnislaih's avatar
      Fixed a bug in the datacon names extension in the dynamic linker · 47ec5807
      mnislaih authored
      My code was doing unnecessary work when trying to get hold of all the BCOs in order to sniff the datacon names.
      This involved calculating the transitive closure of a relation and was causing a huge performance slowdown in GHCi, as benchmarks uncovered. It turns out that this calculation was unnecessary.
      47ec5807
  12. 13 Feb, 2007 1 commit
  13. 15 Feb, 2007 1 commit
    • Simon Marlow's avatar
      When the pipeline just copies the file, prepend a LINE pragma · cf411c9a
      Simon Marlow authored
      For example, "ghc -E Foo.hs -o Foo.bar" just copies Foo.hs to
      Foo.bar.  This patch adds a LINE pragma to the beginning of Foo.bar so
      that further processing can track the location of the original file.
      
      The motiviation for this is bug #1044.  When generating Haddock docs,
      we preprocess the .hs to a .raw-hs, sometimes this doesn't involve any
      actual preprocessing and in those cases we lose track of the original
      filename.
      cf411c9a
  14. 14 Feb, 2007 2 commits
    • Simon Marlow's avatar
      add a ToDo, reference bug #1147 · 4564c112
      Simon Marlow authored
      4564c112
    • Simon Marlow's avatar
      fix closure_sizeW_() for AP closures · dcecd7a5
      Simon Marlow authored
      Since thunks grew an extra padding word in GHC 6.6, closure_sizeW()
      has been wrong for AP closures because it assumed compatible layout
      between PAPs and APs.  One symptom is that the compacting GC would
      crash if it encountered an AP.  APs conly crop up in GHCi or
      when using asynchronous exceptions.
      
      Fixes #1010
      dcecd7a5
  15. 13 Feb, 2007 2 commits
  16. 09 Feb, 2007 3 commits
    • simonpj@microsoft.com's avatar
      Major improvement to SpecConstr · cac2aca1
      simonpj@microsoft.com authored
      This patch improves the SpecConstr pass, by 
        a) making it work with join points
        b) making it generate specialisations transitively
      
      As part of it, SpecConstr now carries a substitution with it, which
      runs over the whole program as it goes.  This turned out to be 
      a big win; simplified the implementation quite a bit.
      
      I have *disabled* the specialisation on lambdas; it's pretty fragile,
      and sometimes generates more and more specialisations. Something to
      come back to, perhaps.
      
      I rejigged the flag-handling a bit.  Now the specification of passes
      in DynFlags is a bit nicer; see
      	- optLevelFlags top-level data structure
      	- runWhen function
      	- CoreDoPasses constructor
      
      There are now command-line flags
      	-fspec-constr
      	-fliberate-case
      	-fspec-threshold=N
      which do the obvious thing.  -O2 switches on both spec-constr and liberate-case.
      You can use -fno-liberate-case, -fno-spec-constr after -O2 to switch them off again.
      
      The spec-threshold applies to both these transformations; default value 200 for now.
      
      
      
      
      cac2aca1
    • simonpj@microsoft.com's avatar
      Refactor the simplifier's treatment of case expressions · e9f23b4c
      simonpj@microsoft.com authored
      (NB: this patch could conceivably require some bits of the 
      following SpecConstr patch to compile cleanly.  It's conceptually
      independent, but I'm not 100% certain that I've included all
      the necessary bits here.)
      
      This patch cleans up the simplifier's handling of various
      otimisations for case expressions, notably
        - case elimination (discarding the case altogether)
        - merging identical alternatives
        - discarding impossible alternative
        - merging nested cases
      
      Previously this was partly handled before, and partly after,
      simplifying the case alternatives. The trouble with that is
      that the dead-ness information on the case binders gets munged
      during simplification, and that turned out to mean that 
      case elmination essentially never happened -- stupid.
      
      Now I've moved it all to before simplifying the alterntives.
      In fact this reduces the amount of code, I think, and it's
      certainly tidier.  I don't think there is any loss.
      
      e9f23b4c
    • Simon Marlow's avatar
      Ticky is an RTS-only way; also fix collateral damage to other ways · 5bf1b7f5
      Simon Marlow authored
      The ticky static flag was being poked too early, which lead to
      breakage in the -prof way amongst other things.  I've installed some
      sanity checking to make sure we catch this earlier if it happens again.
      5bf1b7f5