From mboxrd@z Thu Jan 1 00:00:00 1970 Path: news.gmane.io!.POSTED.blaine.gmane.org!not-for-mail From: Alan Mackenzie Newsgroups: gmane.emacs.devel Subject: Re: New optimisations for long raw strings in C++ Mode. Date: Wed, 10 Aug 2022 16:23:27 +0000 Message-ID: References: <83sfm8vxht.fsf@gnu.org> <87k07hxwe9.fsf@gnus.org> <87fsi5xw9l.fsf@gnus.org> <83wnbhtlzb.fsf@gnu.org> <703c2351d96919276449@heytings.org> <83o7wsqlcm.fsf@gnu.org> Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii Injection-Info: ciao.gmane.io; posting-host="blaine.gmane.org:116.202.254.214"; logging-data="30760"; mail-complaints-to="usenet@ciao.gmane.io" Cc: gregory@heytings.org, larsi@gnus.org, emacs-devel@gnu.org To: Eli Zaretskii Original-X-From: emacs-devel-bounces+ged-emacs-devel=m.gmane-mx.org@gnu.org Wed Aug 10 18:24:54 2022 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 1oLoVp-0007q9-Sg for ged-emacs-devel@m.gmane-mx.org; Wed, 10 Aug 2022 18:24:53 +0200 Original-Received: from localhost ([::1]:60588 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1oLoVo-000617-6f for ged-emacs-devel@m.gmane-mx.org; Wed, 10 Aug 2022 12:24:52 -0400 Original-Received: from eggs.gnu.org ([2001:470:142:3::10]:43302) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1oLoUg-0005Dw-67 for emacs-devel@gnu.org; Wed, 10 Aug 2022 12:23:42 -0400 Original-Received: from colin.muc.de ([193.149.48.1]:36250 helo=mail.muc.de) by eggs.gnu.org with smtp (Exim 4.90_1) (envelope-from ) id 1oLoUd-0002Qg-UN for emacs-devel@gnu.org; Wed, 10 Aug 2022 12:23:41 -0400 Original-Received: (qmail 86393 invoked by uid 3782); 10 Aug 2022 16:23:29 -0000 Original-Received: from acm.muc.de (p4fe15888.dip0.t-ipconnect.de [79.225.88.136]) (using STARTTLS) by colin.muc.de (tmda-ofmipd) with ESMTP; Wed, 10 Aug 2022 18:23:28 +0200 Original-Received: (qmail 7084 invoked by uid 1000); 10 Aug 2022 16:23:27 -0000 Content-Disposition: inline In-Reply-To: <83o7wsqlcm.fsf@gnu.org> X-Submission-Agent: TMDA/1.3.x (Ph3nix) X-Primary-Address: acm@muc.de Received-SPF: pass client-ip=193.149.48.1; envelope-from=acm@muc.de; helo=mail.muc.de X-Spam_score_int: -18 X-Spam_score: -1.9 X-Spam_bar: - X-Spam_report: (-1.9 / 5.0 requ) BAYES_00=-1.9, SPF_HELO_NONE=0.001, SPF_PASS=-0.001, T_SCC_BODY_TEXT_LINE=-0.01 autolearn=ham autolearn_force=no X-Spam_action: no action X-BeenThere: emacs-devel@gnu.org X-Mailman-Version: 2.1.29 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:293356 Archived-At: Hello, Eli. On Wed, Aug 10, 2022 at 16:28:09 +0300, Eli Zaretskii wrote: > > Date: Tue, 9 Aug 2022 21:43:28 +0000 > > Cc: Eli Zaretskii , larsi@gnus.org, emacs-devel@gnu.org > > From: Alan Mackenzie > > > As has been discussed, CC Mode is, sadly, by design, incompatible with the > > > new feature ..... > > Er, actually, CC Mode has been around a tad longer than the new feature. > That just means it had been doing what it shouldn't for a very long > time. It doesn't get any good points for that. CC Mode has not been doing anything wrong in accessing the buffers it controls. The idea that one should access only the characters in the (BEG END) supplied by fontification_functions (and jit-lock) is false. It has no basis in rationality. And in fact, standard font-locking itself accesses (via syntax-ppss) all character positions from BOB to BEG. Just as a matter of interest, to whom it may concern, note that syntax-ppss behaves differently in narrowed buffers and widened buffers. In particular, it uses two distinct caches for these two cases, and erases the "narrowed" cache when point-min changes. This may have relevance for font-locking when widen isn't working. > > It would be more accurate to state that the new feature was, by design, > > incompatible with existing software. The new feature, by design, breaks > > long-standing contracts in Emacs, namely that `widen', etc., work. > > Of course, testing could have shown up this incompatibility at an early > > stage, perhaps even leading to a solution. A pity we didn't have more > > thorough testing. > > So, what do you intend to do about this incompatibility you have > > introduced? Anything? > Actually, I'd expect you, as the maintainer of CC Mode, to look into > this and try to fix whatever needs fixing. (But for now I cannot > reproduce the problem, so maybe there's nothing to fix.) I would have expected the implementor of a new feature to do his utmost not to break existing software, and should this unfortunately transpire, to work with others to fix it. In this case, the implementor, Gregory, seems overjoyed to have broken CC Mode, and appears to reject any responsibility for the breakage. > > What do you intend to do about this? Anything? > How about you? Somebody will have to clean up the mess, yes, and that task, with virtual certainty, will fall to me, even though I'd far rather be doing more productive things. Given how narrowing/widening is essential to all aspects of CC Mode, in particular to c-parse-state, and that c-parse-state is used in CC Mode's font-locking, it seems the only way forward is to disable font-locking entirely when narrowing/widening aren't working. Either that, or a complete redesign from scratch. -- Alan Mackenzie (Nuremberg, Germany).