1. 25 Jul, 2007 3 commits
    • rl@cse.unsw.edu.au's avatar
      Refactoring · a0a97c2b
      rl@cse.unsw.edu.au authored
      a0a97c2b
    • Simon Marlow's avatar
      make validate work on Windows · 2924c4bc
      Simon Marlow authored
      This includes automatically adding --build=i386-unknown-mingw32 and
      --with-gcc to ./configure, and disabling -j2 (see #1559).
      
      Also: you can now say 
      
        CPUS=3 ./validate
      
      and the script will pass -jN to make (where N = $CPUS + 1).  In the
      future, when we fix #1558, it can pass THREADS=N to the testsuite, too.
      2924c4bc
    • Simon Marlow's avatar
      FIX #1177, partially at least. · eb5791fe
      Simon Marlow authored
      Now we don't wait for outstanding IO requests when shutting down at
      program exit time, but we still wait when shutting down a DLL (via
      hs_exit()).  There ought to be a better way to do this, but
      terminating the threads forcibly is not a good idea (it never is: the
      thread might be holding a mutex when it dies, for example).
      
      I plan to add some docs to the user guide to describe how to shut
      down a DLL properly.
      eb5791fe
  2. 24 Jul, 2007 1 commit
    • Simon Marlow's avatar
      hs_exit()/shutdownHaskell(): wait for outstanding foreign calls to complete before returning · 681aad99
      Simon Marlow authored
      This is pertinent to #1177.  When shutting down a DLL, we need to be
      sure that there are no OS threads that can return to the code that we
      are about to unload, and previously the threaded RTS was unsafe in
      this respect.
      
      When exiting a standalone program we don't have to be quite so
      paranoid: all the code will disappear at the same time as any running
      threads.  Happily exiting a program happens via a different path:
      shutdownHaskellAndExit().  If we're about to exit(), then there's no
      need to wait for foreign calls to complete.
      681aad99
  3. 23 Jul, 2007 1 commit
  4. 22 Jul, 2007 1 commit
  5. 24 Jul, 2007 1 commit
  6. 23 Jul, 2007 1 commit
  7. 22 Jul, 2007 3 commits
  8. 21 Jul, 2007 1 commit
  9. 20 Jul, 2007 1 commit
  10. 21 Jul, 2007 2 commits
  11. 19 Jul, 2007 2 commits
  12. 06 Jul, 2007 1 commit
    • Clemens Fruhwirth's avatar
      Fix -split-obj on Mac OS via -fasm · ee40dd6b
      Clemens Fruhwirth authored
      The problem of the splitter was that it re-emitted section directives
      for every dynamic label found. The following was torn apart
      
      .symbol_stubs
      .indirect <symbol>
      L_<symbol>$stub: 
      	jmp *...
      L_<symbol>$stub_binder:
      	..somebinding code..
      
      into
      
      .symbol_stubs
      .indirect_symbol <symbol>
      L_<symbol>$stub: 
      	jmp *...
      .symbol_stubs <--- NEW
      L_<symbol>$stub_binder:
      	..somebinding code..
      
      This is incorrect as the Mac OS assembler enforces that every new code
      section that goes into .symbol_stubs is associated with the linker
      directive .indirect_symbol. This sanity check is obviously violated
      when we reemit .symbol_stub in the splitter. The solution is to ignore
      everything that ends with $stub_binder as new label, and chuck it into
      a single label for $stub.
      
      Also the splitter has to recognize .section __DATA... for the lazy_ptr
      indirection symbol. Adds a reminder to PositionIndependentCode.hs to
      take care of the splitter when the code generation is changed.
      
      This should not affect -fvia-c as the code generated by the C compiler
      is entirely different.
      ee40dd6b
  13. 18 Jul, 2007 1 commit
  14. 16 Jul, 2007 1 commit
  15. 18 Jul, 2007 4 commits
  16. 17 Jul, 2007 1 commit
  17. 18 Jul, 2007 9 commits
  18. 17 Jul, 2007 1 commit
  19. 16 Jul, 2007 5 commits