1. 17 Jun, 2008 1 commit
  2. 09 Jun, 2008 1 commit
  3. 16 Apr, 2008 3 commits
  4. 28 Feb, 2008 1 commit
  5. 22 Nov, 2007 1 commit
  6. 30 Oct, 2007 1 commit
  7. 19 Feb, 2008 1 commit
  8. 03 Jan, 2008 1 commit
  9. 12 Oct, 2007 1 commit
  10. 09 Oct, 2007 1 commit
  11. 27 Sep, 2007 1 commit
  12. 14 Sep, 2007 1 commit
  13. 03 Sep, 2007 2 commits
  14. 02 Sep, 2007 1 commit
  15. 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
  16. 26 Jun, 2007 2 commits
  17. 18 May, 2007 1 commit
    • Simon Marlow's avatar
      FIX #767 (withMVar family have a bug) · daa640e4
      Simon Marlow authored
      We never want to raise a StackOverflow exception inside
      Control.Exception.block, because the user has no reasonable way of
      handling it, and it invalidates some useful guarantees.
      daa640e4
  18. 27 Apr, 2007 1 commit
    • Simon Marlow's avatar
      Basic heap profile support without -prof · cbeb99ef
      Simon Marlow authored
      Now that constructor info tables contain the name of the constructor,
      we can generate useful heap profiles without requiring the whole
      program and libraries to be compiled with -prof.  So now, "+RTS -hT"
      generates a heap profile for any program, dividing the profile by
      constructor.  It wouldn't be hard to add support for grouping
      constructors by module, or to restrict the profile to certain
      constructors/modules/packages.
      
      This means that for the first time we can get heap profiles for GHCi,
      which was previously impossible because the byte-code
      interpreter and linker don't work with -prof.
      cbeb99ef
  19. 04 Apr, 2007 1 commit
  20. 22 Mar, 2007 1 commit
  21. 05 Mar, 2007 1 commit
  22. 29 Jan, 2007 1 commit
  23. 26 Jan, 2007 1 commit
  24. 09 Jan, 2007 1 commit
  25. 05 Jan, 2007 1 commit
  26. 15 Dec, 2006 1 commit
  27. 14 Dec, 2006 1 commit
  28. 12 Dec, 2006 1 commit
  29. 11 Dec, 2006 1 commit
    • Ian Lynagh's avatar
      Add freeScheduler/freeTaskManager and call it later than exitScheduler · cf6b495d
      Ian Lynagh authored
      We were freeing the tasks in exitScheduler (stopTaskManager) before
      exitStorage (stat_exit), but the latter needs to walk down the list
      printing stats. Resulted in segfaults with commands like
          ghc -v0 -e main q.hs -H32m -H32m +RTS -Sstderr
      (where q.hs is trivial), but very sensitive to exact commandline and
      libc version or something.
      cf6b495d
  30. 01 Dec, 2006 1 commit
    • Simon Marlow's avatar
      Add support for the IO manager thread on Windows · 80a766fd
      Simon Marlow authored
      Fixes #637.
      The implications of this change are:
        - threadDelay on Windows no longer creates a new OS thread each time,
          instead it communicates with the IO manager thread in the same way as
          on Unix.
        - deadlock detection now works the same way on Windows as on Unix; that
          is the timer interrupt wakes up the IO manager thread, which causes
          the scheduler to check for deadlock.
        - Console events now get sent to the IO manager thread, in the same way as
          signals do on Unix.  This means that console events should behave more
          reliably with -threaded on Windows.
      
      All this applies only with -threaded.  Without -threaded, the old
      ConsoleEvent code is still used.
      
      After some testing, this could be pushed to the 6.6 branch.
      80a766fd
  31. 24 Oct, 2006 1 commit
    • Simon Marlow's avatar
      Split GC.c, and move storage manager into sm/ directory · ab0e778c
      Simon Marlow authored
      In preparation for parallel GC, split up the monolithic GC.c file into
      smaller parts.  Also in this patch (and difficult to separate,
      unfortunatley):
        
        - Don't include Stable.h in Rts.h, instead just include it where
          necessary.
        
        - consistently use STATIC_INLINE in source files, and INLINE_HEADER
          in header files.  STATIC_INLINE is now turned off when DEBUG is on,
          to make debugging easier.
        
        - The GC no longer takes the get_roots function as an argument.
          We weren't making use of this generalisation.
      ab0e778c
  32. 19 Oct, 2006 1 commit
    • Simon Marlow's avatar
      remove performGCWithRoots() · 3633e894
      Simon Marlow authored
      I don't think this can ever be useful, because to add more roots you
      need to do it consistently for every GC.  The right way to add roots
      is to use newStablePtr.
      3633e894
  33. 07 Oct, 2006 1 commit
  34. 05 Sep, 2006 1 commit
    • Ian Lynagh's avatar
      new RTS flag: -V to modify the resolution of the RTS timer · 93db1991
      Ian Lynagh authored
      Fixed version of an old patch by Simon Marlow. His description read:
       Also, now an arbitrarily short context switch interval may now be
       specified, as we increase the RTS ticker's resolution to match the
       requested context switch interval.  This also applies to +RTS -i (heap
       profiling) and +RTS -I (the idle GC timer).  +RTS -V is actually only
       required for increasing the resolution of the profile timer.
      93db1991
  35. 23 Aug, 2006 1 commit
  36. 10 Aug, 2006 1 commit