Make debug-gc-object-lifetimes useful on Guile 2
Filter finalized smobs out of undeads
Guile puts the garbage collector into "Java finalization" mode. This means to-be-finalized objects are marked to keep dependent objects around until the next collection, in case the finalizer puts them into a global variable and makes them live again. Just ignore these cases since the smob is gone from our point of view.
Allow the usage of debug-gc-object-lifetimes
on Guile 2, but keep
it disabled by default until all issues are resolved.
Avoid keeping modules alive for too long
Commit 1e789f64 ("Reset modules after each file with Guile 2.x")
had a minor flaw because the variable global-modules
could keep the
modules alive after calling (set-module-submodules!)
. Just remove
the variable that is used only once in session-save
.