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: How to add pseudo vector types Date: Fri, 30 Jul 2021 09:47:07 +0300 Message-ID: <83sfzwqowk.fsf@gnu.org> References: <83h7gw6pyj.fsf@gnu.org> <46BBFF88-76C3-4818-8805-5437409BEA93@gmail.com> <83wnpq46uk.fsf@gnu.org> <533BD53B-4E85-4E9E-B46A-346A5BBAD0F5@gmail.com> <258CB68D-1CC1-42C8-BDCD-2A8A8099B783@gmail.com> <1a776770-50b7-93cd-6591-c9a5b3a56eb8@gmail.com> <8335s64v10.fsf@gnu.org> <5380C92B-6C15-4490-A1E0-1C3132DBB16A@gmail.com> <83k0li2shw.fsf@gnu.org> <86wnpg82v3.fsf@stephe-leake.org> <83lf5wyn0z.fsf@gnu.org> <86pmv66yqg.fsf@stephe-leake.org> <83a6maw705.fsf@gnu.org> <83r1fluikh.fsf@gnu.org> <88007ACB-31E5-440F-876D-9F43C8EE02CC@gmail.com> <86fsw05lom.fsf@stephe-leake.org> <8A3823DD-5D5A-4A33-8EF9-93F05497CE4C@gmail.com> <864kcf5cmv.fsf_-_@stephe-leake.org> <18D745F5-DBB1-46CC-91D3-4ADAA9D37AB9@gmail.com> <834kcetmly.fsf@gnu.org> <831r7itjc8.fsf@gnu.org> <24808548-23F4-4068-877E-37C7190A02B0@gmail.com> <83wnpas1q7.fsf@gnu.org> <83k0l9rvf5.fsf@gnu.org> <83fsvxrszr.fsf@gnu.org> <83czr1rpei.fsf@gnu.org> <83a6m5rmp4.fsf@gnu.org> <574573B6-8844-45CC-9ACB-D5F75AE465E5@gmail.com> 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="33962"; mail-complaints-to="usenet@ciao.gmane.io" Cc: cpitclaudel@gmail.com, stephen_leake@stephe-leake.org, monnier@iro.umontreal.ca, emacs-devel@gnu.org To: Yuan Fu Original-X-From: emacs-devel-bounces+ged-emacs-devel=m.gmane-mx.org@gnu.org Fri Jul 30 08:48:07 2021 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 1m9MJS-0008dy-Ig for ged-emacs-devel@m.gmane-mx.org; Fri, 30 Jul 2021 08:48:06 +0200 Original-Received: from localhost ([::1]:46858 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1m9MJQ-000447-Th for ged-emacs-devel@m.gmane-mx.org; Fri, 30 Jul 2021 02:48:04 -0400 Original-Received: from eggs.gnu.org ([2001:470:142:3::10]:51788) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1m9MIq-0003P9-65 for emacs-devel@gnu.org; Fri, 30 Jul 2021 02:47:28 -0400 Original-Received: from fencepost.gnu.org ([2001:470:142:3::e]:33788) by eggs.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1m9MIp-0000Xq-2t; Fri, 30 Jul 2021 02:47:27 -0400 Original-Received: from 84.94.185.95.cable.012.net.il ([84.94.185.95]:1819 helo=home-c4e4a596f7) by fencepost.gnu.org with esmtpsa (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1m9MIo-0006Y7-M7; Fri, 30 Jul 2021 02:47:27 -0400 In-Reply-To: <574573B6-8844-45CC-9ACB-D5F75AE465E5@gmail.com> (message from Yuan Fu on Thu, 29 Jul 2021 14:57:19 -0400) 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:271828 Archived-At: > From: Yuan Fu > Date: Thu, 29 Jul 2021 14:57:19 -0400 > Cc: Stephen Leake , > Clément Pit-Claudel , > Stefan Monnier , > emacs-devel@gnu.org > > >> Actually, that sounds like how it works in my code right now. After the last few exchanges, I still have the feeling that we are not on the same page. Could you have a look at the code in ts_ensure_parsed and ts_record_change, and see if it aligns with what you consider to be the right thing? If you have read them already and think you understand what are they doing, could you tell me how exactly should these two functions behave, in your opinion? Thanks. > > > > Where do I find the latest version of the code? > > A few messages back I attached a patch, ts.5.patch. Actually I can just attach it again, here. That's not the whole code, that's a patch against some previous version of the code. So I cannot answer your questions with 100% certainty, until I see the entire code of the TS support. For example, I'm not sure I have a clear idea when are the two functions ts_ensure_parsed and ts_record_change called. That said, it looks like the code is correct: you should record the changes in the entire buffer, but only pass to TS the changes inside the restriction BEGV..ZV that is in effect at the time of the re-parse call. Btw, I don't see the code that filters changes reported to TS by their positions against the restriction; did I miss something? And one more question: I understand that ts_read_buffer doesn't check against BUF_BEGV_BYTE because TS never reads before the "visible beg" position, is that right? But if so, why do we need the similar test for BUF_ZV_BYTE? could TS attempt to read beyond the "visible end"? Thanks.