>>>> "OG" == Olivier Galibert
<galibert(a)pobox.com> writes:
OG> On Wed, Feb 16, 2000 at 09:21:18PM -0800, Martin Buchholz wrote:
> I don't really understand the `free' bit yet.
OG> The free bit is here for lrecord-lists sake. The idea is that some of
OG> the of the lcrecords in the global all_lcrecord list are in practice
OG> free and on a lrecord-list free list. The lrecord-lists have no quick
OG> way to remove these records from the list when free_managed_lcrecord
OG> is called, so they don't.
If a particular lcrecord isn't to be collected using all_lcrecords, it
shouldn't be put on that list in the first place, i.e. we shouldn't
use alloc_lcrecord().
OG> Actually, since the marker for the lcrecord-lists marks
OG> (non-recursively) all the elements of its free list, the flag isn't
OG> useful at sweep time. The only time when it is useful is when calling
OG> disksave_object_finalization_1. And frankly, I'm not sure we really
OG> need this finalization.
> Make sure that SYMBOL_VALUE_MAGIC_P is as fast as possible,
which
> might be hard if magic values are multiple types. As I said before, I
> think setting a bit in the symbol object itself is the way to go here
> (and demoting magic values from Lisp_Object status). Allocated memory
> that is never visible to the user, and always logically part of some
> other object, should not be subject to gc. You want to keep the
> objects examined by gc as small as possible. ... but after 21.2....
OG> Beware, you're giving me ideas ;-)
After the next release...
(of course, I keep breaking that rule myself...)