From mboxrd@z Thu Jan 1 00:00:00 1970 Path: news.gmane.io!.POSTED.blaine.gmane.org!not-for-mail From: Eli Zaretskii Newsgroups: gmane.emacs.devel Subject: Re: Question collaborative editing. Date: Wed, 30 Sep 2020 20:20:36 +0300 Message-ID: <83blhni3kr.fsf@gnu.org> References: <20200924013655.asv2tem25cbwv5et@Ergus> <2ACED303-9A2C-4363-BE56-2E9AF0B8DC85@posteo.net> <20200925002239.fgg3vw2nylltcoyp@Ergus> <219042AC-556D-48CC-8920-82D9BF2BD3AA@aol.com> <3A81FB67-A558-4281-8285-CDD9B01033E3@posteo.net> <1C949FC9-6023-467E-99EC-75D57B08AFB0@gnu.support> <20200929124513.fd745r2txowwbiir@Ergus> <87blho7af9.fsf@red-bean.com> <20200929215849.zg4wzytbrwx2b7ih@Ergus> <84B86B7C-81F0-42DF-894C-BF577E4B3D6E@mit.edu> <83a6x7js6y.fsf@gnu.org> <83eemji6e8.fsf@gnu.org> Mime-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit Injection-Info: ciao.gmane.io; posting-host="blaine.gmane.org:116.202.254.214"; logging-data="10146"; mail-complaints-to="usenet@ciao.gmane.io" Cc: spacibba@aol.com, fmfs@posteo.net, bugs@gnu.support, npostavs@gmail.com, emacs-devel@gnu.org, kfogel@red-bean.com, monnier@iro.umontreal.ca To: Qiantan Hong Original-X-From: emacs-devel-bounces+ged-emacs-devel=m.gmane-mx.org@gnu.org Wed Sep 30 19:24:24 2020 Return-path: Envelope-to: ged-emacs-devel@m.gmane-mx.org Original-Received: from lists.gnu.org ([209.51.188.17]) by ciao.gmane.io with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.92) (envelope-from ) id 1kNfq1-0002Sd-LK for ged-emacs-devel@m.gmane-mx.org; Wed, 30 Sep 2020 19:24:21 +0200 Original-Received: from localhost ([::1]:60268 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1kNfq0-00084U-MJ for ged-emacs-devel@m.gmane-mx.org; Wed, 30 Sep 2020 13:24:20 -0400 Original-Received: from eggs.gnu.org ([2001:470:142:3::10]:48612) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1kNfmZ-0004Hh-KG for emacs-devel@gnu.org; Wed, 30 Sep 2020 13:20:47 -0400 Original-Received: from fencepost.gnu.org ([2001:470:142:3::e]:38822) by eggs.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1kNfmX-0001iS-O2; Wed, 30 Sep 2020 13:20:45 -0400 Original-Received: from [176.228.60.248] (port=3024 helo=home-c4e4a596f7) by fencepost.gnu.org with esmtpsa (TLS1.2:RSA_AES_256_CBC_SHA1:256) (Exim 4.82) (envelope-from ) id 1kNfmW-0004L8-Uz; Wed, 30 Sep 2020 13:20:45 -0400 In-Reply-To: (message from Qiantan Hong on Wed, 30 Sep 2020 17:04:09 +0000) X-BeenThere: emacs-devel@gnu.org X-Mailman-Version: 2.1.23 Precedence: list List-Id: "Emacs development discussions." List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: emacs-devel-bounces+ged-emacs-devel=m.gmane-mx.org@gnu.org Original-Sender: "Emacs-devel" Xref: news.gmane.io gmane.emacs.devel:256779 Archived-At: > From: Qiantan Hong > CC: Ergus , Fermin , > Jean Louis > , Noam Postavsky , > Emacs developers > , > Karl Fogel , > Stefan Monnier > > Date: Wed, 30 Sep 2020 17:04:09 +0000 > > >> You don't need buffer-modification hooks, you can use other existing > >> mechanisms. Emacs knows that buffer text was changed even if the > >> modification hooks were inhibited. > > That’s a workaround, but I’m not sure if it can capture user intent > > (i.e. it gives operation-wise information rather than just a diff between > > versions of buffer). If it can’t then we will need to implement both > > update based on modification-hooks and change state of the buffer, > > which is an additional impl/maintenance burden. > I see the difference as, if implemented as a C library that keep a buffer > and synchronize with emacs, then this synchronization *must* be > absolutely correct, otherwise it mess up any operation on the buffer. > However if the CRDT is kept on the emacs buffer itself, it’s much > more tolerant to untracked text in the buffer. I'm sorry, I probably miss too much background information here, because I don't really understand what is the issue you are describing here. E.g., why is user intent important, when all you need is to keep buffer text synchronized between several sessions?