1. 10 Jul, 2006 1 commit
    • Simon Marlow's avatar
      re-add -fvia-C · ab27a311
      Simon Marlow authored
      There are still some fixes required to get the threaded RTS compilable
      with the NCG, and apparently there are problems on 32-bit archs too.
  2. 29 Jun, 2006 5 commits
  3. 20 Jun, 2006 3 commits
  4. 27 Jun, 2006 1 commit
  5. 23 Jun, 2006 1 commit
  6. 16 Jun, 2006 6 commits
  7. 14 Jun, 2006 1 commit
  8. 08 Jun, 2006 8 commits
    • Simon Marlow's avatar
      fix possible ^C problems · 7434fb5b
      Simon Marlow authored
      Calling prodAllCapabilities() from interruptStgRts() was wrong, for
      the same reasons that we stopped doing it in handle_tick().  We now
      use the same mechanism (send a byte down the pipe to the IO manager
      thread), but abstract it in a wakeUpRts() function in the scheduler.
    • Simon Marlow's avatar
      New tracing interface · 5a2769f0
      Simon Marlow authored
      A simple interface for generating trace messages with timestamps and
      thread IDs attached to them.  Most debugging output goes through this
      interface now, so it is straightforward to get timestamped debugging
      traces with +RTS -vt.  Also, we plan to use this to generate
      parallelism profiles from the trace output.
    • Simon Marlow's avatar
      fix warnings · 3f10646c
      Simon Marlow authored
    • Simon Marlow's avatar
      fix warnings · b6c66a92
      Simon Marlow authored
    • Simon Marlow's avatar
      more warning fixage · a9e6c441
      Simon Marlow authored
    • Simon Marlow's avatar
      fix a warning · 0caf5ba4
      Simon Marlow authored
    • Simon Marlow's avatar
      fix some warnings · e9b4997c
      Simon Marlow authored
    • Simon Marlow's avatar
      Add new RTS flags for tracing: · d2847b05
      Simon Marlow authored
        -vs       Trace scheduler events (see also -Ds with -debug)
        -vt       Time-stamp trace messages
      the intention is that we will pipe the -vs output into a
      profile-generating tool.  This commit includes the flags only,
      functionality to follow.
  9. 07 Jun, 2006 7 commits
  10. 27 Apr, 2006 1 commit
  11. 06 Jun, 2006 1 commit
    • simonmar@microsoft.com's avatar
      markSignalHandlers(): implementation was unnecessary, and had a bug · 47936fa6
      simonmar@microsoft.com authored
      There's no need to mark the signal handler here, because it is stored
      in a StablePtr and hence is a root anyway.  Furthermore, the call to
      evac() was passing the address of a local variable, which turned out
      to be harmless for copying GC, but fatal for compacting GC: compacting
      GC assumes that the addresses of the roots are the same each time.
      Fixes: possibly #783, possibly #776, definitely #787
  12. 30 May, 2006 3 commits
    • simonmar@microsoft.com's avatar
      Win32: add _imp__tzname · 4285fd96
      simonmar@microsoft.com authored
    • simonmar@microsoft.com's avatar
      fix Win32 build · 7a876582
      simonmar@microsoft.com authored
    • Simon Marlow's avatar
      replace stgMallocBytesRWX() with our own allocator · e3c55aeb
      Simon Marlow authored
      See bug #738
      Allocating executable memory is getting more difficult these days.  In
      particular, the default SELinux policy on Fedora Core 5 disallows
      making the heap (i.e. malloc()'d memory) executable, although it does
      apparently allow mmap()'ing anonymous executable memory by default.
      Previously, stgMallocBytesRWX() used malloc() underneath, and then
      tried to make the page holding the memory executable.  This was rather
      hacky and fails with Fedora Core 5.  
      This patch adds a mini-allocator for executable memory, based on the
      block allocator.  We grab page-sized blocks and make them executable,
      then allocate small objects from the page.  There's a simple free
      function, that will free whole pages back to the system when they are
  13. 25 May, 2006 1 commit
  14. 24 May, 2006 1 commit
    • Simon Marlow's avatar
      Better control of the IO manager thread; improvements to deadlock checking · 7a1f8fbd
      Simon Marlow authored
      In the threaded RTS on *nix platforms:
       - we now start the IO manager thread eagerly at startup time
         (previously was started on demand).
       - we now ask the IO manager thread to stop at shutdown
       - In Timer.c:handle_tick, if it looks like we might be in a
         deadlock, instead of calling prodOneCapability() which was known to be
         wrong, we now send a byte down the IO manager's pipe to wake it up.
      This also avoids a case of double-acquisition of a mutex, which
      happened if prodOneCapability() was called while the current thread
      was holding a mutex.