emacs-pretest-bug
[Top][All Lists]
Advanced

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

Re: GC


From: Dave Love
Subject: Re: GC
Date: Fri, 07 May 2004 18:42:06 +0100
User-agent: Gnus/5.1002 (Gnus v5.10.2) Emacs/21.2 (gnu/linux)

Stefan Monnier <address@hidden> writes:

> I only know how to specify alignment of static data on GCC, so USE_LSB_TAG
> currently only works with GCC.

You typically need a pragma with other compilers, although the Compaq
compiler has `__align', for instance.  (I know about the issues with
#pragma; I seem to remember that was addressed in C99, but I don't
have the spec.)

> That's not a great advertisement, now is it?
> I understand how you feel, but the patch is pretty large and is non-working,
> so it takes a fair bit of effort for anyone to come and help you.

As far as I know, the only things that are non-working about it are
weak hash tables (unused, I think) and collecting marker chains
without crashing.  The latter was what I wanted help with since I was
fairly sure I was missing something fairly obvious and
straightforward.

You could measure in batch, when markers probably aren't an issue, but
that's not what I was interested in.

> That's what I would expect as well, but since Emacs's current GC is only
> conservative w.r.t. stack scanning and has distinct allocation methods for
> various types of data, Boehm's GC is likely to have a different "performance
> envelope".

Yes, like being less likely to thrash my machine collecting...  How
might the Emacs allocation be better than what you can do with Boehm?

> What is still missing is concrete data about our particular case.

Yes, but the issue is actual interactive use, especially with little
free memory, and I don't think it's reasonable to try to measure
anything while leaking markers at a considerable rate.  (I can't
remember why they get allocated as frequently as they do.)

> Right, with USE_LSB_TAG several things might have to be done differently
> (the off-by-one trick for marker chains springs to mind).

That isn't a trick I missed that would account for the crashes when I
tried to collect them, I wonder?  I can't remember enough about it.

> So I'm interested in knowing why you did things the way you did to know
> what changes might be needed, what simplifications could be made.

In what respect?  If I remember correctly, I mainly had to get Boehm
to add a feature allowing high-order tags, then abstract some of the
allocation of things like markers, and conditionalize out a lot of
alloc.c.  There would have been significant work in tidying it all up.




reply via email to

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