1. 14 Sep, 2010 1 commit
  2. 13 Aug, 2010 1 commit
  3. 24 Jul, 2010 1 commit
  4. 08 Jul, 2010 1 commit
  5. 20 Apr, 2010 2 commits
  6. 01 Apr, 2010 1 commit
  7. 30 Mar, 2010 1 commit
  8. 27 Jan, 2010 3 commits
  9. 23 Nov, 2009 1 commit
  10. 17 Nov, 2009 1 commit
  11. 11 Nov, 2009 1 commit
  12. 06 Nov, 2009 1 commit
    • Ben.Lippmeier@anu.edu.au's avatar
      Break recursive imports between the RTS and base library on Windows. · 02d8f553
      Ben.Lippmeier@anu.edu.au authored
      The file rts/win32/libHSbase.def contains a list of all the 
      symbols from the base library that the RTS needs. 
      
      When building the RTS into a DLL on Windows, we want to link the DLL
      for the RTS before we link the DLL for the base library. We use 
      libHSbase.def to make the "import library" libHSbase.so.a, which 
      contains stubs for each of the symbols from the base library that
      the RTS needs.
      02d8f553
  13. 12 Nov, 2009 1 commit
  14. 03 Aug, 2009 2 commits
  15. 02 Aug, 2009 1 commit
    • Simon Marlow's avatar
      RTS tidyup sweep, first phase · a2a67cd5
      Simon Marlow authored
      The first phase of this tidyup is focussed on the header files, and in
      particular making sure we are exposinng publicly exactly what we need
      to, and no more.
      
       - Rts.h now includes everything that the RTS exposes publicly,
         rather than a random subset of it.
      
       - Most of the public header files have moved into subdirectories, and
         many of them have been renamed.  But clients should not need to
         include any of the other headers directly, just #include the main
         public headers: Rts.h, HsFFI.h, RtsAPI.h.
      
       - All the headers needed for via-C compilation have moved into the
         stg subdirectory, which is self-contained.  Most of the headers for
         the rest of the RTS APIs have moved into the rts subdirectory.
      
       - I left MachDeps.h where it is, because it is so widely used in
         Haskell code.
       
       - I left a deprecated stub for RtsFlags.h in place.  The flag
         structures are now exposed by Rts.h.
      
       - Various internal APIs are no longer exposed by public header files.
      
       - Various bits of dead code and declarations have been removed
      
       - More gcc warnings are turned on, and the RTS code is more
         warning-clean.
      
       - More source files #include "PosixSource.h", and hence only use
         standard POSIX (1003.1c-1995) interfaces.
      
      There is a lot more tidying up still to do, this is just the first
      pass.  I also intend to standardise the names for external RTS APIs
      (e.g use the rts_ prefix consistently), and declare the internal APIs
      as hidden for shared libraries.
      a2a67cd5
  16. 20 Mar, 2009 1 commit
  17. 18 Mar, 2009 1 commit
  18. 17 Mar, 2009 1 commit
  19. 11 Mar, 2009 2 commits
  20. 13 Nov, 2008 2 commits
  21. 06 Nov, 2008 1 commit
  22. 13 Oct, 2008 1 commit
  23. 09 Jul, 2008 1 commit
    • Simon Marlow's avatar
      FIX part of #2301, and #1619 · addff19a
      Simon Marlow authored
      2301: Control-C now causes the new exception (AsyncException
      UserInterrupt) to be raised in the main thread.  The signal handler
      is set up by GHC.TopHandler.runMainIO, and can be overriden in the
      usual way by installing a new signal handler.  The advantage is that
      now all programs will get a chance to clean up on ^C.
      
      When UserInterrupt is caught by the topmost handler, we now exit the
      program via kill(getpid(),SIGINT), which tells the parent process that
      we exited as a result of ^C, so the parent can take appropriate action
      (it might want to exit too, for example).
      
      One subtlety is that we have to use a weak reference to the ThreadId
      for the main thread, so that the signal handler doesn't prevent the
      main thread from being subject to deadlock detection.
      
      1619: we now ignore SIGPIPE by default.  Although POSIX says that a
      SIGPIPE should terminate the process by default, I wonder if this
      decision was made because many C applications failed to check the exit
      code from write().  In Haskell a failed write due to a closed pipe
      will generate an exception anyway, so the main difference is that we
      now get a useful error message instead of silent program termination.
      See #1619 for more discussion.
      addff19a
  24. 18 Jun, 2008 1 commit
  25. 16 Apr, 2008 1 commit
  26. 29 May, 2008 1 commit
  27. 04 Dec, 2007 1 commit
  28. 25 Nov, 2007 1 commit
  29. 17 Oct, 2007 2 commits
  30. 03 Sep, 2007 2 commits
    • Simon Marlow's avatar
      remove debugging code · eb647776
      Simon Marlow authored
      eb647776
    • Simon Marlow's avatar
      FIX #1623: disable the timer signal when the system is idle (threaded RTS only) · 8d71be7c
      Simon Marlow authored
      Having a timer signal go off regularly is bad for power consumption,
      and generally bad practice anyway (it means the app cannot be
      completely swapped out, for example).  Fortunately the threaded RTS
      already had a way to detect when the system was idle, so that it can
      trigger a GC and thereby find deadlocks.  After performing the GC, we
      now turn off timer signals, and re-enable them again just before
      running any Haskell code.
      8d71be7c
  31. 29 Aug, 2007 1 commit
  32. 24 Aug, 2007 1 commit