1. 28 Jan, 2011 1 commit
    • simonpj@microsoft.com's avatar
      Fix an egregious strictness analyser bug (Trac #4924) · f1a90f54
      simonpj@microsoft.com authored
      The "virgin" flag was being threaded rather than treated
      like an environment.  As a result, the second and subsequent
      recursive definitions in a module were not getting a
      correctly-initialised fixpoint loop, causing much worse
      strictness analysis results.  Indeed the symptoms in
      Trac #4924 were quite bizarre.
      
      Anyway, it's easily fixed.  Merge to stable branch.
      f1a90f54
  2. 27 Jan, 2011 2 commits
    • simonpj@microsoft.com's avatar
      Refine incomplete-pattern checks (Trac #4905) · a0f6d307
      simonpj@microsoft.com authored
      The changes are:
      
      * New flag -fwarn-incomplete-uni-patterns, which checks for
        incomplete patterns in (a) lambdas, (b) pattern bindings
      
      * New flag is not implied by -W or -Wall (too noisy; and many
        libraries use incomplete pattern bindings)
      
      * Actually do the incomplete-pattern check for pattern bindings
        (previously simply omitted)
      
      * Documentation for new flag
      a0f6d307
    • Ian Lynagh's avatar
      Fix "make 1" etc following the build system changes · c1e824a2
      Ian Lynagh authored
      The logic is now in mk/compiler-ghc.mk rather than being duplicated in
      ghc/Makefile and compiler/Makefile.
      c1e824a2
  3. 26 Jan, 2011 7 commits
  4. 24 Jan, 2011 2 commits
  5. 25 Jan, 2011 5 commits
    • simonpj@microsoft.com's avatar
      Split main/GHC into GHC and GhcMake · a79a5319
      simonpj@microsoft.com authored
      There are two things going on in main/GHC.hs.
        * It's the root module of the GHC package
        * It contains lots of stuff for --make
      It is also gigantic (2.7k lines)
      
      This patch splits it into two
        * GHC.hs is the root module for the GHC package
            (1.3k lines)
        * GhcMake.hs contains the stuff for --make
            (1.4k lines)
      
      Happily the functional split divided it almost
      exactly in half.
      
      This is a pure refactoring.  There should be no 
      behavioural change.
      a79a5319
    • simonpj@microsoft.com's avatar
      Comments only · 45bc009d
      simonpj@microsoft.com authored
      45bc009d
    • simonpj@microsoft.com's avatar
      Fix Trac #3717 by making exprOkForSpeculation a bit cleverer · d056dfed
      simonpj@microsoft.com authored
      The main change here is to do with dropping redundant seqs.
      See Note [exprOkForSpeculation: case expressions] in CoreUtils.
      d056dfed
    • simonpj@microsoft.com's avatar
      Improve dataToTag# magic · 5cdc2f1d
      simonpj@microsoft.com authored
      dataToTag# is a bit unsatisfactory because it requires
      its argument to be evaluated, and we don't have a good
      way to enforce that. This patch adds some comments, and
      makes exprOkForSpeculation a bit less picky in the case
      of dataToTag# (since the argument may, in fact, not be
      eval'd).
      5cdc2f1d
    • simonpj@microsoft.com's avatar
      Fix Trac #4917: try a bit harder to unify on-the-fly · 1add108e
      simonpj@microsoft.com authored
      This is generally a modest improvement but, more important,
      it fixes a "unify-under-forall" problem.  See Note [Avoid deferring].
      
      There's still a lurking unsatisfactory-ness in that we can't
      defer arbitrary constraints that are trapped under a forall.
      1add108e
  6. 24 Jan, 2011 1 commit
    • chak@cse.unsw.edu.au.'s avatar
      DPH options updated · 9e6e96bd
      chak@cse.unsw.edu.au. authored
      - '-Odph' is now '-O2 -fsimplifier-phases=3 -fsimplifier-iterations=20'
      - The new option '-fdph-none' is the default; it indicates that no DPH
        backend is selected and is the only valid option if the DPH libraries
        are not installed.  If vectorisation is attempted with -fdph-none a
        suitable error message is generated.
      - Hence, '-fdph-par' (or '-fdph-seq') needs to be explicitly selected
        when using vectorisation and when linking vectorised code.  (There
        seems to be no elegant way to avoid that.)
      9e6e96bd
  7. 23 Jan, 2011 5 commits
  8. 22 Jan, 2011 2 commits
    • Ian Lynagh's avatar
      Use := when assigning the result of $(wildcard ...) · b36b42fd
      Ian Lynagh authored
      Avoids repeated evaluations of things that need system calls etc
      b36b42fd
    • Ian Lynagh's avatar
      Simplify the build system, and remove 2 phases · 295016c3
      Ian Lynagh authored
      From
          http://hackage.haskell.org/trac/ghc/wiki/Building/Architecture/Idiom/PhaseOrdering
      
      Phase 0:
          Includes: package-data.mk files for things built by the
                    bootstrapping compiler.
          Builds:   the dependency files for hsc2hs and genprimopcode. We need
                    to do this now, as hsc2hs needs to be buildable in phase 1's
                    includes (so that we can make the hpc library's .hs source
                    files, which in turn is necessary for making its dependency
                    files), and genprimopcode needs to be buildable in phase 1's
                    includes (so that we can make the primop-*.hs-incl files,
                    which are sources for the stage1 compiler library, and thus
                    necessary for making its dependency files).
      Phase 1:
          Includes: dependency files for things built by the bootstrapping
                    compiler.
          Builds:   package-data.mk files for everything else. Note that this
                    requires configuring the packages, which means telling cabal
                    which ghc to use, and thus the stage1 compiler gets built
                    during this phase. 
      Phase "":
          Includes: dependency files for everything else.
          Builds:   Everything else. 
      295016c3
  9. 21 Jan, 2011 2 commits
  10. 19 Jan, 2011 1 commit
  11. 20 Jan, 2011 1 commit
  12. 19 Jan, 2011 1 commit
  13. 13 Jan, 2011 1 commit
  14. 19 Jan, 2011 6 commits
  15. 18 Jan, 2011 3 commits