1. 13 Jun, 2009 1 commit
  2. 12 Jun, 2009 1 commit
  3. 26 Apr, 2009 1 commit
  4. 19 Feb, 2009 1 commit
    • Simon Marlow's avatar
      Rewrite of signal-handling (ghc patch; see also base and unix patches) · 7ed3f755
      Simon Marlow authored
      The API is the same (for now).  The new implementation has the
      capability to define signal handlers that have access to the siginfo
      of the signal (#592), but this functionality is not exposed in this
      patch.
      
      #2451 is the ticket for the new API.
      
      The main purpose of bringing this in now is to fix race conditions in
      the old signal handling code (#2858).  Later we can enable the new
      API in the HEAD.
      
      Implementation differences:
      
       - More of the signal-handling is moved into Haskell.  We store the
         table of signal handlers in an MVar, rather than having a table of
         StablePtrs in the RTS.
      
       - In the threaded RTS, the siginfo of the signal is passed down the
         pipe to the IO manager thread, which manages the business of
         starting up new signal handler threads.  In the non-threaded RTS,
         the siginfo of caught signals is stored in the RTS, and the
         scheduler starts new signal handler threads.
      7ed3f755
  5. 04 Feb, 2009 1 commit
  6. 16 Dec, 2008 1 commit
  7. 19 Nov, 2008 1 commit
    • Simon Marlow's avatar
      Fix typo (HAVE_LIBGMP => HAVE_LIB_GMP); omit local gmp includes if HAVE_LIB_GMP · a6e1fda4
      Simon Marlow authored
      If we're using the system's installed GMP, we don't want to be picking
      up the local gmp.h header file.
      
      Fixes 2469(ghci) for me, because it turns out the system's GMP is more
      up-to-date than GHC's version and has a fix for more recent versions
      of gcc.  We also need to pull in a more recent GMP, but that's a
      separte issue.
      a6e1fda4
  8. 06 Nov, 2008 1 commit
  9. 08 Oct, 2008 1 commit
  10. 18 Sep, 2008 1 commit
  11. 02 Sep, 2008 1 commit
  12. 21 Aug, 2008 1 commit
  13. 12 Aug, 2008 1 commit
  14. 06 Aug, 2008 1 commit
  15. 05 Aug, 2008 1 commit
  16. 30 Jul, 2008 1 commit
  17. 21 Jun, 2008 1 commit
  18. 01 Nov, 2007 1 commit
  19. 08 Apr, 2008 1 commit
    • Simon Marlow's avatar
      Import libffi-3.0.4, and use it to provide FFI support in GHCi · e0fcf61d
      Simon Marlow authored
      This replaces the hand-rolled architecture-specific FFI support in
      GHCi with the standard libffi as used in GCJ, Python and other
      projects.  I've bundled the complete libffi-3.0.4 tarball in the
      source tree in the same way as we do for GMP, the difference being
      that we always build and install our own libffi regardless of whether
      there's one on the system (it's small, and we don't want
      dependency/versioning headaches).
      
      In particular this means that unregisterised builds will now have a
      fully working GHCi including FFI out of the box, provided libffi
      supports the platform.
      
      There is also code in the RTS to use libffi in place of
      rts/Adjustor.c, but it is currently not enabled if we already have
      support in Adjustor.c for the current platform.  We need to assess the
      performance impact before using libffi here too (in GHCi we don't care
      too much about performance).
      e0fcf61d
  20. 23 Mar, 2008 1 commit
  21. 12 Jan, 2008 1 commit
  22. 03 Jan, 2008 1 commit
    • Simon Marlow's avatar
      Optionally use libffi to implement 'foreign import "wrapper"' (#793) · 5123ae93
      Simon Marlow authored
      To enable this, set UseLibFFI=YES in mk/build.mk.  
      
      The main advantage here is that this reduces the porting effort for
      new platforms: libffi works on more architectures than our current
      adjustor code, and it is probably more heavily tested.  We could
      potentially replace our existing code, but since it is probably faster
      than libffi (just a guess, I'll measure later) and is already working,
      it doesn't seem worthwhile.
      
      Right now, you must have libffi installed on your system.  I used the
      one supplied by Debian/Ubuntu.
      5123ae93
  23. 17 Dec, 2007 1 commit
  24. 10 Aug, 2007 1 commit
  25. 05 Jul, 2007 1 commit
  26. 11 Mar, 2007 1 commit
  27. 05 Dec, 2006 1 commit
  28. 08 Nov, 2006 1 commit
    • mrchebas@gmail.com's avatar
      Addition of PAPI to RTS · fe07f054
      mrchebas@gmail.com authored
      This patch still requires the addition of the USE_PAPI
      define to compile with PAPI. Also, programs must be
      compiled and linked with the appropriate library flags
      for papi.
      fe07f054
  29. 27 Jul, 2006 1 commit
  30. 26 Jul, 2006 1 commit
  31. 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.
      7a1f8fbd
  32. 07 Apr, 2006 1 commit
    • Simon Marlow's avatar
      Reorganisation of the source tree · 0065d5ab
      Simon Marlow authored
      Most of the other users of the fptools build system have migrated to
      Cabal, and with the move to darcs we can now flatten the source tree
      without losing history, so here goes.
      
      The main change is that the ghc/ subdir is gone, and most of what it
      contained is now at the top level.  The build system now makes no
      pretense at being multi-project, it is just the GHC build system.
      
      No doubt this will break many things, and there will be a period of
      instability while we fix the dependencies.  A straightforward build
      should work, but I haven't yet fixed binary/source distributions.
      Changes to the Building Guide will follow, too.
      0065d5ab
  33. 15 Dec, 2005 1 commit
  34. 03 Nov, 2005 1 commit
    • simonmar's avatar
      [project @ 2005-11-03 11:05:38 by simonmar] · cc2926f3
      simonmar authored
      Improvments to time-measurement and stats:
      
        - move all the platform-dependent timing related stuff into
          posix/GetTime.c and win32/GetTime.c, with the machine-indepent
          interface specified in GetTime.h.  This is now used by
          Stats.c.
      
        - On Unix, use gettimeofday() and getrusage() by default, falling
          back to time() if one of these isn't available.
      
        - try to implement thread-specfic CPU-time measurement using
          clock_gettime() on Unix.  Doesn't work reliably on Linux, because
          the implemenation tries to use the processor TSC, which on an
          SMP machine goes wrong when the thread moves between CPUs.  However,
          it's slightly less bogus that before, and hopefully will improve
          in the future.
      cc2926f3
  35. 18 May, 2005 1 commit
  36. 22 Apr, 2005 1 commit
  37. 15 Apr, 2005 1 commit
    • wolfgang's avatar
      [project @ 2005-04-15 05:29:48 by wolfgang] · eab7055a
      wolfgang authored
      Initialise foreign exports from GNU C __attribute__((constructor)) functions
      in the stub C file, rather than from __stginit_ functions.
      For non-profiling ways, leave out __stginit_ alltogether.
      eab7055a
  38. 08 Mar, 2005 1 commit
    • wolfgang's avatar
      [project @ 2005-03-08 04:45:29 by wolfgang] · f97dcf9f
      wolfgang authored
      Mac OS X:
      Kill HaskellSupport.framework.
      Instead, look for GMP.framework (a framework-version of libgmp), else look
      for a normal -lgmp as usual.
      The other part of HaskellSupport.framework, dlcompat, is no longer needed
      (as of Mac OS X 10.3, it's included in libSystem).
      It's enough to just use the normal configure tests for -ldl.
      
      MERGE TO STABLE
      f97dcf9f
  39. 20 Feb, 2005 2 commits