From: Ergus <spacibba@aol.com>
To: Karl Fogel <kfogel@red-bean.com>
Cc: Qiantan Hong <qhong@mit.edu>,
Emacs developers <emacs-devel@gnu.org>, Fermin <fmfs@posteo.net>,
Noam Postavsky <npostavs@gmail.com>,
Jean Louis <bugs@gnu.support>,
Stefan Monnier <monnier@iro.umontreal.ca>
Subject: Re: Question collaborative editing.
Date: Wed, 30 Sep 2020 15:19:31 +0200 [thread overview]
Message-ID: <20200930131931.scdkrx46vylpi4c3@Ergus> (raw)
In-Reply-To: <87r1qjzp91.fsf@red-bean.com>
On Wed, Sep 30, 2020 at 02:40:26AM -0500, Karl Fogel wrote:
>On 30 Sep 2020, Ergus wrote:
>>I would be concerned about the performance (but I am paranoid about
>>Emacs performance anyway so don't worry for that). AFAIR emacs buffers
>>are stored in a contiguous way (I may be wrong)
>
>Information about how Emacs buffers are represented under the hood can be found here:
>
>* https://git.savannah.gnu.org/cgit/emacs.git/tree/src/buffer.h#n213
>
>* https://www.gnu.org/software/emacs/manual/html_node/elisp/Buffer-Gap.html
>
This is interesting indeed.
I was looking at this to compare what's around:
https://ecc-comp.blogspot.com/2015/05/a-brief-glance-at-how-5-text-editors.html
>TL;DR: It's a contiguous array with a gap at the point where insertion or deletion happens. When you need to insert or delete somewhere else, Emacs first moves the gap to the new location. The gap is exposed to Elisp via the functions `gap-position' and `gap-size', though I must confess I've never used them from Elisp.
>
>Best regards,
>-Karl
next prev parent reply other threads:[~2020-09-30 13:19 UTC|newest]
Thread overview: 151+ messages / expand[flat|nested] mbox.gz Atom feed top
[not found] <20200921120518.35d56p747pr5mhta.ref@Ergus>
2020-09-21 12:05 ` Question collaborative editing Ergus
2020-09-21 13:35 ` Stefan Monnier
2020-09-21 16:24 ` Ergus
2020-09-21 20:25 ` Karl Fogel
2020-09-24 1:36 ` Ergus
2020-09-24 21:41 ` Fermin
2020-09-25 0:22 ` Ergus
2020-09-25 10:34 ` Fermin
2020-09-26 16:33 ` Ergus
2020-09-29 16:01 ` Qiantan Hong
2020-09-29 21:46 ` Ergus
2020-09-30 9:52 ` Jean Louis
2020-09-28 0:43 ` Ergus
2020-09-29 0:00 ` Fermin
2020-09-29 1:01 ` Noam Postavsky
2020-09-29 8:25 ` Jean Louis
2020-09-29 12:45 ` Ergus
2020-09-29 15:58 ` Qiantan Hong
2020-09-29 16:29 ` Stefan Monnier
2020-09-29 16:33 ` Qiantan Hong
2020-10-27 5:10 ` Qiantan Hong
2020-10-27 12:46 ` Jean Louis
2020-09-29 17:35 ` Karl Fogel
2020-09-29 21:58 ` Ergus
2020-09-29 23:40 ` Qiantan Hong
2020-09-30 0:13 ` Ergus
2020-09-30 0:47 ` Qiantan Hong
2020-09-30 7:40 ` Karl Fogel
2020-09-30 13:19 ` Ergus [this message]
2020-09-30 17:00 ` Karl Fogel
2020-10-02 18:48 ` Emacs + Etherpad compatibility? (was: Question collaborative editing.) Karl Fogel
2020-10-02 20:34 ` Emacs + Etherpad compatibility? Stefan Monnier
2020-10-03 10:01 ` Michael Albinus
2020-09-30 13:46 ` Question collaborative editing Eli Zaretskii
2020-09-30 13:43 ` Eli Zaretskii
2020-09-30 15:47 ` Qiantan Hong
2020-09-30 16:19 ` Eli Zaretskii
2020-09-30 17:00 ` Qiantan Hong
2020-09-30 17:04 ` Qiantan Hong
2020-09-30 17:20 ` Eli Zaretskii
2020-09-30 17:48 ` Qiantan Hong
2020-09-30 18:08 ` Eli Zaretskii
2020-09-30 23:11 ` Ergus
2020-10-01 13:40 ` Eli Zaretskii
2020-10-01 15:21 ` Qiantan Hong
2020-10-01 23:10 ` Karl Fogel
2020-10-01 15:55 ` Ergus
2020-09-30 17:08 ` Stefan Monnier
2020-10-01 14:11 ` Jean Louis
2020-10-01 16:01 ` Ergus
2020-10-01 16:44 ` Pankaj Jangid
2020-10-01 16:53 ` Ergus
2020-10-01 17:29 ` Yuri Khan
2020-10-02 3:00 ` Pankaj Jangid
2020-10-02 7:30 ` Michael Albinus
2020-10-02 7:35 ` Eli Zaretskii
2020-10-02 10:01 ` Pankaj Jangid
2020-10-02 11:33 ` Ergus
2020-10-02 12:13 ` Michael Albinus
2020-10-04 17:54 ` Question collaborative editing - Wikipedia reference Jean Louis
2020-10-04 18:45 ` Caio Henrique
2020-10-04 19:48 ` Jean Louis
2020-10-04 23:59 ` Qiantan Hong
2020-10-05 0:05 ` Qiantan Hong
2020-10-05 1:08 ` Karl Fogel
2020-10-05 4:40 ` Karl Fogel
2020-10-05 5:48 ` Jean Louis
2020-10-05 6:18 ` Qiantan Hong
[not found] ` <EC602765-9F1A-4269-9F2E-4F05C50AE1E7@mit.edu>
2020-10-05 8:07 ` crdt.el collaborative real time editing for Emacs Jean Louis
2020-10-05 8:22 ` Qiantan Hong
2020-10-05 14:03 ` Jean Louis
2020-10-05 17:05 ` Qiantan Hong
2020-10-05 18:17 ` Jean Louis
2020-10-05 14:11 ` Jean Louis
2020-10-05 9:39 ` Eli Zaretskii
2020-10-05 8:51 ` Jean Louis
2020-10-05 3:53 ` crdt.el - collaborative " Jean Louis
2020-10-05 4:02 ` Question collaborative editing - Wikipedia reference Jean Louis
2020-10-05 4:11 ` Qiantan Hong
2020-10-05 5:34 ` Jean Louis
2020-10-05 5:58 ` Eli Zaretskii
2020-10-05 6:15 ` Stefan Monnier
2020-10-05 6:51 ` Eli Zaretskii
2020-10-05 7:31 ` Ergus via Emacs development discussions.
2020-10-05 8:44 ` Jean Louis
2020-10-05 13:20 ` Stefan Monnier
2020-10-05 17:20 ` Karl Fogel
2020-10-06 1:03 ` Qiantan Hong
2020-10-06 1:41 ` T.V Raman
2020-10-06 8:52 ` Jean Louis
2020-10-06 17:32 ` Jean Louis
2020-10-20 16:15 ` Ergus
2020-10-20 17:11 ` Qiantan Hong
2020-10-20 18:51 ` Jean Louis
2020-10-26 20:36 ` Qiantan Hong
2020-10-27 21:54 ` Mathias Dahl
2020-10-27 22:45 ` Qiantan Hong
2020-10-29 16:21 ` Ergus
2020-10-28 16:29 ` Question collaborative editing - tools to connect Jean Louis
2020-10-28 16:40 ` Qiantan Hong
2020-10-28 17:13 ` Question collaborative editing - crdt.el, does it use SSL? Jean Louis
2020-10-28 21:51 ` Qiantan Hong
2020-10-28 22:36 ` Jean Louis
2020-10-28 23:08 ` Qiantan Hong
2020-10-29 5:43 ` Jean Louis
2020-11-02 9:47 ` Robert Pluim
2020-11-02 10:02 ` Jean Louis
2020-10-28 17:20 ` Question collaborative editing - torify emacs Jean Louis
2020-10-28 18:01 ` Qiantan Hong
2020-10-28 18:56 ` Jean Louis
2020-10-29 4:57 ` Question collaborative editing - tools to connect Richard Stallman
2020-10-31 4:16 ` Qiantan Hong
2020-10-31 5:33 ` Jean Louis
2020-10-20 18:21 ` Question collaborative editing - Wikipedia reference Jean Louis
2020-10-06 18:20 ` Karl Fogel
2020-10-07 0:00 ` Qiantan Hong
2020-10-09 1:50 ` Yuan Fu
2020-10-09 1:58 ` Yuan Fu
2020-10-09 2:12 ` Qiantan Hong
2020-10-09 2:42 ` Yuan Fu
2020-10-09 7:04 ` Qiantan Hong
2020-10-09 8:36 ` joakim
2020-10-09 13:33 ` Joe Corneli
2020-10-09 15:33 ` Qiantan Hong
2020-10-11 17:49 ` Qiantan Hong
2020-10-11 18:21 ` Eli Zaretskii
2020-10-11 18:26 ` Qiantan Hong
2020-10-11 18:56 ` Eli Zaretskii
2020-10-11 19:57 ` Qiantan Hong
2020-10-12 2:26 ` Eli Zaretskii
2020-10-12 3:22 ` Qiantan Hong
2020-10-12 14:40 ` Eli Zaretskii
2020-10-12 16:53 ` Qiantan Hong
2020-10-13 13:31 ` Yuan Fu
2020-10-11 18:40 ` Joe Corneli via Emacs development discussions.
2020-10-09 17:46 ` Jean Louis
2020-10-09 17:50 ` Qiantan Hong
2020-10-09 20:31 ` Karl Fogel
2020-10-10 17:09 ` Qiantan Hong
2020-10-09 7:09 ` Qiantan Hong
2020-10-05 5:50 ` Eli Zaretskii
2020-10-05 3:10 ` Richard Stallman
2020-10-20 16:37 ` Aurélien Aptel
2020-10-20 18:41 ` Jean Louis
2020-10-26 19:47 ` Eli Zaretskii
2020-10-26 20:26 ` too many Jean Louis
2020-10-28 4:45 ` Question collaborative editing - Wikipedia reference Richard Stallman
2020-10-28 15:08 ` Eli Zaretskii
2020-10-28 16:20 ` Jean Louis
2020-10-28 16:33 ` Eli Zaretskii
2020-10-28 16:59 ` Jean Louis
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=20200930131931.scdkrx46vylpi4c3@Ergus \
--to=spacibba@aol.com \
--cc=bugs@gnu.support \
--cc=emacs-devel@gnu.org \
--cc=fmfs@posteo.net \
--cc=kfogel@red-bean.com \
--cc=monnier@iro.umontreal.ca \
--cc=npostavs@gmail.com \
--cc=qhong@mit.edu \
/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.