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

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

bug#54698: closed (non-recursive GC marking [PATCH])


From: GNU bug Tracking System
Subject: bug#54698: closed (non-recursive GC marking [PATCH])
Date: Mon, 04 Apr 2022 17:19:02 +0000

Your message dated Mon, 4 Apr 2022 19:18:31 +0200
with message-id <7035D38C-F6AF-4B10-A398-32CB3EFCA84E@acm.org>
and subject line Re: bug#54698: non-recursive GC marking [PATCH]
has caused the debbugs.gnu.org bug report #54698,
regarding non-recursive GC marking [PATCH]
to be marked as done.

(If you believe you have received this mail in error, please contact
help-debbugs@gnu.org.)


-- 
54698: http://debbugs.gnu.org/cgi/bugreport.cgi?bug=54698
GNU Bug Tracking System
Contact help-debbugs@gnu.org with problems
--- Begin Message --- Subject: non-recursive GC marking [PATCH] Date: Sun, 3 Apr 2022 20:40:57 +0200
The GC uses recursion to traverse data structures for marking which imposes a 
limit to how big (or deeply nested) Lisp data structures can be, and usually 
results in an immediate Emacs crash without warning when that limit is exceeded.

The attached patch replaces recursion with an explicit stack for most common 
object types: conses, vectors, records, hash tables, symbols, functions etc. 
Recursion remains for some less common types (buffers, frames etc) but these 
are typically not used in quantities to cause a problem.

A side benefit is that GC becomes quite a bit faster as a result. Actual 
workloads such as byte-compilation are consequently sped up by a small but 
measurable amount.

The patch is explicitly unfinished in some uninteresting respects to make it 
easier to read; `process_mark_stack` needs reindenting.

Attachment: gc-mark-stack.diff
Description: Binary data


--- End Message ---
--- Begin Message --- Subject: Re: bug#54698: non-recursive GC marking [PATCH] Date: Mon, 4 Apr 2022 19:18:31 +0200
4 apr. 2022 kl. 14.25 skrev Eli Zaretskii <eliz@gnu.org>:

> I don't need to prove you wrong: if the problem is real, we will hear
> about that soon enough.

Yes, you are probably right about that.

4 apr. 2022 kl. 13.31 skrev Lars Ingebrigtsen <larsi@gnus.org>:

> (bug#31362 and bug#46900 should probably be closed after applying this
> patch, I guess.)

Thanks, will do.

Pushed to master (after tidying up).



--- End Message ---

reply via email to

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