1. 09 Nov, 1999 1 commit
    • simonmar's avatar
      [project @ 1999-11-09 15:46:49 by simonmar] · 30681e79
      simonmar authored
      A slew of SMP-related changes.
       - New locking scheme for thunks: we now check whether the thunk
         being entered is in our private allocation area, and if so
         we don't lock it.  Well, that's the upshot.  In practice it's
         a lot more fiddly than that.
       - I/O blocking is handled a bit more sanely now (but still not
         properly, methinks)
       - deadlock detection is back
       - remove old pre-SMP scheduler code
       - revamp the timing code.  We actually get reasonable-looking
         timing info for SMP programs now.
       - fix a bug in the garbage collector to do with IND_OLDGENs appearing
         on the mutable list of the old generation.
       - move BDescr() function from rts/BlockAlloc.h to includes/Block.h.
       - move struct generation and struct step into includes/StgStorage.h (sigh)
       - add UPD_IND_NOLOCK for updating with an indirection where locking
         the black hole is not required.
  2. 05 Nov, 1999 1 commit
  3. 02 Nov, 1999 1 commit
    • simonmar's avatar
      [project @ 1999-11-02 15:05:38 by simonmar] · f6692611
      simonmar authored
      This commit adds in the current state of our SMP support.  Notably,
      this allows the new way 's' to be built, providing support for running
      multiple Haskell threads simultaneously on top of any pthreads
      implementation, the idea being to take advantage of commodity SMP
      Don't expect to get much of a speedup yet; due to the excessive
      locking required to synchronise access to mutable heap objects, you'll
      see a slowdown in most cases, even on a UP machine.  The best I've
      seen is a 1.6-1.7 speedup on an example that did no locking (two
      optimised nfibs in parallel).
      	- new RTS -N flag specifies how many pthreads to start.
      	- new driver -smp flag, tells the driver to use way 's'.
      	- new compiler -fsmp option (not for user comsumption)
      	  tells the compiler not to generate direct jumps to
      	  thunk entry code.
      	- largely rewritten scheduler
      	- _ccall_GC is now done by handing back a "token" to the
      	  RTS before executing the ccall; it should now be possible
      	  to execute blocking ccalls in the current thread while
      	  allowing the RTS to continue running Haskell threads as
      	- you can only call thread-safe C libraries from a way 's'
      	  build, of course.
      Pthread support is still incomplete, and weird things (including
      deadlocks) are likely to happen.
  4. 06 Jul, 1999 2 commits
  5. 05 Jul, 1999 1 commit
    • sof's avatar
      [project @ 1999-07-05 17:25:23 by sof] · 45adecbe
      sof authored
      Stg.h contains all the defs and protos that are visible when compiling
      .hc code (==> .hs code). Augment this set with the externally visible
      RTS API.
  6. 25 Jun, 1999 2 commits
    • simonmar's avatar
      [project @ 1999-06-25 09:14:54 by simonmar] · 4551fa12
      simonmar authored
      Comment about TABLES_NEXT_TO_CODE.
    • simonmar's avatar
      [project @ 1999-06-25 09:13:37 by simonmar] · 6d40c9e6
      simonmar authored
      New define: TABLES_NEXT_TO_CODE says whether info tables are assumed
      to reside just before the code for a function.   We used to use
      USE_MINIINTERPRETER for this function, but it makes sense in certain
      cases to separate the use of tail-calls from tables-next-to-code.
      StgMacros: add a couple of missing macros to support update in place.
  7. 11 May, 1999 1 commit
    • keithw's avatar
      [project @ 1999-05-11 16:46:20 by keithw] · 29b65248
      keithw authored
      (this is number 8 of 9 commits to be applied together)
        The CPP flag LAZY_BLACKHOLING has been moved up from options.h into
        Stg.h, so GHC can see it as well as the interpreter, and
        EAGER_BLACKHOLING has been added.  The default is still
  8. 10 May, 1999 1 commit
  9. 04 May, 1999 1 commit
  10. 15 Mar, 1999 1 commit
  11. 03 Mar, 1999 1 commit
  12. 02 Mar, 1999 1 commit
  13. 05 Feb, 1999 1 commit
  14. 26 Jan, 1999 1 commit
    • simonm's avatar
      [project @ 1999-01-26 11:12:41 by simonm] · ed4cd6d4
      simonm authored
      - Add Stable Names
      - Stable pointers and stable names are now both provided by the
        "Stable" module in ghc/lib/exts.  Documentation is updated, and Foriegn
        still exports the stable pointer operations for backwards compatibility.
  15. 21 Jan, 1999 1 commit
  16. 18 Jan, 1999 1 commit
    • sof's avatar
      [project @ 1999-01-18 14:37:43 by sof] · 8846a7d8
      sof authored
      Added protos for freeHaskellFunctionPtr() and createAdjustor()
      (suggestions as to what might be a more appropriate home for these
      are welcome.)
  17. 02 Dec, 1998 1 commit