unofficial mirror of emacs-devel@gnu.org 
 help / color / mirror / code / Atom feed
From: Helmut Eller <eller.helmut@gmail.com>
To: "Gerd Möllmann" <gerd.moellmann@gmail.com>
Cc: Eli Zaretskii <eliz@gnu.org>,  emacs-devel@gnu.org
Subject: Re: Collecting markers with MPS
Date: Thu, 25 Apr 2024 11:44:43 +0200	[thread overview]
Message-ID: <87a5lhhj3o.fsf@gmail.com> (raw)
In-Reply-To: <m2y193i0wf.fsf@pro2.fritz.box> ("Gerd Möllmann"'s message of "Wed, 24 Apr 2024 11:08:00 +0200")

On Wed, Apr 24 2024, Gerd Möllmann wrote:

> Yes, it makes sense. One could of course use a timer. Or maybe, don't
> know, run something when we handle an MPS message. That just occurred to
> me a second ago, so it might be nonsense.

A variation could be this: we split the marker type up into three parts.
One part is only handled by the C code (malloc-ed, non-moving,
reference-counted), the second part is handed out to Lisp, and the third
part is specifically for the undo-list.

The Lisp part is basically a pointer to the C part, but it has a
finalizer that decrements the reference count in the C part.

The third part is also a pointer to the C part, but the C part also
keeps a (traced) reference to this part.  When the reference count drops
to zero, we can set the pointer from the undo-list to the C part so 0.
Ie. this is basically weak reference, implemented manually.

An advantage of this scheme is that the GC only needs to support
finalization.  Also, the involved changes would likely work for both the
old GC and the new GC.  Which might be an issue if the new GC remains a
purely optional feature.

Helmut



  parent reply	other threads:[~2024-04-25  9:44 UTC|newest]

Thread overview: 149+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2024-04-20  9:34 STatus of MPS branch Gerd Möllmann
2024-04-20 14:56 ` Michael Albinus
2024-04-20 15:08   ` Gerd Möllmann
2024-04-20 15:32     ` Michael Albinus
2024-04-20 17:37       ` Gerd Möllmann
2024-04-21  7:39         ` Michael Albinus
2024-04-21  7:56           ` Gerd Möllmann
2024-04-21  8:00             ` Gerd Möllmann
2024-04-21  8:04               ` Michael Albinus
2024-04-21  8:08                 ` Gerd Möllmann
2024-04-21  8:18                   ` Michael Albinus
2024-04-21  8:28                     ` Gerd Möllmann
2024-04-21  8:17           ` Gerd Möllmann
2024-04-21  9:43             ` Michael Albinus
2024-04-21 10:07               ` Gerd Möllmann
2024-04-21 10:58                 ` Tramp tests in MPS branch (was: STatus of MPS branch) Michael Albinus
2024-04-21 12:44                   ` Tramp tests in MPS branch Gerd Möllmann
2024-04-21  9:29           ` STatus of " Eli Zaretskii
2024-04-21  4:38 ` Gerd Möllmann
2024-04-21  5:31   ` Eli Zaretskii
2024-04-21  5:39     ` Gerd Möllmann
2024-04-21  9:04       ` Eli Zaretskii
2024-04-21  9:17         ` Gerd Möllmann
2024-04-21  6:15 ` Gerd Möllmann
2024-04-21  9:09   ` Eglot tests on MPS branch (was: STatus of MPS branch) Eli Zaretskii
2024-04-21  9:53     ` João Távora
2024-04-21 10:13       ` Eglot tests on MPS branch Gerd Möllmann
2024-04-21 11:01         ` João Távora
2024-04-21 10:55       ` Eglot tests on MPS branch (was: STatus of MPS branch) Eli Zaretskii
2024-04-21  7:49 ` STatus of MPS branch Gerd Möllmann
2024-04-21  8:45   ` Gerd Möllmann
2024-04-21  9:08     ` Andrea Corallo
2024-04-21  9:33     ` Native compilation on " Eli Zaretskii
2024-04-21 10:17       ` Gerd Möllmann
2024-04-21 13:07         ` Andrea Corallo
2024-04-22  7:15           ` Gerd Möllmann
2024-04-22 22:02             ` Andrea Corallo
2024-04-23  3:11               ` Gerd Möllmann
2024-04-23 16:09               ` Gerd Möllmann
2024-04-23 19:43                 ` Andrea Corallo
2024-04-24 12:49                   ` Gerd Möllmann
2024-04-24 18:14                     ` Andrea Corallo
2024-04-24 18:28                       ` Gerd Möllmann
2024-04-24 20:54                         ` Andrea Corallo
2024-04-25  4:33                           ` Gerd Möllmann
2024-04-25  5:50                             ` Andrea Corallo
2024-04-25  7:18                               ` Gerd Möllmann
2024-04-25  8:06                                 ` Andrea Corallo
2024-04-25  8:15                                   ` Gerd Möllmann
2024-04-25  8:57                                     ` Gerd Möllmann
2024-04-25  9:42                                     ` Andrea Corallo
2024-04-25 11:33                                       ` Gerd Möllmann
2024-04-25  5:24                           ` Eli Zaretskii
2024-04-25  5:48                             ` Andrea Corallo
2024-04-25 15:20                               ` Eli Zaretskii
2024-04-26 10:15                                 ` Gerd Möllmann
2024-04-21  8:58   ` STatus of " Andrea Corallo
2024-04-21  9:19     ` Gerd Möllmann
2024-04-21  9:30   ` Native compilation on MPS branch (was: STatus of MPS branch) Eli Zaretskii
2024-04-21 14:39 ` STatus of MPS branch Helmut Eller
2024-04-21 15:37   ` Gerd Möllmann
2024-04-21 15:52     ` Eli Zaretskii
2024-04-21 20:24     ` Helmut Eller
2024-04-22  4:58       ` Gerd Möllmann
2024-04-22  5:28       ` Gerd Möllmann
2024-04-22  6:15         ` MPS signals and Emacs (was: STatus of MPS branch) Eli Zaretskii
2024-04-22  6:44           ` MPS signals and Emacs Paul Eggert
2024-04-22  7:19             ` Gerd Möllmann
2024-04-22  7:40               ` Paul Eggert
2024-04-22  7:49                 ` Gerd Möllmann
2024-04-22  8:09                   ` Eli Zaretskii
2024-04-22  8:27                     ` Gerd Möllmann
2024-04-22  8:55                       ` Eli Zaretskii
2024-04-22  9:02                         ` Mattias Engdegård
2024-04-22  9:02                         ` Gerd Möllmann
2024-04-22  9:18                           ` Eli Zaretskii
2024-04-22  9:29                             ` Gerd Möllmann
2024-04-22  9:41                               ` Eli Zaretskii
2024-04-22 10:22                                 ` Gerd Möllmann
2024-04-22 10:46                                   ` Eli Zaretskii
2024-04-22 11:00                                     ` Gerd Möllmann
2024-04-22 12:01                                       ` Eli Zaretskii
2024-04-22 12:16                                         ` Gerd Möllmann
2024-04-22 10:54                                   ` Eli Zaretskii
2024-04-22 11:05                                     ` Gerd Möllmann
2024-04-22 19:41                   ` Paul Eggert
2024-04-22 20:55                     ` Gerd Möllmann
2024-04-22 22:12                       ` Paul Eggert
2024-04-23  3:15                         ` Gerd Möllmann
     [not found]                       ` <87le54g1h2.fsf@dick>
2024-04-23  5:51                         ` Gerd Möllmann
2024-04-23  6:35                           ` Helmut Eller
2024-04-23  6:45                             ` Gerd Möllmann
2024-04-23  6:53                               ` Helmut Eller
2024-04-23 14:29                                 ` Gerd Möllmann
     [not found]                                   ` <87sezbsmsd.fsf@dick>
2024-04-24  5:03                                     ` Gerd Möllmann
2024-04-22  7:46               ` Eli Zaretskii
2024-04-22  7:55                 ` Gerd Möllmann
2024-04-22 14:10             ` Helmut Eller
2024-04-22 14:42               ` Eli Zaretskii
2024-04-22 22:06                 ` Paul Eggert
2024-04-23  7:04                   ` Eli Zaretskii
2024-04-22  5:36       ` STatus of MPS branch Gerd Möllmann
2024-04-22  5:50         ` Gerd Möllmann
2024-04-22 15:09           ` Helmut Eller
2024-04-22 17:02             ` Gerd Möllmann
2024-04-24  7:26 ` Collecting markers with MPS (was: STatus of MPS branch) Helmut Eller
2024-04-24  7:44   ` Eli Zaretskii
2024-04-24  8:56     ` Collecting markers with MPS Helmut Eller
2024-04-24  9:17       ` Gerd Möllmann
2024-04-24 10:22       ` Eli Zaretskii
2024-04-24 10:27         ` Gerd Möllmann
2024-04-24 10:58           ` Gerd Möllmann
2024-04-24 13:32             ` Eli Zaretskii
2024-04-24 13:51               ` Gerd Möllmann
2024-04-24 15:03         ` Helmut Eller
2024-04-24 15:54           ` Eli Zaretskii
2024-04-24 16:21             ` Helmut Eller
2024-04-24 16:26               ` Eli Zaretskii
2024-04-24 16:50                 ` Gerd Möllmann
2024-04-24 19:18                 ` Helmut Eller
2024-04-24 19:55                   ` Gerd Möllmann
2024-04-25  7:38                   ` Mattias Engdegård
2024-04-24  9:08     ` Gerd Möllmann
2024-04-24 19:03       ` Helmut Eller
2024-04-24 20:02         ` Gerd Möllmann
2024-04-24 20:13           ` Helmut Eller
2024-04-24 20:42             ` Gerd Möllmann
2024-04-25  9:44       ` Helmut Eller [this message]
2024-04-25 11:44         ` Gerd Möllmann
2024-04-25 16:04 ` basic questions on MPS Andrea Corallo
2024-04-25 17:51   ` Helmut Eller
2024-04-25 18:48     ` Eli Zaretskii
2024-04-25 18:53     ` Gerd Möllmann
2024-04-25 19:26     ` Vibhav Pant
2024-04-26  6:36       ` Helmut Eller
2024-04-26  7:25         ` Gerd Möllmann
2024-04-26 15:07         ` vibhavp
2024-04-26  6:42       ` Gerd Möllmann
2024-04-27  0:20     ` Richard Stallman
2024-04-27  8:41       ` Helmut Eller
2024-04-28 22:44         ` Richard Stallman
2024-04-29  4:27           ` Helmut Eller
2024-04-29 22:40             ` Richard Stallman
2024-04-25 18:41   ` Eli Zaretskii
2024-04-25 18:53     ` Andrea Corallo
2024-04-25 18:56       ` Gerd Möllmann
2024-04-25 19:29         ` Andrea Corallo
2024-04-25 19:03       ` Eli Zaretskii
2024-04-25 19:09         ` Andrea Corallo

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=87a5lhhj3o.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 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).