all messages for Emacs-related lists mirrored at yhetil.org
 help / color / mirror / code / Atom feed
From: Dmitry Gutov <dmitry@gutov.dev>
To: Pip Cet <pipcet@protonmail.com>, Eli Zaretskii <eliz@gnu.org>
Cc: gerd.moellmann@gmail.com, emacs-devel@gnu.org, ofv@wanadoo.es
Subject: Re: Gap buffer problem?
Date: Thu, 12 Dec 2024 00:07:16 +0200	[thread overview]
Message-ID: <fbf301aa-9b88-4f61-8e3c-1857d1bd488e@gutov.dev> (raw)
In-Reply-To: <87ldwmj8sw.fsf@protonmail.com>

On 11/12/2024 21:54, Pip Cet via Emacs development discussions. wrote:

> It is very different indeed:
> 
> Copying within a process involves changing the (virtual) addresses that
> the copied data is at (unless you use an architecture-specific
> implementation of TLS). The beauty of fork() is that the virtual
> addresses stay the same, so we don't need to adjust any pointers, which
> we cannot do because there are ambiguous references to Lisp data.
> 
> IOW, no, you can't lazily create two copies of Lisp data in the same
> process. You have to do so eagerly, adjusting any and all pointers (and
> only those) in the Lisp data before the new data is read for the first
> time (because what you read might be a pointer, and then it needs to be
> adjusted). With fork(), you only have to make the copy when the data is
> being written to, by either process.
> 
> (Of course you can just access all memory through some sort of API that
> translates addresses for you, but that would effectively mean we'd be
> running Emacs on a virtual machine and simulate fork() on it).

Could one really avoid global interpreter lock using fork()? It doesn't 
sound right: even if you get cheap snapshotting using the underlying 
OS's mechanisms, could we guarantee that the snapshot is "consistent" 
from the Lisp VM's point of view. Or if Lisp were not in the picture, 
that the data structures are consistent anyway, unless the second 
process adheres to the first one's locks anyway.

> But, to be perfectly honest, I'm not sure redisplay is slowing me down
> the way traditional GC is.

IMO redisplay is not the problem most of time indeed. Sometimes it is, 
but I'm not sure parallelizing the rendering is the best answer in those 
scenarios either.



  parent reply	other threads:[~2024-12-11 22:07 UTC|newest]

Thread overview: 148+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
     [not found] <mailman.39.1723910423.12184.emacs-devel@gnu.org>
2024-08-17 22:49 ` Emacs-devel Digest, Vol 246, Issue 17 ali_gnu2
2024-08-18  0:10   ` Po Lu
2024-08-18  0:19     ` Po Lu
2024-08-18  1:15     ` Solaris dldump (was: Pure space) ali_gnu2
2024-08-18  1:25       ` Solaris dldump Po Lu
2024-08-18 22:27         ` Stefan Kangas
2024-08-18 23:56           ` Po Lu
2024-08-19 11:18             ` Eli Zaretskii
2024-08-19 12:09               ` Po Lu
2024-08-19 12:50                 ` Eli Zaretskii
2024-08-19 11:44             ` Pip Cet
2024-08-19 11:57               ` Po Lu
2024-08-19 12:10                 ` Pip Cet
2024-08-19 12:55                   ` Eli Zaretskii
2024-08-19 13:46                     ` Pip Cet
2024-08-19 14:39                       ` Eli Zaretskii
2024-08-19 15:26                         ` Corwin Brust
2024-08-19 15:31                           ` Corwin Brust
2024-08-19 20:51                       ` Stefan Kangas
2024-08-19 20:35             ` Stefan Kangas
2024-12-08 12:17     ` pdumper on Solaris 10 Pip Cet via Emacs development discussions.
2024-12-08 13:05       ` Eli Zaretskii
2024-12-08 13:52         ` Pip Cet via Emacs development discussions.
2024-12-08 14:52           ` Eli Zaretskii
2024-12-08 16:17             ` Pip Cet via Emacs development discussions.
2024-12-08 16:49               ` Eli Zaretskii
2024-12-08 17:37                 ` Pip Cet via Emacs development discussions.
2024-12-08 18:41                   ` Eli Zaretskii
2024-12-08 19:15                     ` Gerd Möllmann
2024-12-08 20:38                       ` Eli Zaretskii
2024-12-09  3:09                         ` Gerd Möllmann
2024-12-09  3:32                           ` Eli Zaretskii
2024-12-09  3:43                             ` Gerd Möllmann
2024-12-09  4:53                               ` Stefan Kangas
2024-12-09  5:26                                 ` Gerd Möllmann
2024-12-09 13:58                                 ` Eli Zaretskii
2024-12-10  0:02                                   ` Po Lu
2024-12-09  9:56                           ` Pip Cet via Emacs development discussions.
2024-12-10  0:04                             ` Po Lu
2024-12-10  3:34                               ` Eli Zaretskii
2024-12-11  1:13                                 ` Po Lu
2024-12-11 11:29                                   ` Pip Cet via Emacs development discussions.
2024-12-09  4:59                     ` Stefan Kangas
2024-12-09 14:39                       ` Eli Zaretskii
2024-12-09 21:06                         ` Merging MPS a.k.a. scratch/igc, yet again Stefan Kangas
2024-12-09 21:49                           ` Óscar Fuentes
2024-12-10  4:17                             ` Xiyue Deng
2024-12-10  4:26                               ` Sean Whitton
2024-12-10  4:42                               ` chad
2024-12-10 13:10                               ` Óscar Fuentes
2024-12-10 15:10                                 ` Pip Cet via Emacs development discussions.
2024-12-10 15:37                                   ` Óscar Fuentes
2024-12-10 15:47                                     ` Pip Cet via Emacs development discussions.
2024-12-10 17:16                                     ` Eli Zaretskii
2024-12-12  4:37                                   ` Xiyue Deng
2024-12-19 16:02                                   ` Gregor Zattler
2024-12-19 17:32                                     ` Pip Cet via Emacs development discussions.
2024-12-19 18:12                                       ` Gerd Möllmann
2024-12-19 18:27                                         ` Eli Zaretskii
2024-12-19 18:39                                           ` Gerd Möllmann
2024-12-19 19:15                                         ` Pip Cet via Emacs development discussions.
2024-12-19 19:57                                           ` Gerd Möllmann
2024-12-20  6:39                                             ` Eli Zaretskii
2024-12-20  9:27                                       ` Gregor Zattler
2024-12-10 13:20                               ` Eli Zaretskii
2024-12-10 14:46                               ` Pip Cet via Emacs development discussions.
2024-12-10 13:09                             ` Eli Zaretskii
2024-12-10 13:20                               ` Óscar Fuentes
2024-12-10 14:41                                 ` Eli Zaretskii
2024-12-09 23:13                           ` chad
2024-12-10 12:41                           ` Eli Zaretskii
2024-12-10  0:09                         ` pdumper on Solaris 10 Stefan Kangas
2024-12-10 12:59                           ` Eli Zaretskii
2024-12-10 13:39                             ` Óscar Fuentes
2024-12-10 14:39                               ` Eli Zaretskii
2024-12-10 15:21                                 ` Óscar Fuentes
2024-12-10 16:39                                   ` Eli Zaretskii
2024-12-10 15:38                               ` Pip Cet via Emacs development discussions.
2024-12-10 16:04                                 ` Óscar Fuentes
2024-12-10 17:23                                   ` Eli Zaretskii
2024-12-11  5:27                                 ` Gap buffer problem? Gerd Möllmann
2024-12-11  8:50                                   ` Pip Cet via Emacs development discussions.
2024-12-11  9:35                                     ` Gerd Möllmann
2024-12-11 11:50                                       ` Pip Cet via Emacs development discussions.
2024-12-11 13:22                                         ` Gerd Möllmann
2024-12-11 14:53                                           ` Pip Cet via Emacs development discussions.
2024-12-11 15:33                                             ` Gerd Möllmann
2024-12-11 16:58                                               ` Eli Zaretskii
2024-12-11 17:13                                                 ` Gerd Möllmann
2024-12-11 17:45                                                   ` Robert Pluim
2024-12-11 18:11                                                     ` Gerd Möllmann
2024-12-11 19:08                                                     ` Eli Zaretskii
2024-12-11 17:41                                                 ` Pip Cet via Emacs development discussions.
2024-12-11 19:04                                                   ` Eli Zaretskii
2024-12-11 19:54                                                     ` Pip Cet via Emacs development discussions.
2024-12-11 20:26                                                       ` Eli Zaretskii
2024-12-11 22:07                                                       ` Dmitry Gutov [this message]
2024-12-11 19:09                                                   ` Gerd Möllmann
2024-12-12  8:55                                                     ` Robert Pluim
2024-12-12 10:14                                                       ` Gerd Möllmann
2024-12-11 12:27                                       ` Pip Cet via Emacs development discussions.
2024-12-11 13:27                                         ` Gerd Möllmann
2024-12-11 15:06                                           ` Marcus Harnisch
2024-12-11 22:11                                             ` Dmitry Gutov
2024-12-12  3:49                                               ` Gerd Möllmann
2024-12-12 19:07                                                 ` Dmitry Gutov
2024-12-12 19:30                                                   ` Eli Zaretskii
2024-12-12 19:40                                                   ` Gerd Möllmann
2024-12-12  6:01                                               ` Eli Zaretskii
2024-12-11 14:22                                   ` Eli Zaretskii
2024-12-11 15:51                                     ` Gerd Möllmann
2024-12-11 17:06                                       ` Eli Zaretskii
2024-12-11 17:15                                         ` Gerd Möllmann
2024-12-10 18:13                               ` pdumper on Solaris 10 Gerd Möllmann
2024-12-10 15:23                             ` Pip Cet via Emacs development discussions.
2024-12-10 17:08                               ` Eli Zaretskii
2024-12-10 18:03                                 ` Gerd Möllmann
2024-12-10 19:34                                   ` Pip Cet via Emacs development discussions.
2024-12-10 19:59                                     ` Gerd Möllmann
2024-12-10 20:17                                       ` Pip Cet via Emacs development discussions.
2024-12-10 20:34                                         ` Gerd Möllmann
2024-12-11 14:13                                   ` Pip Cet via Emacs development discussions.
2024-12-11 17:43                                     ` Eli Zaretskii
2024-12-14 14:30                                     ` Eli Zaretskii
2024-12-15 10:55                                       ` Pip Cet via Emacs development discussions.
2024-12-15 11:13                                         ` Eli Zaretskii
2024-12-15 12:09                                           ` Pip Cet via Emacs development discussions.
2024-12-15 12:52                                             ` Eli Zaretskii
2024-12-15 19:54                                             ` John ff
2024-12-17 19:10                                           ` Paul Eggert
2024-12-17 19:43                                             ` Pip Cet via Emacs development discussions.
2024-12-17 20:00                                               ` Paul Eggert
2024-12-17 20:19                                             ` Eli Zaretskii
2024-12-17 21:14                                               ` Paul Eggert
2024-12-09 16:21                       ` Pip Cet via Emacs development discussions.
2024-12-17 13:12                     ` Pip Cet via Emacs development discussions.
2024-12-17 14:16                       ` Eli Zaretskii
2024-12-18  0:55                       ` Po Lu
2024-12-18  9:24                         ` Pip Cet via Emacs development discussions.
2024-12-08 18:47                 ` Pip Cet via Emacs development discussions.
2024-12-09  1:13                 ` Po Lu
2024-12-09  1:08           ` Po Lu
2024-12-09  0:58       ` Po Lu
2024-12-09  3:28         ` Eli Zaretskii
2024-12-09  1:01       ` Po Lu
2024-12-09 13:11         ` Pip Cet via Emacs development discussions.
2024-12-12 23:40 Gap buffer problem? arthur miller
2024-12-13  3:19 ` Gerd Möllmann

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=fbf301aa-9b88-4f61-8e3c-1857d1bd488e@gutov.dev \
    --to=dmitry@gutov.dev \
    --cc=eliz@gnu.org \
    --cc=emacs-devel@gnu.org \
    --cc=gerd.moellmann@gmail.com \
    --cc=ofv@wanadoo.es \
    --cc=pipcet@protonmail.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.