1. 02 Dec, 2011 3 commits
    • Ian Lynagh's avatar
      Fix header installation · 11a614ff
      Ian Lynagh authored
      11a614ff
    • Ian Lynagh's avatar
      MAKE_RESTARTS should never be higher than 1 · 1c400aa9
      Ian Lynagh authored
      1c400aa9
    • Ian Lynagh's avatar
      Use touchy rather than touch when building on Windows · 2694bb74
      Ian Lynagh authored
      With Windows 7 in a vitrual box VM on OS X, some very odd things happen
      with dates and time stamps when SSHing into cygwin. e.g. here the
      "Change" time is in the past:
      
      $ date; touch foo; stat foo
      Fri Dec  2 16:58:07 GMTST 2011
        File: `foo'
        Size: 0               Blocks: 0          IO Block: 65536  regular
      empty file
      Device: 540aba0bh/1409989131d   Inode: 562949953592977  Links: 1
      Access: (0644/-rw-r--r--)  Uid: ( 1000/     ian)   Gid: (  513/    None)
      Access: 2011-12-02 16:58:07.414457900 +0000
      Modify: 2011-12-02 16:58:07.414457900 +0000
      Change: 2011-12-02 16:58:03.495141800 +0000
       Birth: 2011-12-02 16:57:57.731469900 +0000
      
      And if we copy such a file, then the copy is older (as determined by the
      "Modify" time) than the original:
      
      $ date; touch foo; stat foo; cp foo bar; stat bar
      Fri Dec  2 16:59:10 GMTST 2011
        File: `foo'
        Size: 0               Blocks: 0          IO Block: 65536  regular
      empty file
      Device: 540aba0bh/1409989131d   Inode: 1407374883725128  Links: 1
      Access: (0644/-rw-r--r--)  Uid: ( 1000/     ian)   Gid: (  513/    None)
      Access: 2011-12-02 16:59:10.118457900 +0000
      Modify: 2011-12-02 16:59:10.118457900 +0000
      Change: 2011-12-02 16:59:06.189477700 +0000
       Birth: 2011-12-02 16:57:57.731469900 +0000
        File: `bar'
        Size: 0               Blocks: 0          IO Block: 65536  regular
      empty file
      Device: 540aba0bh/1409989131d   Inode: 281474976882512  Links: 1
      Access: (0644/-rw-r--r--)  Uid: ( 1000/     ian)   Gid: (  513/    None)
      Access: 2011-12-02 16:59:06.394555800 +0000
      Modify: 2011-12-02 16:59:06.394555800 +0000
      Change: 2011-12-02 16:59:06.395532400 +0000
       Birth: 2011-12-02 16:58:40.921899600 +0000
      
      This means that make thinks that things are out of date when it
      shouldn't, so reinvokes itself repeatedly until the MAKE_RESTARTS
      infinite-recursion test triggers.
      
      The touchy program, like most other programs, creates files with both
      Modify and Change in the past, which is still a little odd, but is
      consistent, so doesn't break make.
      2694bb74
  2. 24 Nov, 2011 3 commits
  3. 19 Nov, 2011 1 commit
    • Ian Lynagh's avatar
      Improve the way we call "rm" in the build system; fixes trac #4916 · 80e9070c
      Ian Lynagh authored
      We avoid calling "rm -rf" with no file arguments; this fixes cleaning
      on Solaris, where that fails.
      
      We also check for suspicious arguments: anything containing "..",
      starting "/", or containing a "*" (you need to call $(wildcard ...)
      yourself now if you really want globbing). This should make things
      a little safer.
      80e9070c
  4. 12 Nov, 2011 2 commits
  5. 23 Oct, 2011 1 commit
  6. 14 Oct, 2011 2 commits
    • Ian Lynagh's avatar
      Don't hide the binary package · 85b0d3ed
      Ian Lynagh authored
      Cabal will use it regardless, and if people are going to use binary then
      it's a lot better if they use the one that we ship, rather than
      installing a second version.
      85b0d3ed
    • Ian Lynagh's avatar
      Simplify the libffi build · 7c3b22ed
      Ian Lynagh authored
      We now put the libffi objects into the RTS library, rather than trying
      to mangle libffi into being a ghc package itself. It would be nicer to
       make it a separate library (but not a ghc package), but for now
       hopefully this will get the build going through on Windows again.
      7c3b22ed
  7. 08 Sep, 2011 2 commits
  8. 28 Aug, 2011 1 commit
    • Ian Lynagh's avatar
      By default, be lax about dependencies on GHC · 12646a9c
      Ian Lynagh authored
      There are a number of things which technically depend on GHC (e.g. if
      ghc changes then Haskell files may be compiled differently, or Cabal
      packages may be configured differently). However, in practice, having
      a real dependency on GHC is just a pain: We normally don't want to
      spend time recompiling other things while we're working on the
      compiler, and even if we did, GHC will normally decide compilation
      isn't needed anyway. So by default we use order-only dependencies on
      GHC, i.e. GHC must exist, but if it's newer than other targets then
      rebuilding is not necessary.
      12646a9c
  9. 05 Aug, 2011 1 commit
    • Simon Marlow's avatar
      sanitise naming of package lists · 043d70f0
      Simon Marlow authored
      The *predicates* all start with "PKGS_THAT_...", e.g.:
      
        PKGS_THAT_BUILD_WITH_STAGE0   (previously "PACKAGES_STAGE0")
        PKGS_THAT_BUILD_WITH_STAGE2   (previously "STAGE2_PACKAGES")
        PKGS_THAT_USE_TH              (previously "TH_PACKAGES)
        etc. (there are a few more)
      
      the lists of packages to build are now consistently named:
      
        PACKAGES_STAGE0
        PACKAGES_STAGE1  (previously just "PACKAGES")
        PACKAGES_STAGE2
      043d70f0
  10. 04 Aug, 2011 1 commit
  11. 31 Jul, 2011 1 commit
  12. 30 Jul, 2011 1 commit
  13. 28 Jul, 2011 1 commit
  14. 18 Jul, 2011 1 commit
  15. 17 Jul, 2011 1 commit
  16. 12 Jul, 2011 1 commit
  17. 08 Jul, 2011 1 commit
  18. 25 Jun, 2011 1 commit
  19. 23 Jun, 2011 1 commit
  20. 28 May, 2011 1 commit
  21. 21 Apr, 2011 1 commit
  22. 14 Apr, 2011 1 commit
  23. 04 Apr, 2011 1 commit
  24. 16 Mar, 2011 1 commit
  25. 07 Feb, 2011 1 commit
  26. 24 Jan, 2011 1 commit
    • Simon Marlow's avatar
      Merge in new code generator branch. · 889c084e
      Simon Marlow authored
      This changes the new code generator to make use of the Hoopl package
      for dataflow analysis.  Hoopl is a new boot package, and is maintained
      in a separate upstream git repository (as usual, GHC has its own
      lagging darcs mirror in http://darcs.haskell.org/packages/hoopl).
      
      During this merge I squashed recent history into one patch.  I tried
      to rebase, but the history had some internal conflicts of its own
      which made rebase extremely confusing, so I gave up. The history I
      squashed was:
      
        - Update new codegen to work with latest Hoopl
        - Add some notes on new code gen to cmm-notes
        - Enable Hoopl lag package.
        - Add SPJ note to cmm-notes
        - Improve GC calls on new code generator.
      
      Work in this branch was done by:
         - Milan Straka <fox@ucw.cz>
         - John Dias <dias@cs.tufts.edu>
         - David Terei <davidterei@gmail.com>
      
      Edward Z. Yang <ezyang@mit.edu> merged in further changes from GHC HEAD
      and fixed a few bugs.
      889c084e
  27. 23 Jan, 2011 2 commits
  28. 22 Jan, 2011 1 commit
    • 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
  29. 19 Jan, 2011 2 commits
  30. 17 Jan, 2011 1 commit
  31. 16 Jan, 2011 1 commit