1. 25 Jan, 2006 2 commits
  2. 24 Jan, 2006 3 commits
  3. 22 Jan, 2006 1 commit
  4. 20 Jan, 2006 1 commit
  5. 23 Jan, 2006 4 commits
  6. 22 Jan, 2006 1 commit
  7. 23 Jan, 2006 1 commit
  8. 22 Jan, 2006 1 commit
  9. 19 Jan, 2006 5 commits
  10. 13 Jan, 2006 2 commits
  11. 18 Jan, 2006 10 commits
  12. 17 Jan, 2006 6 commits
    • simonmar's avatar
      [project @ 2006-01-17 16:13:18 by simonmar] · 91b07216
      simonmar authored
      Improve the GC behaviour of IORefs (see Ticket #650).
      
      This is a small change to the way IORefs interact with the GC, which
      should improve GC performance for programs with plenty of IORefs.
      
      Previously we had a single closure type for mutable variables,
      MUT_VAR.  Mutable variables were *always* on the mutable list in older
      generations, and always traversed on every GC.
      
      Now, we have two closure types: MUT_VAR_CLEAN and MUT_VAR_DIRTY.  The
      latter is on the mutable list, but the former is not.  (NB. this
      differs from MUT_ARR_PTRS_CLEAN and MUT_ARR_PTRS_DIRTY, both of which
      are on the mutable list).  writeMutVar# now implements a write
      barrier, by calling dirty_MUT_VAR() in the runtime, that does the
      necessary modification of MUT_VAR_CLEAN into MUT_VAR_DIRY, and adding
      to the mutable list if necessary.
      
      This results in some pretty dramatic speedups for GHC itself.  I've
      just measureed a 30% overall speedup compiling a 31-module program
      (anna) with the default heap settings :-D
      91b07216
    • simonmar's avatar
      [project @ 2006-01-17 16:03:47 by simonmar] · da69fa9c
      simonmar authored
      Improve the GC behaviour of IOArrays/STArrays
      
      See Ticket #650
      
      This is a small change to the way mutable arrays interact with the GC,
      that can have a dramatic effect on performance, and make tricks with
      unsafeThaw/unsafeFreeze redundant.  Data.HashTable should be faster
      now (I haven't measured it yet).
      
      We now have two mutable array closure types, MUT_ARR_PTRS_CLEAN and
      MUT_ARR_PTRS_DIRTY.  Both are on the mutable list if the array is in
      an old generation.  writeArray# sets the type to MUT_ARR_PTRS_DIRTY.
      The garbage collector can set the type to MUT_ARR_PTRS_CLEAN if it
      finds that no element of the array points into a younger generation
      (discovering this required a small addition to evacuate(), but rough
      tests indicate that it doesn't measurably affect performance).
      
      NOTE: none of this affects unboxed arrays (IOUArray/STUArray), only
      boxed arrays (IOArray/STArray).
      
      We could go further and extend the DIRTY bit to be per-block rather
      than for the whole array, but for now this is an easy improvement.
      da69fa9c
    • simonmar's avatar
      [project @ 2006-01-17 13:50:06 by simonmar] · ba416232
      simonmar authored
      statDescribeGens: count large blocks in the "live" figure
      ba416232
    • simonmar's avatar
      [project @ 2006-01-17 13:28:01 by simonmar] · 14ba76f4
      simonmar authored
      take into account unscavenged copied words in +RTS -t stats.
      14ba76f4
    • wolfgang's avatar
      [project @ 2006-01-17 02:13:16 by wolfgang] · 8b4568eb
      wolfgang authored
      Linux/PPC64: remove some dead code that accidentally slipped in.
      
      MERGE TO STABLE
      8b4568eb
    • wolfgang's avatar
      [project @ 2006-01-17 01:51:56 by wolfgang] · bfb04182
      wolfgang authored
      Darwin/PPC:
      Make StgRunIsImplementedInAssembler non-static; gcc has recently acquired
      a habit of dead-stripping it.
      
      MERGE TO STABLE
      bfb04182
  13. 16 Jan, 2006 1 commit
  14. 13 Jan, 2006 2 commits
    • Simon Marlow's avatar
      improvements to darcs-all · 6b16111d
      Simon Marlow authored
      - get from the same repo as the main GHC repo, if that was a local filesystem
      - allow darcs whatsnew
      - use --repodir if possible
      6b16111d
    • Simon Marlow's avatar
      Add infrastructure for multiple library packages · 60d9fc0b
      Simon Marlow authored
      The ./darcs-all script at the top level is an easier way to do darcs
      pull/push/get on the whole tree (it should probably allow more
      commands; I'll fix that later).
      
      libraries/default-packages is a list of darcs repositories with which
      to populate the libraries tree.
      60d9fc0b