"Marco Maggi":
4. If a garbage collector allows to remove the need for
"scm_remember_upto_here" it must be adopted even if it
makes Guile slower and it raises memory usage a bit (or
more than a bit).
Who cares? I have written thousands and thousands of lines
of guile extensions in C. I have not yet had to use
this. Perhaps it's just dumb luck or something.
While coding GEE I had crashes that I fixed by remembering.
I am probably using it also in places where it is not
required. But I am not able to recognise those places, can
you guess why?
When I developed this:
http://www.notam02.no/arkiv/doc/snd-rt/ , my biggest problem
was all crashes related to garbage collection.
I think I got rid of the last garbage collector-bug in september 2006,
which was related to the ladspa plugin[1] SMOB in the function
rt-compiler.scm/make-ladspa. In that function, the variable "handle"
could be garbage collected during the execution
of the function. The diff for the fix is here:
http://snd.cvs.sourceforge.net/snd/cvs-snd/rt-compiler.scm?r1=1.45&r2=1.46
I think the exampe above shows how insanely complicated things
can get when you manually have to tell guile's garbage collector
what to scan and what not, and I also think it was
a miracle that I eventually spotted the bug. :-)
So in my experience, the current system is very inconvenient, and should
be replaced by a general garbage collector which works also works
for C objects, where this and other related problems wouldn't be an
issue.
[1] ladspa is the linux audio plugin format
_______________________________________________
Guile-user mailing list
Guile-user@gnu.org
http://lists.gnu.org/mailman/listinfo/guile-user