unofficial mirror of guile-devel@gnu.org 
 help / color / mirror / Atom feed
* GC rewrite, first version.
@ 2002-07-27 22:54 Han-Wen
  2002-07-28 16:40 ` Rob Browning
  2002-07-28 16:51 ` Michael Livshin
  0 siblings, 2 replies; 31+ messages in thread
From: Han-Wen @ 2002-07-27 22:54 UTC (permalink / raw)



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   |   hanwen@cs.uu.nl   |   http://www.cs.uu.nl/~hanwen 

_______________________________________________
Guile-devel mailing list
Guile-devel@gnu.org
http://mail.gnu.org/mailman/listinfo/guile-devel


^ permalink raw reply	[flat|nested] 31+ messages in thread

end of thread, other threads:[~2002-08-04 20:57 UTC | newest]

Thread overview: 31+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2002-07-27 22:54 GC rewrite, first version Han-Wen
2002-07-28 16:40 ` Rob Browning
2002-07-29 20:11   ` Dirk Herrmann
2002-07-29 21:04     ` Rob Browning
2002-07-29 22:05       ` Han-Wen
2002-07-31 17:03         ` Dirk Herrmann
2002-07-31 18:02           ` Han-Wen Nienhuys
2002-07-31 21:15             ` Rob Browning
2002-08-01  9:20               ` Release Guile, now ;-) [was:] " rm
2002-08-01 16:27                 ` Rob Browning
2002-08-01 16:44                   ` rm
2002-08-01 18:37                   ` Sergey Poznyakoff
2002-08-01 22:21                     ` Rob Browning
2002-08-02  6:09                       ` Sergey Poznyakoff
2002-08-02 14:36                         ` Rob Browning
2002-08-02 17:29                           ` Sergey Poznyakoff
2002-08-02 18:10                             ` Bruce Korb
2002-08-02 19:50                               ` Rob Browning
2002-08-03  7:13                               ` Sergey Poznyakoff
2002-08-04 20:43                                 ` Bruce Korb
2002-08-04 20:57                                   ` Sergey Poznyakoff
2002-08-01 22:40                   ` Rob Browning
2002-08-02  9:35                     ` rm
2002-08-02 11:59                       ` rm
2002-08-02 15:00                         ` Rob Browning
2002-08-02 14:50                       ` Rob Browning
2002-08-01  9:59               ` Han-Wen Nienhuys
2002-08-01  8:46             ` Marius Vollmer
2002-07-31 18:46         ` Neil Jerram
2002-08-01  9:58           ` Han-Wen Nienhuys
2002-07-28 16:51 ` Michael Livshin

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).