all messages for Emacs-related lists mirrored at yhetil.org
 help / color / mirror / code / Atom feed
From: "Gerd Möllmann" <gerd.moellmann@gmail.com>
To: arthur miller <arthur.miller@live.com>
Cc: "emacs-devel@gnu.org" <emacs-devel@gnu.org>
Subject: Re: Gap buffer problem?
Date: Fri, 13 Dec 2024 04:19:09 +0100	[thread overview]
Message-ID: <m24j38gthu.fsf@gmail.com> (raw)
In-Reply-To: <DU2PR02MB101095CEE538BB4CBB3712EC9963F2@DU2PR02MB10109.eurprd02.prod.outlook.com> (arthur miller's message of "Thu, 12 Dec 2024 23:40:36 +0000")

arthur miller <arthur.miller@live.com> writes:

> There is a paper by R. Strandh & others from they work on Climacs. 
>
> They have, by now a 20 old year Flexichain implements a circular gap
> buffer with the explicit goal to workaround that case. At the same time
> it also turns gap buffer into a flexible array usable for other use-cases 
> like qeues and stacks.
>
> However, they have also gone away from the gap buffer, to something they
> call "Cluffer", and which is a strategy where they use a double
> linked list of lines. The "open" line is a gap buffer. As they say
> in the introduction, the similiar strategy was used in Multics Emacs.
> The idea is to allow for incremental editing, a lá
> tree sitter I guess, and it is also suitable for multiple cursors. They
> also say that for modern hardware the additional memory cost of double
> linked lists is not prohibitive.
>
> For those interested relevant papers and sources are here:
>
> https://flexichain.common-lisp.dev/download/StrandhVilleneuveMoore.pdf
> https://www.european-lisp-workshop.org/archives/2004/slides/Strandh-slides.pdf
> https://github.com/robert-strandh/Flexichain
>
> http://metamodular.com/cluffer.pdf
> https://hal.science/hal-01887230v1/file/5-incremental-parsing.pdf
> https://research.gold.ac.uk/id/eprint/2351/1/climacssyntax.pdf
> https://github.com/robert-strandh/Cluffer
>
> https://github.com/scymtym/text.editing <-- a text editor sans the
> application based on the Cluffer
>
> https://github.com/robert-strandh/Second-Climacs <-- text editor
> application based on the above text.editing and Cluffer
>
> There is also Lem which uses a similar strategy for its text representation
> (if I am not misstaken, long time ago I looked at their code):
>
> https://github.com/lem-project/lem
>
>  *  GitHub  
>     - lem-project/lem: Common Lisp editor/IDE with high expansibility  
>    Common  
>     Lisp editor/IDE with high expansibility. Contribute to lem-project/lem development by creating an account on GitHub.  
>    github.com  
> *
>
> Don't know if it is of use for you or not, but perhaps there is some
> inspiration there. Haven't seen those papers mentioned anywhere
> in this discussion, so thought they might be of interest to some of you.

Thanks for the links! I find them interesting. 



  reply	other threads:[~2024-12-13  3:19 UTC|newest]

Thread overview: 35+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2024-12-12 23:40 Gap buffer problem? arthur miller
2024-12-13  3:19 ` Gerd Möllmann [this message]
     [not found] <mailman.39.1723910423.12184.emacs-devel@gnu.org>
2024-12-08 16:49 ` pdumper on Solaris 10 Eli Zaretskii
2024-12-08 17:37   ` Pip Cet via Emacs development discussions.
2024-12-08 18:41     ` Eli Zaretskii
2024-12-09  4:59       ` Stefan Kangas
2024-12-09 14:39         ` Eli Zaretskii
2024-12-10  0:09           ` Stefan Kangas
2024-12-10 12:59             ` Eli Zaretskii
2024-12-10 13:39               ` Óscar Fuentes
2024-12-10 15:38                 ` Pip Cet via Emacs development discussions.
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
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

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=m24j38gthu.fsf@gmail.com \
    --to=gerd.moellmann@gmail.com \
    --cc=arthur.miller@live.com \
    --cc=emacs-devel@gnu.org \
    /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.