1. 19 Dec, 2002 1 commit
  2. 16 Aug, 2002 1 commit
  3. 24 Apr, 2002 1 commit
  4. 09 Apr, 2002 1 commit
    • simonmar's avatar
      [project @ 2002-04-09 12:56:36 by simonmar] · 32c9a025
      simonmar authored
      If we free a StablePtr which has no StableName attached, then just
      add its entry to the free list immediately, rather than waiting for
      the garbage collector to free it.
      32c9a025
  5. 20 Dec, 2001 1 commit
  6. 21 Nov, 2001 1 commit
    • simonmar's avatar
      [project @ 2001-11-21 10:09:15 by simonmar] · 560bf0f6
      simonmar authored
      Turn the weighted reference count in a StablePtr into a simple counter
      in the stable ptr table.  We never made use of the weighted count, and
      it caused problems when making many StablePtrs to the same object.
      
      In the future we could remove the reference counting altogether and
      just make a new StablePtr each time, rather than attempting to use an
      existing one.  This would save on the hash table lookup at creation
      time.
      560bf0f6
  7. 14 Aug, 2001 1 commit
    • sewardj's avatar
      [project @ 2001-08-14 13:40:07 by sewardj] · bc5c8021
      sewardj authored
      Change the story about POSIX headers in C compilation.
      
      Until now, all C code in the RTS and library cbits has by default been
      compiled with settings for POSIXness enabled, that is:
         #define _POSIX_SOURCE   1
         #define _POSIX_C_SOURCE 199309L
         #define _ISOC9X_SOURCE
      If you wanted to negate this, you'd have to define NON_POSIX_SOURCE
      before including headers.
      
      This scheme has some bad effects:
      
      * It means that ccall-unfoldings exported via interfaces from a
        module compiled with -DNON_POSIX_SOURCE may not compile when
        imported into a module which does not -DNON_POSIX_SOURCE.
      
      * It overlaps with the feature tests we do with autoconf.
      
      * It seems to have caused borkage in the Solaris builds for some
        considerable period of time.
      
      The New Way is:
      
      * The default changes to not-being-in-Posix mode.
      
      * If you want to force a C file into Posix mode, #include as
        the **first** include the new file ghc/includes/PosixSource.h.
        Most of the RTS C sources have this include now.
      
      * NON_POSIX_SOURCE is almost totally expunged.  Unfortunately
        we have to retain some vestiges of it in ghc/compiler so that
        modules compiled via C on Solaris using older compilers don't
        break.
      bc5c8021
  8. 08 Aug, 2001 1 commit
  9. 23 Jul, 2001 1 commit
    • simonmar's avatar
      [project @ 2001-07-23 17:23:19 by simonmar] · dfd7d6d0
      simonmar authored
      Add a compacting garbage collector.
      
      It isn't enabled by default, as there are still a couple of problems:
      there's a fallback case I haven't implemented yet which means it will
      occasionally bomb out, and speed-wise it's quite a bit slower than the
      copying collector (about 1.8x slower).
      
      Until I can make it go faster, it'll only be useful when you're
      actually running low on real memory.
      
      '+RTS -c' to enable it.
      
      Oh, and I cleaned up a few things in the RTS while I was there, and
      fixed one or two possibly real bugs in the existing GC.
      dfd7d6d0
  10. 13 Jul, 2001 1 commit
  11. 04 Sep, 2000 2 commits
  12. 24 Apr, 2000 1 commit
    • panne's avatar
      [project @ 2000-04-24 22:05:08 by panne] · 6d6424ae
      panne authored
      Use get_itbl instead of direct access to info field in
      removeIndirections. This "worked" only because the probability of
      hitting an indirection-like closure by chance is 5:65531 on 32bit
      platforms. :-) But HOpenGL once again managed to expose this bug...
      6d6424ae
  13. 29 Feb, 2000 1 commit
    • sof's avatar
      [project @ 2000-02-29 19:59:38 by sof] · e19ffca9
      sof authored
      Added removeIndirections() and make use of it in lookupStableName() -- increases
      the possibilities of StableName sharing.
      e19ffca9
  14. 26 Oct, 1999 1 commit
    • sewardj's avatar
      [project @ 1999-10-26 17:15:39 by sewardj] · 37cb07db
      sewardj authored
      markStablePtrTable: correctly handle case when one stable ptr refers
      to an indirection to an item referred to directly by a second
      stable ptr (I think!).
      37cb07db
  15. 15 Sep, 1999 1 commit
  16. 04 Aug, 1999 2 commits
  17. 16 Jul, 1999 1 commit
  18. 08 Mar, 1999 1 commit
  19. 26 Feb, 1999 1 commit
    • simonm's avatar
      [project @ 1999-02-26 12:46:45 by simonm] · a59148d1
      simonm authored
      Fix stable pointer bug:
      
         - the 'keep' flag is now a pointer to the stable name object.
      
         - makeStableName always returns an existing stable name object
           if one exists.
      
         - re-use stable name table entries iff the stable name object
           becomes unreachable (takes into account generational GC now),
           and the reference count is 0.
      a59148d1
  20. 05 Feb, 1999 1 commit
  21. 27 Jan, 1999 1 commit