1. 23 Oct, 2012 1 commit
  2. 18 Oct, 2012 1 commit
    • ian@well-typed.com's avatar
      Refactor the way dump flags are handled · d4a19643
      ian@well-typed.com authored
      We were being inconsistent about how we tested whether dump flags
      were enabled; in particular, sometimes we also checked the verbosity,
      and sometimes we didn't.
      
      This lead to oddities such as "ghc -v4" printing an "Asm code" section
      which didn't contain any code, and "-v4" enabled some parts of
      "-ddump-deriv" but not others.
      
      Now all the tests use dopt, which also takes the verbosity into account
      as appropriate.
      d4a19643
  3. 17 Oct, 2012 1 commit
  4. 16 Oct, 2012 3 commits
  5. 15 Oct, 2012 2 commits
  6. 13 Oct, 2012 1 commit
  7. 09 Oct, 2012 5 commits
  8. 08 Oct, 2012 3 commits
  9. 03 Oct, 2012 2 commits
    • ian@well-typed.com's avatar
    • ian@well-typed.com's avatar
      Build the dynamic way by default on Linux/amd64 · 898cb090
      ian@well-typed.com authored
      This required various build system changes to get the build to go
      through.
      
      In the inplace shell wrappers, we set LD_LIBRARY_PATH to allow programs
      to find their libraries. In the future, we might change the inplace tree
      to be the same shape as an installed tree instead. However, this would
      mean changing the way we do installation, as currently we use cabal's
      installation methods to install the libraries, but that only works if
      the libraries are under libraries/foo/dist-install/build/..., rather
      than in inplace/lib/...
      898cb090
  10. 02 Oct, 2012 1 commit
  11. 01 Oct, 2012 3 commits
  12. 29 Sep, 2012 1 commit
    • ian@well-typed.com's avatar
      Change how we handle options required by 'way's · f6983efb
      ian@well-typed.com authored
      We used to add the options when the way was enabled, but this caused
      problems with the static/dynamic choice, as once the 'dynamic' options
      had been added it wasn't easy to remove them. We therefore didn't allow
      -static on the commandline if we'd already seen -static, which kludged
      around the issue.
      
      But apart from being unsatisfactory in the first place, this is a
      problem if we want to allow -dynamic being on by default, as there
      wouldn't be any way to turn it off.
      
      So now we add C/CPP/linker flags required by the 'way's when flags
      are requested, rather than during flag parsing.
      f6983efb
  13. 26 Sep, 2012 1 commit
    • Edward Z. Yang's avatar
      Partially fix #367 by adding HpLim checks to entry with -fno-omit-yields. · d3128bfc
      Edward Z. Yang authored
      The current fix is relatively dumb as far as where to add HpLim
      checks: it will always perform a check unless we know that we're
      returning from a closure or we are doing a non let-no-escape case
      analysis.  The performance impact on the nofib suite looks like this:
      
                  Min          +5.7%     -0.0%     -6.5%     -6.4%    -50.0%
                  Max          +6.3%     +5.8%     +5.0%     +5.5%     +0.8%
       Geometric Mean          +6.2%     +0.1%     +0.5%     +0.5%     -0.8%
      
      Overall, the executable bloat is the biggest problem, so we keep the old
      omit-yields optimization on by default. Remember that if you need an
      interruptibility guarantee, you need to recompile all of your libraries
      with -fno-omit-yields.
      
      A better fix would involve only inserting the yields necessary to break
      loops; this is left as future work.
      Signed-off-by: Edward Z. Yang's avatarEdward Z. Yang <ezyang@mit.edu>
      d3128bfc
  14. 25 Sep, 2012 1 commit
  15. 19 Sep, 2012 1 commit
  16. 17 Sep, 2012 2 commits
    • ian@well-typed.com's avatar
      Move tARGET_* out of HaskellConstants · 10cc4224
      ian@well-typed.com authored
      10cc4224
    • Simon Peyton Jones's avatar
      Add type "holes", enabled by -XTypeHoles, Trac #5910 · 8a9a7a8c
      Simon Peyton Jones authored
      This single commit combines a lot of work done by
      Thijs Alkemade <thijsalkemade@gmail.com>, plus a slew
      of subsequent refactoring by Simon PJ.
      
      The basic idea is
      * Add a new expression form "_", a hole, standing for a not-yet-written expression
      * Give a useful error message that
         (a) gives the type of the hole
         (b) gives the types of some enclosing value bindings that
             mention the hole
      
      Driven by this goal I did a LOT of refactoring in TcErrors, which in turn
      allows us to report enclosing value bindings for other errors, not just
      holes.  (Thijs rightly did not attempt this!)
      
      The major data type change is a new form of constraint
        data Ct = ...
          	  | CHoleCan {
          	      cc_ev       :: CtEvidence,
          	      cc_hole_ty  :: TcTauType,
          	      cc_depth    :: SubGoalDepth }
      
      I'm still in two minds about whether this is the best plan. Another
      possibility would be to have a predicate type for holes, somthing like
         class Hole a where
           holeValue :: a
      
      It works the way it is, but there are some annoying special cases for
      CHoleCan (just grep for "CHoleCan").
      8a9a7a8c
  17. 16 Sep, 2012 2 commits
  18. 14 Sep, 2012 2 commits
  19. 13 Sep, 2012 2 commits
  20. 03 Sep, 2012 5 commits