[Top][All Lists]

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: Dynamic loading progress

From: Aurélien Aptel
Subject: Re: Dynamic loading progress
Date: Thu, 10 Jul 2014 19:21:16 +0200

On Thu, Jul 10, 2014 at 12:18 AM, Stefan Monnier
<address@hidden> wrote:
> You could change its handling of PVEC_SUBR such that it calls itself
> recursively on the `doc' field and then make sure the VECTOR_MARKED_P bit
> gets reset to false in gc_sweep.

I understand that marking a symbol which is bound to a subr means we
have to mark the subr i.e. the doc field since we can't free a subr.
But why do we need to do something else? The doc string being either a
cons, an int or a string it will be automatically handled in the
respective sweep_xxx functions. There are no global list of subr that
can be swept AFAIK.

I've only made the mark_object() recursive call. Getting a module
documentation still doesn't work but at least the conses are valid

> Or maybe force those `doc' references to be kept alive by adding
> globally reachable references to them (e.g. have a global list of all
> the cons cells you ever added to such a `doc' field, and then
> `staticpro' that list).

The first solution is better IMHO, it's more intrusive but it limits
the scope of the problem to the GC.

reply via email to

[Prev in Thread] Current Thread [Next in Thread]