So! This is an attempt to mitigate memory growth in the use case shown at <https://debbugs.gnu.org/cgi/bugreport.cgi?bug=28590>. Unfortunately, it doesn’t that much: on the python.scm compilation “benchmark”, there’s a bit less than 10% gain both in memory consumption and CPU time.
I’ll try to combine that with incremental marking of the weak table, but I’m not very hopeful. Andy: I need your help! :-) Ludo’. Ludovic Courtès (7): weak-table: Fix unbounded growth of the disappearing link table. weak-table: Stress the GC a little less when resizing. weak-table: Make sure 'move_disappearing_links' actually moves links. weak-table: Always unregister previous links when inserting an entry. weak-table: 'move_weak_entry' reports disappeared links. weak-table: 'rob_from_rich' accounts for disappeared entries. weak-table: Resize less frequently. libguile/weak-table.c | 144 +++++++++++++++++++++++++++++++++++++++----------- 1 file changed, 114 insertions(+), 30 deletions(-) -- 2.14.2