all messages for Emacs-related lists mirrored at yhetil.org
 help / color / mirror / code / Atom feed
From: Helmut Eller <eller.helmut@gmail.com>
To: Eli Zaretskii <eliz@gnu.org>
Cc: "Gerd Möllmann" <gerd.moellmann@gmail.com>, emacs-devel@gnu.org
Subject: Re: MPS GC and its implications
Date: Wed, 01 May 2024 15:43:08 +0200	[thread overview]
Message-ID: <87frv1hclv.fsf@gmail.com> (raw)
In-Reply-To: <86wmodofvw.fsf@gnu.org> (Eli Zaretskii's message of "Wed, 01 May 2024 15:50:27 +0300")

>> I'm not sure what is with the buffer case, but the string case means
>> that source can point to string data, which is in our MPS leaf_pool. I
>> think we cvould use an exact scan function for that purpose, analogous
>> to scan_specpdl. WSYT?
>
> If this is indeed needed, we are in trouble.  When we take a C pointer
> to buffer or string text and use it in the following code, it's
> because there's a hidden assumption that GC cannot happen during the
> time the C pointer is being used.  If this assumption is not true with
> MPS, nothing in Emacs will work reliably.
>
> Is this indeed a problem?  Didn't Gerd just explain to Andrea that
> every object referenced from the stack or even from a register will be
> automatically "fixed" if GC happens and decides to move the objects?
> If so, why doesn't that solve the problem here?

The stack and registers are ambiguous roots.  The objects they point to
are "pinned" i.e. not allowed to move.  So as long as we keep a pointer
in a local variable, things should work out fine.

For references in global variables, we can decide to make them exact or
ambiguous.  If we make them exact, we have to be very careful.

> More generally, what happens with text of Emacs buffers and strings
> when GC runs?  I know what the old GC did, but what does the new GC
> do?

If we only have exact references to those, then they can be moved.

> A related question, no less important, is: when can MPS GC happen, and
> whether there's any reasonable way of being sure that it cannot
> possibly happen while certain code fragments run?

Would be nice to handle one catastrophe at the time :-)

> For example, the
> old GC could only be triggered by a call to funcall or eval (and a
> small number of similar APIs); as long as the C code didn't cause any
> of these calls, we could assume GC will not happen, and so any C
> pointers to Lisp objects were safe to use.  What is the equivalent of
> that with MPS?  Since MPS is a moving GC, this becomes much more
> important; with old GC we only had 2 object types that could move
> during GC: string data and buffer text.  Now every Lisp object is in
> danger of being moved by GC, AFAIU.
>
> Am I missing something?

I think MPS is a concurrent GC, it means it runs "all the time".  The
reason why his works are the memory barriers.  But maybe Gerd knows how
things actually work.

Helmut



  parent reply	other threads:[~2024-05-01 13:43 UTC|newest]

Thread overview: 234+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2024-04-27 20:20 MPS: face-cache Gerd Möllmann
2024-04-28  5:06 ` Gerd Möllmann
2024-04-28  5:58   ` Gerd Möllmann
2024-04-28  6:09   ` Eli Zaretskii
2024-04-28  6:28     ` Gerd Möllmann
2024-04-28  6:45       ` Eli Zaretskii
2024-04-28  6:50         ` Gerd Möllmann
2024-04-28  7:37       ` Eli Zaretskii
2024-04-28  7:41         ` Gerd Möllmann
2024-04-28  6:50   ` Helmut Eller
2024-04-28  6:53     ` Gerd Möllmann
2024-04-28  6:58       ` Helmut Eller
2024-04-28  6:59         ` Gerd Möllmann
2024-04-28  7:10           ` Gerd Möllmann
2024-04-28  7:22             ` Gerd Möllmann
2024-04-28  7:29               ` Eli Zaretskii
2024-04-28  7:38                 ` Gerd Möllmann
2024-04-28  7:56                   ` Eli Zaretskii
2024-04-28  8:05                     ` Gerd Möllmann
2024-04-28  8:13                       ` Eli Zaretskii
2024-04-28  8:18                         ` Gerd Möllmann
2024-04-28  8:23                     ` Po Lu
2024-04-28  8:45                       ` Eli Zaretskii
2024-04-28  8:22                   ` Po Lu
2024-04-28  8:29                     ` Gerd Möllmann
2024-04-28  8:35                       ` Gerd Möllmann
2024-04-28  8:41                       ` Po Lu
2024-04-28  8:43                         ` Gerd Möllmann
2024-04-28  8:55                         ` Gerd Möllmann
2024-04-28  7:55                 ` Gerd Möllmann
2024-04-28  7:58                   ` Eli Zaretskii
2024-04-28  8:04               ` Helmut Eller
2024-04-28  8:08                 ` Gerd Möllmann
2024-04-28  8:52               ` Helmut Eller
2024-04-28  8:59                 ` Gerd Möllmann
2024-04-28  9:04                   ` Helmut Eller
2024-04-28  9:14                     ` Gerd Möllmann
2024-04-28  9:26                       ` Helmut Eller
2024-04-28  9:34                         ` Gerd Möllmann
2024-04-28  9:40                           ` Helmut Eller
2024-04-28 10:11                             ` Gerd Möllmann
2024-04-28 10:17                         ` Eli Zaretskii
2024-04-28 10:20                           ` Gerd Möllmann
2024-04-28 10:43                       ` Eli Zaretskii
2024-04-28 12:23                         ` Gerd Möllmann
2024-04-28 12:26                           ` Gerd Möllmann
2024-04-28 12:59                             ` Helmut Eller
2024-04-28 13:55                               ` Eli Zaretskii
2024-04-28 14:06                               ` Gerd Möllmann
2024-04-28 14:30                                 ` Gerd Möllmann
2024-04-29  7:15                                 ` Helmut Eller
2024-04-29  7:52                                   ` Gerd Möllmann
2024-04-29  8:03                                     ` Helmut Eller
2024-04-29  8:21                                       ` Gerd Möllmann
2024-04-29  8:37                                       ` Eli Zaretskii
2024-04-29  8:41                                         ` Gerd Möllmann
2024-04-29  8:54                                         ` Helmut Eller
2024-04-29 11:05                                           ` Eli Zaretskii
2024-04-29 11:18                                             ` Gerd Möllmann
2024-04-29 11:41                                               ` Eli Zaretskii
2024-04-29 13:07                                             ` Helmut Eller
2024-04-29 13:22                                               ` Eli Zaretskii
2024-04-29 13:38                                                 ` Helmut Eller
2024-04-29 13:57                                                   ` Eli Zaretskii
2024-04-29 15:19                                                 ` Helmut Eller
2024-04-29 15:32                                                   ` Eli Zaretskii
2024-04-29 15:37                                                     ` Eli Zaretskii
2024-04-29  8:39                                   ` Eli Zaretskii
2024-04-29  8:42                                     ` Gerd Möllmann
2024-04-29 13:13                                   ` Po Lu
2024-04-29 18:47                                   ` Gerd Möllmann
2024-04-29 19:15                                     ` Helmut Eller
2024-04-29 19:36                                       ` Gerd Möllmann
2024-04-30  5:52                                         ` Helmut Eller
2024-04-30  6:04                                           ` Gerd Möllmann
2024-04-30  6:36                                             ` MPS: staticpro everything Helmut Eller
2024-04-30  6:54                                               ` Gerd Möllmann
2024-04-30 18:57                                                 ` Helmut Eller
2024-04-30 19:10                                                   ` Gerd Möllmann
2024-04-30 19:22                                                   ` Eli Zaretskii
2024-05-01  6:47                                                     ` Gerd Möllmann
2024-05-01  7:33                                                       ` Helmut Eller
2024-05-01  7:46                                                         ` Gerd Möllmann
2024-05-01 12:15                                                       ` Eli Zaretskii
2024-05-01  6:53                                                     ` Helmut Eller
2024-05-01 13:06                                                       ` Eli Zaretskii
2024-05-01 13:48                                                         ` Gerd Möllmann
2024-05-01 14:02                                                           ` Eli Zaretskii
2024-05-01 14:08                                                         ` Helmut Eller
2024-05-01 14:20                                                           ` Gerd Möllmann
2024-05-01 15:02                                                           ` Eli Zaretskii
2024-05-01 16:06                                                             ` Helmut Eller
2024-05-02  8:01                                                               ` Eli Zaretskii
2024-05-02  9:04                                                                 ` Gerd Möllmann
2024-05-02 11:09                                                                   ` Eli Zaretskii
2024-05-02 12:01                                                                     ` Gerd Möllmann
2024-05-02 12:10                                                                       ` Eli Zaretskii
2024-05-02 12:30                                                                         ` Gerd Möllmann
2024-05-02 13:25                                                                           ` Po Lu
2024-05-02 14:01                                                                             ` Gerd Möllmann
2024-05-02 15:02                                                                               ` Eli Zaretskii
2024-05-02 15:37                                                                                 ` Gerd Möllmann
2024-05-02 16:09                                                                                   ` Eli Zaretskii
2024-05-02 19:08                                                                                     ` Gerd Möllmann
2024-05-03  7:03                                                                                       ` Eli Zaretskii
2024-05-03  7:30                                                                                         ` Gerd Möllmann
2024-05-03 11:18                                                                                           ` Helmut Eller
2024-05-03 11:29                                                                                             ` Eli Zaretskii
2024-05-03 11:49                                                                                               ` Gerd Möllmann
2024-05-03 12:01                                                                                                 ` Eli Zaretskii
2024-05-03 12:21                                                                                                   ` Gerd Möllmann
2024-05-03 13:39                                                                                                     ` Eli Zaretskii
2024-05-03 11:47                                                                                             ` Gerd Möllmann
2024-05-02 15:12                                                                           ` Eli Zaretskii
2024-05-02 15:55                                                                             ` Gerd Möllmann
2024-05-02 16:45                                                                               ` Eli Zaretskii
2024-05-02 19:10                                                                                 ` Gerd Möllmann
2024-05-02 15:09                                                                 ` Helmut Eller
2024-05-02 15:46                                                                   ` Gerd Möllmann
2024-05-02 16:03                                                                     ` Helmut Eller
2024-05-02 16:48                                                                       ` Eli Zaretskii
2024-05-02 18:30                                                                       ` Gerd Möllmann
2024-05-02 18:46                                                                       ` Eli Zaretskii
2024-05-02 19:01                                                                         ` Eli Zaretskii
2024-05-02 19:19                                                                           ` Gerd Möllmann
2024-05-02 19:51                                                                           ` Gerd Möllmann
2024-05-03  5:27                                                                             ` Eli Zaretskii
2024-05-03  5:44                                                                               ` Gerd Möllmann
2024-05-02 19:18                                                                         ` Gerd Möllmann
2024-05-02 18:49                                                                       ` Eli Zaretskii
2024-05-03  5:32                                                                         ` Gerd Möllmann
2024-05-03  6:26                                                                         ` MPS: GUI test automation (was: MPS: staticpro everything) Helmut Eller
2024-05-03  7:17                                                                           ` Eli Zaretskii
2024-05-03  7:18                                                                           ` MPS: GUI test automation Gerd Möllmann
2024-05-02 16:24                                                                   ` MPS: staticpro everything Eli Zaretskii
2024-05-01  6:05                                                   ` Gerd Möllmann
2024-05-01  7:32                                                     ` Helmut Eller
2024-05-01  7:46                                                       ` Gerd Möllmann
2024-05-01  8:03                                                         ` Gerd Möllmann
2024-05-01  8:25                                                           ` Helmut Eller
2024-05-01  8:48                                                             ` Gerd Möllmann
2024-05-01  9:42                                                               ` Helmut Eller
2024-05-01 12:24                                                               ` Eli Zaretskii
2024-05-01 16:45                                                           ` Helmut Eller
2024-05-01 17:02                                                             ` Gerd Möllmann
2024-05-01 13:12                                                         ` Eli Zaretskii
2024-05-01 13:54                                                           ` Gerd Möllmann
2024-05-01 12:50                                                     ` MPS GC and its implications (was: staticpro everything) Eli Zaretskii
2024-05-01 13:39                                                       ` MPS GC and its implications Gerd Möllmann
2024-05-01 14:52                                                         ` Eli Zaretskii
2024-05-01 15:51                                                           ` Gerd Möllmann
2024-05-01 16:48                                                             ` Eli Zaretskii
2024-05-01 17:17                                                               ` Gerd Möllmann
2024-05-01 17:52                                                                 ` Eli Zaretskii
2024-05-01 13:43                                                       ` Helmut Eller [this message]
2024-05-01 14:05                                                         ` Gerd Möllmann
2024-05-01 14:58                                                           ` Eli Zaretskii
2024-05-01 15:54                                                             ` Gerd Möllmann
2024-05-01 16:49                                                               ` Eli Zaretskii
2024-05-01 17:19                                                                 ` Gerd Möllmann
2024-05-01 17:38                                                                   ` Helmut Eller
2024-05-01 17:56                                                                     ` Eli Zaretskii
2024-05-01 18:01                                                                       ` Helmut Eller
2024-05-01 18:07                                                                         ` Gerd Möllmann
2024-05-01 18:24                                                                           ` Eli Zaretskii
2024-05-01 18:41                                                                           ` Helmut Eller
2024-05-01 19:12                                                                             ` Gerd Möllmann
2024-05-02  6:03                                                                               ` Eli Zaretskii
2024-05-01 18:23                                                                         ` Eli Zaretskii
2024-05-01 17:53                                                                   ` Eli Zaretskii
2024-05-01 17:59                                                                     ` Gerd Möllmann
2024-05-01 18:20                                                                       ` Eli Zaretskii
2024-05-01 19:06                                                                         ` Gerd Möllmann
2024-05-02  8:30                                                                           ` Eli Zaretskii
2024-05-02  9:05                                                                             ` Gerd Möllmann
2024-05-02 21:25                                                         ` Andrea Corallo
2024-05-03  5:42                                                           ` Gerd Möllmann
2024-05-03 11:18                                                             ` Eli Zaretskii
2024-05-03 11:32                                                               ` Helmut Eller
2024-05-03 11:54                                                                 ` Eli Zaretskii
2024-05-03 11:59                                                                   ` Gerd Möllmann
2024-05-03 12:05                                                                     ` Eli Zaretskii
2024-05-03 12:27                                                                       ` Gerd Möllmann
2024-05-03 13:44                                                                         ` Andrea Corallo
2024-05-03 14:22                                                                           ` Gerd Möllmann
2024-05-03 12:28                                                                   ` Helmut Eller
2024-05-03 13:33                                                                     ` Eli Zaretskii
2024-05-03 13:57                                                                       ` Helmut Eller
2024-05-03 15:56                                                                         ` Eli Zaretskii
2024-05-03 19:18                                                                           ` Eli Zaretskii
2024-05-04  4:22                                                                             ` Helmut Eller
2024-05-04  7:43                                                                               ` Eli Zaretskii
2024-05-04  7:57                                                                                 ` Gerd Möllmann
2024-05-04  9:01                                                                                   ` Eli Zaretskii
2024-05-04  9:39                                                                                 ` Helmut Eller
2024-05-04  9:56                                                                                   ` Mattias Engdegård
2024-05-04 10:07                                                                                     ` Helmut Eller
2024-05-04 10:29                                                                                       ` Mattias Engdegård
2024-05-04 12:34                                                                                   ` Eli Zaretskii
2024-05-04 16:08                                                                                     ` Helmut Eller
2024-05-04 18:02                                                                                       ` Gerd Möllmann
2024-05-03 11:54                                                                 ` Gerd Möllmann
2024-05-03 13:40                                                             ` Andrea Corallo
2024-05-03 13:48                                                               ` Gerd Möllmann
2024-05-04  6:25                                                                 ` Andrea Corallo
2024-05-04  8:00                                                                   ` Eli Zaretskii
2024-04-30 11:35                                             ` MPS: face-cache Eli Zaretskii
2024-04-30 12:57                                               ` Gerd Möllmann
2024-04-30 13:17                                                 ` Eli Zaretskii
2024-04-30 13:43                                                   ` Gerd Möllmann
2024-04-30 11:09                                         ` Eli Zaretskii
2024-04-30 12:41                                           ` Gerd Möllmann
2024-05-02  9:49                                             ` Eli Zaretskii
2024-05-02 10:39                                               ` Gerd Möllmann
2024-05-02 15:10                                                 ` Helmut Eller
2024-05-02 18:28                                                   ` MPS: pdump Gerd Möllmann
2024-05-02 19:13                                                     ` Eli Zaretskii
2024-05-02 19:45                                                       ` Gerd Möllmann
2024-05-03  6:29                                                         ` Eli Zaretskii
2024-05-03  7:15                                                           ` Gerd Möllmann
2024-05-03 11:24                                                             ` Eli Zaretskii
2024-05-03 11:55                                                               ` Gerd Möllmann
2024-05-03 12:03                                                                 ` Eli Zaretskii
2024-05-03 12:23                                                                   ` Gerd Möllmann
2024-05-03  5:54                                                     ` Helmut Eller
2024-05-03  6:18                                                       ` Gerd Möllmann
2024-05-03  7:28                                                       ` Eli Zaretskii
2024-04-29 19:37                                     ` MPS: face-cache Helmut Eller
2024-04-29 19:39                                       ` Gerd Möllmann
2024-04-30 11:11                                       ` Eli Zaretskii
2024-04-30 12:42                                         ` Gerd Möllmann
2024-04-28 14:07                             ` Eli Zaretskii
2024-04-28 14:31                               ` Gerd Möllmann
2024-04-28  7:36         ` 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

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

  git send-email \
    --in-reply-to=87frv1hclv.fsf@gmail.com \
    --to=eller.helmut@gmail.com \
    --cc=eliz@gnu.org \
    --cc=emacs-devel@gnu.org \
    --cc=gerd.moellmann@gmail.com \
    /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 external index

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

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.