On Fri, 06 Nov 2015 00:12:40 +0100 Bix strabixbox@yahoo.com wrote:
Yep, manage memory manually is impratical and as you said circular structures are one of the real problem.
With reference counting these should be a problem, although libgc is a mark-and-sweep collector which should detect when elements are no longer referenced more effectively.
I played a bit with the boot option but I was unable to embed ECL and not have at least one additional thread spaw by the GC or it was the SIGNAL_HANDLING_THREAD ? However I always end up with at least two thread ( in Linux ), am I doing something wrong ?
ECL indeed starts a thread to handle signals when it is built with threads support.
I tried to build with --enable-gengc but I'm unable to build, I think that is Issue #81.
Unfortunately I presonally have no experience using the generational variant, but others here might have used it. I think that boehm-gc itself only supports the option on a few select operating systems.
I just noticed the cl_boot options allow INCREMENTAL_GC what the difference between that one and the autoconf option --enable-gengc
Presumably --enable-gengc allows to build optional support, and INCREMENTAL_GC permits to enable said support for that instance.
I also noticed your question about share-nothing; this is what would occur if you used actual OS processes for the instances.