[Gc] There should be a library major bump of gc library
due to now having several GC_xyz "hidden" functions
Juan Jose Garcia-Ripoll
juanjose.garciaripoll at googlemail.com
Sun May 27 03:53:16 PDT 2012
On Sun, May 27, 2012 at 11:17 AM, Ivan Maidanski <ivmai at mail.ru> wrote:
> Could you suggest some solution for the issue for 7.2 and/or for 7.3+?
Definitely it is not something that _I_ can solve, for it is up to the
library to decide what API it wishes to export -- this will have
consequences for future releases.
I can only provide a list of functionality that ECL relies on
- In general, functions which are GC_EXTERN in gc_priv.h justify that this
header is *always* installed.
- GC_push_other_roots is used by ECL because it knows a set of dynamically
changing roots. Note, however, that in order to push those roots
GC_push_conditional() is needed, but this is not exported.
- typd_mlc.c is part of the garbage collector but it is not initialized. It
even doesn't have a declaration for GC_init_explicit_typing() which is
needed by ECL to implement a 2nd method of precise marking.
- In gc_mark.h there should also live GC_push_conditional() and
GC_set_mark_bit() because sometimes one does not need to mark _all_ of an
object. For instance, when ECL marks an array, it does not rely on the
BWDGC to do so, because it may know that part of the array is empty or full
of meaningless data. In this case we do something like
GC_push_conditional((void *)env->stack, (void *)env->stack_top, 1);
This is critical for performance and to avoid accidental data retention.
Probably this should be enough, but I fear that none of these changes will
propagate to the problematic distributions unless the library suffers a
Instituto de Física Fundamental, CSIC
c/ Serrano, 113b, Madrid 28006 (Spain)
-------------- next part --------------
An HTML attachment was scrubbed...
More information about the Gc