Subject: bug#54698: non-recursive GC marking [PATCH]

From: Mattias Engdegård <[email-masked]>
Date: Tue, 5 Apr 2022 13:11:44 +0200

5 apr. 2022 kl. 10.39 skrev Po Lu <[email-masked]>:

> I think a failed xmalloc will also make Emacs prompt to "C-x s, then
> exit".

Yes, you're probably right. (Never seen it happen myself.)

> That code wasn't tested in an actual out-of-memory situation yet (it's
> too soon to consider this), but hopefully it will work.  I think it
> works when running out of memory in general, because otherwise it
> wouldn't be what memory_full eventually asks the user to do.

Out-of-memory handling is difficult to do correctly and to test, especially on modern systems. You are right to make a reasonable effort at dealing with it but don't go overboard -- at some point effort is better spent on limiting user data loss in other ways (robust auto-save in particular).

>  There's a lot of other
> low hanging fruit for optimization as well, but it's too early to work
> on those, since at present the garbage collector is not even working due
> to the recent changes that added a manually managed stack to the
> bytecode interpreter.

Very sorry about that (but Progress stops for nobody)!
In fact the new bytecode stack should provide more opportunities for efficient GC, but let's discuss that elsewhere.

> Thanks.

You're welcome.