Dear all,
How do you do. My name Is Kenichi Okuyama, and I have just joined
this ML few days ago.
I'm intrested in xemacs newest version, especially on part of
Garbage Collection. And I would like to know if there is any
changes made ever since 19.28. Is it re-written ( with basically
same algorithm? ), or is it totally new?
Long ago, when emacs was 19.28 ( and mule was 2.3 ), I made a little
hack on alloc.c . It's still available on
http://nagahashi-www.isl.titech.ac.jp/~okuyama/html/program/Mule-2.3-allo...
(this is for Mule version of emacs, so it might not work properly on
emacs, though I don't beleave so).
I wondered if the same hack works on current version of xemacs.
What I did was very simple.
When you have once used many cons-cells, like when you run GNUS 4.*
( the very old one ), and when you're done with it, what you'll have
is pile full of "unused cons-cell".
Problem that old emacs-GC had, was that they keep on re-checking the
cells that are linked on FREE-LIST. This will:
1)re-load all the swapped out pages that have not been used for long
time, just to re-check that they are not being used.
2)by swapping out, they keep the values that have no meaning
anymore, which will waste virtual address space.
Since cons-cells were malloced per "chunk", I added very little
routine that
if all the cons-cells in the "chunk" was unused,
instead of adding those cons-cells to free-list,
simply free() the "chunk".
This hack worked good because
1) after first GC is done, chunks are free-ed and will not cause
swap-in/swap-out anymore. This was effective when we had little
real memory ( like 12Mbytes.. ).
2) since "chunk" are being free-ed, under some malloc system,
virtual memory area could be released.
I wondered if this hack ( not the same routine, but same idea )
still works or not.
I'm asking this because I'm having trouble with accessing to
xemacs's newest version, Because
1) I have no idea which one is the newest.
( I didn't even know about xemacs until few month ago ).
2) I can't run CVS* tools, because of firewall.
but still, I would like to know if my old idea could be of any help.
,regards
----
Kenichi Okuyama @ Tokyo Research Lab. IBM. Co.