unofficial mirror of emacs-devel@gnu.org 
 help / color / mirror / code / Atom feed
From: Po Lu <luangruo@yahoo.com>
To: Phil Sainty <psainty@orcon.net.nz>
Cc: LdBeth <andpuke@foxmail.com>,
	 Stefan Monnier <monnier@iro.umontreal.ca>,
	 emacs-devel@gnu.org
Subject: Re: Not using DOC for ELisp files
Date: Tue, 28 Dec 2021 18:31:40 +0800	[thread overview]
Message-ID: <87ilv9vx4j.fsf@yahoo.com> (raw)
In-Reply-To: <1ce8fac9a149bd623be2953a5c5d451c@webmail.orcon.net.nz> (Phil Sainty's message of "Tue, 28 Dec 2021 22:52:24 +1300")

Phil Sainty <psainty@orcon.net.nz> writes:

> I believe that Jeff Walsh is currently continuing work on the
> generational GC started by Daniel Colascione.

I don't think a purely generational GC is the way to go.  It's
inappropriate for an interactive program like Emacs, where
responsiveness is more important than raw GC performance.

Besides, the goal of my garbage collector is to be minimally invasive.

It extends the existing mark-and-sweep garbage collector to act
incrementally, and makes use of hardware write barriers.  (And as such
is unlikely to work on machines that don't support VM and something like
`mprotect'.)

It's still a work-in-progress with some features completely missing, and
it also has a lot of low-hanging optimization fruit.  For example, when
a write barrier is hit, the faulting address is looked up inside
mem_root, and the object found is simply pushed back onto the scan
stack.  (Nothing fancy is done with objects such as conses, where
chances are the object being written to it can be immediately marked
because it will not be modified further.)

Incremental marking already works in undumped Emacs, except for a tough
bug involving car-nested conses that are scanned from intervals on the
stack that cross a page, but I haven't worked on incremental sweeping
yet, and it doesn't work in a dumped Emacs at all.

Thanks.



  reply	other threads:[~2021-12-28 10:31 UTC|newest]

Thread overview: 31+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2021-12-28  1:48 Not using DOC for ELisp files Stefan Monnier
2021-12-28  2:25 ` Po Lu
2021-12-28  3:48   ` Stefan Kangas
2021-12-28  5:39     ` Po Lu
2021-12-28  4:11   ` LdBeth
2021-12-28  5:03     ` Stefan Monnier
2021-12-28  5:38     ` Po Lu
2021-12-28  9:52     ` Phil Sainty
2021-12-28 10:31       ` Po Lu [this message]
2021-12-28 12:47         ` Po Lu
2021-12-28  7:10   ` Lars Ingebrigtsen
2021-12-28  3:39 ` Stefan Kangas
2021-12-28  5:10   ` Stefan Monnier
2021-12-28  6:56 ` Lars Ingebrigtsen
2021-12-28 12:44 ` Eli Zaretskii
2021-12-28 17:14   ` Stefan Monnier
2021-12-28 18:17     ` Eli Zaretskii
2021-12-29  0:15       ` Stefan Monnier
2021-12-29 12:30         ` Johann Klähn
2021-12-29 23:08           ` Stefan Monnier
2021-12-29 12:52         ` Eli Zaretskii
2021-12-29 23:23           ` Stefan Monnier
2021-12-30  7:20             ` Eli Zaretskii
2021-12-31  4:19               ` Stefan Monnier
2021-12-31  8:57                 ` Eli Zaretskii
2021-12-31 16:16                   ` Stefan Monnier
2021-12-31 18:45                     ` Eli Zaretskii
2022-01-03 13:48 ` Ken Raeburn
2022-01-03 14:30   ` Eli Zaretskii
2022-01-07 22:59     ` Ken Raeburn
2022-01-08  7:08       ` Eli Zaretskii

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

  List information: https://www.gnu.org/software/emacs/

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=87ilv9vx4j.fsf@yahoo.com \
    --to=luangruo@yahoo.com \
    --cc=andpuke@foxmail.com \
    --cc=emacs-devel@gnu.org \
    --cc=monnier@iro.umontreal.ca \
    --cc=psainty@orcon.net.nz \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
Code repositories for project(s) associated with this public inbox

	https://git.savannah.gnu.org/cgit/emacs.git

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).