1. 25 Jun, 2011 1 commit
    • Ian Lynagh's avatar
      Fix gcc 4.6 warnings; fixes #5176 · 0a6f26f6
      Ian Lynagh authored
      Based on a patch from David Terei.
      
      Some parts are a little ugly (e.g. defining things that only ASSERTs
      use only when DEBUG is defined), so we might want to tweak things a
      little.
      
      I've also turned off -Werror for didn't-inline warnings, as we now
      get a few such warnings.
      0a6f26f6
  2. 22 Jun, 2011 1 commit
  3. 18 Jun, 2011 2 commits
  4. 12 Jun, 2011 2 commits
  5. 05 May, 2011 2 commits
  6. 04 May, 2011 1 commit
  7. 29 Apr, 2011 2 commits
  8. 23 Apr, 2011 7 commits
  9. 22 Apr, 2011 2 commits
  10. 12 Apr, 2011 1 commit
    • Simon Marlow's avatar
      Change the way module initialisation is done (#3252, #4417) · a52ff761
      Simon Marlow authored
      Previously the code generator generated small code fragments labelled
      with __stginit_M for each module M, and these performed whatever
      initialisation was necessary for that module and recursively invoked
      the initialisation functions for imported modules.  This appraoch had
      drawbacks:
      
       - FFI users had to call hs_add_root() to ensure the correct
         initialisation routines were called.  This is a non-standard,
         and ugly, API.
      
       - unless we were using -split-objs, the __stginit dependencies would
         entail linking the whole transitive closure of modules imported,
         whether they were actually used or not.  In an extreme case (#4387,
         #4417), a module from GHC might be imported for use in Template
         Haskell or an annotation, and that would force the whole of GHC to
         be needlessly linked into the final executable.
      
      So now instead we do our initialisation with C functions marked with
      __attribute__((constructor)), which are automatically invoked at
      program startup time (or DSO load-time).  The C initialisers are
      emitted into the stub.c file.  This means that every time we compile
      with -prof or -hpc, we now get a stub file, but thanks to #3687 that
      is now invisible to the user.
      
      There are some refactorings in the RTS (particularly for HPC) to
      handle the fact that initialisers now get run earlier than they did
      before.
      
      The __stginit symbols are still generated, and the hs_add_root()
      function still exists (but does nothing), for backwards compatibility.
      a52ff761
  11. 11 Apr, 2011 1 commit
  12. 08 Apr, 2011 1 commit
  13. 04 Apr, 2011 1 commit
  14. 26 Mar, 2011 1 commit
  15. 23 Mar, 2011 1 commit
  16. 20 Mar, 2011 1 commit
    • Ian Lynagh's avatar
      Change how we compute install paths on cygwin · b1fff745
      Ian Lynagh authored
      We used to have
          MK_INSTALL_DEST = "$(shell cygpath $1)"
      but this meant we ended up with
          "$(shell cygpath "[...]/html/`basename $$i`")"
      and the $(...) gets evaluated before the makefile rule, so the for loop
      hasn't been run, and so $i isn't defined. So we were taking the basename
      of the empty string, meaning docs weren't being installed in the right
      place.
      
      Now we have
          MK_INSTALL_DEST = $$(cygpath $1)
      so the evaluation happens in the shell, while the for loop is running.
      b1fff745
  17. 25 Feb, 2011 1 commit
  18. 19 Feb, 2011 1 commit
  19. 10 Feb, 2011 1 commit
  20. 01 Feb, 2011 1 commit
  21. 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
  22. 27 Jan, 2011 1 commit
  23. 24 Jan, 2011 1 commit
  24. 20 Jan, 2011 1 commit
  25. 13 Jan, 2011 1 commit
  26. 16 Jan, 2011 1 commit
  27. 15 Jan, 2011 1 commit
    • Ian Lynagh's avatar
      Build system improvements · a3be88fd
      Ian Lynagh authored
      We no longer use dummy-ghc; instead we don't configure most packages
      until the stage1 compiler is available.
        
      We also now use Cabal for building the ghc-bin package.
      
      There are a couple more sanity checks too.
      a3be88fd
  28. 08 Jan, 2011 1 commit
  29. 06 Jan, 2011 1 commit
    • Ian Lynagh's avatar
      On Cygwin, use a Cygwin-style path for /bin/install's destination · 57e2a81c
      Ian Lynagh authored
      cygwin's /bin/install doesn't set file modes correctly if the
      destination path is a C: style path:
      
      $ /bin/install -c -m 644 foo /cygdrive/c/cygwin/home/ian/foo2
      $ /bin/install -c -m 644 foo c:/cygwin/home/ian/foo3
      $ ls -l foo*
      -rw-r--r-- 1 ian None 0 2011-01-06 18:28 foo
      -rw-r--r-- 1 ian None 0 2011-01-06 18:29 foo2
      -rwxrwxrwx 1 ian None 0 2011-01-06 18:29 foo3
      
      This causes problems for bindisttest/checkBinaries.sh which then
      thinks that e.g. the userguide HTML files are binaries.
      
      We therefore use a /cygdrive path if we are on cygwin
      57e2a81c