|
From: | Daniel Colascione |
Subject: | Re: New GC concept |
Date: | Mon, 7 Jun 2021 11:03:26 -0700 |
User-agent: | Mozilla/5.0 (X11; Linux x86_64; rv:78.0) Gecko/20100101 Thunderbird/78.8.1 |
On 6/7/21 10:32 AM, Matt Armstrong wrote:
Daniel Colascione <dancol@dancol.org> writes:Emacs has had the same GC for a decent amount of time now (since the 1980s, really). I spent some time in 2020 rewriting it from scratch. I haven't had time to work on the new GC recently, but I figure I'd throw it out here to get some feedback on the general concept. Check out https://github.com/dcolascione/emacs-1/blob/newgc-wip/src/alloc.c, specifically the big doc comment on topHey Daniel, I am no GC expert but I'm liking this a lot. I love the block comments in your alloc.c -- very clear and easy to understand. You're in a uniquely good position to work on this. I hope you continue!
Thank you!
I'm curious about the answer to one of the unanswered questions in your alloc.c FAQ: What about systems without virtual memory? Asked another way: can we reasonably expect to entirely replace the current GC with this new one? Are there platforms Emacs supports today that would be left behind?
We can definitely replace the existing GC with the new GC everywhere. I've designed the new GC to work on systems without virtual memory facilities. On these systems, we'll have to run the GC in non-concurrent, non-generational mode, but that's no regression from what we have today. We'll also probably want to use a smaller block size on these systems to reduce fragmentation overhead.
[Prev in Thread] | Current Thread | [Next in Thread] |