[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
GC rewrite, first version.
From: |
Han-Wen |
Subject: |
GC rewrite, first version. |
Date: |
Sun, 28 Jul 2002 00:54:19 +0200 |
I've just finished a first version of the rewrite of the garbage
collector. You can download it from
http://www.cs.uu.nl/~hanwen/public/guile/gc-rewrite-0.0.tar.gz
Some general notes:
* I've split gc.c in a lot of files, and a private header file. The
formerly static functions are now exported, but with the scm_ prefix
I think the prefix scm_i_ is utterly unreadable. I decided against
using it. The header file is not `exported' so that should make it
clear that the structures are internal.
* Clusters have been removed. We already had cards as a unit of
memory; for MT applications, we can hand out a few free cards for
each thread.
* The code has been cleaned up *a lot*. I think that the code is
almost readable now (except for the actual sweep & mark functions, I
didn't touch those.).
* I've removed a lot of cruft. (gc.c still contained verbatim
fragments of SCM portability glue -- Ick!)
* I've also removed part of the header file. I think that GUILE client
programs should not have anything to do with how GC works, but if
someone desparately needs a symbol back, it could be done.
* I've tried to retain the basic interface of the GC (wrt statistics
and mtriggers), but I'm not sure that I succeeded, there is a lot of
undocumented stuff going on there.
* The debugging options are still broken; it is not clear to me for
whom these options are, and I only want to put them back when it's
clear what the final form of the GC will be, and when there is a
need.
* Some preliminary benchmarks show that the code is about 2 to 10 %
slower than the old GC. I suspect this is because the cards are
relatively small, causing more overhead during the sweep.
* Next target: try to beat the old GC using lazy sweeping. (When this
target is met, I think the code should replace the old GC in CVS
guile).
[And yes, I don't care much for the compatibility. Especially not in
this hacking stage, and especially not for the internals of the GC.]
--
Han-Wen Nienhuys | address@hidden | http://www.cs.uu.nl/~hanwen
- GC rewrite, first version.,
Han-Wen <=
- Re: GC rewrite, first version., Rob Browning, 2002/07/28
- Re: GC rewrite, first version., Dirk Herrmann, 2002/07/29
- Re: GC rewrite, first version., Rob Browning, 2002/07/29
- Re: GC rewrite, first version., Han-Wen, 2002/07/29
- Re: GC rewrite, first version., Dirk Herrmann, 2002/07/31
- Re: GC rewrite, first version., Han-Wen Nienhuys, 2002/07/31
- Re: GC rewrite, first version., Rob Browning, 2002/07/31
- Re: GC rewrite, first version., Neil Jerram, 2002/07/31
Re: GC rewrite, first version., Michael Livshin, 2002/07/28