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: cc-mode fontification feels random Date: Wed, 9 Jun 2021 18:22:57 +0000 Message-ID: References: <83lf7mhl3n.fsf@gnu.org> <73ff18bf-66dc-7d7a-a0db-8edc2cdceba8@gmx.at> <83o8cge4lg.fsf@gnu.org> <62e438b5-d27f-1d3c-69c6-11fe29a76d74@dancol.org> <83fsxsdxhu.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="13370"; mail-complaints-to="usenet@ciao.gmane.io" Cc: rudalics@gmx.at, Daniel Colascione , monnier@iro.umontreal.ca, rms@gnu.org, emacs-devel@gnu.org To: Eli Zaretskii Original-X-From: emacs-devel-bounces+ged-emacs-devel=m.gmane-mx.org@gnu.org Wed Jun 09 20:23:55 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 1lr2rq-0003GI-VH for ged-emacs-devel@m.gmane-mx.org; Wed, 09 Jun 2021 20:23:54 +0200 Original-Received: from localhost ([::1]:51678 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1lr2rp-0004Vq-Vt for ged-emacs-devel@m.gmane-mx.org; Wed, 09 Jun 2021 14:23:54 -0400 Original-Received: from eggs.gnu.org ([2001:470:142:3::10]:58776) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1lr2r2-0003MT-I3 for emacs-devel@gnu.org; Wed, 09 Jun 2021 14:23:04 -0400 Original-Received: from colin.muc.de ([193.149.48.1]:49227 helo=mail.muc.de) by eggs.gnu.org with smtp (Exim 4.90_1) (envelope-from ) id 1lr2r0-0002ja-96 for emacs-devel@gnu.org; Wed, 09 Jun 2021 14:23:04 -0400 Original-Received: (qmail 41467 invoked by uid 3782); 9 Jun 2021 18:22:59 -0000 Original-Received: from acm.muc.de (p4fe15b16.dip0.t-ipconnect.de [79.225.91.22]) (using STARTTLS) by colin.muc.de (tmda-ofmipd) with ESMTP; Wed, 09 Jun 2021 20:22:58 +0200 Original-Received: (qmail 7644 invoked by uid 1000); 9 Jun 2021 18:22:57 -0000 Content-Disposition: inline In-Reply-To: <83fsxsdxhu.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 autolearn=ham autolearn_force=no X-Spam_action: no action 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:270604 Archived-At: Hello, Eli. On Tue, Jun 08, 2021 at 21:25:49 +0300, Eli Zaretskii wrote: > > From: Daniel Colascione > > Date: Tue, 8 Jun 2021 11:11:21 -0700 > > Cc: rudalics@gmx.at, emacs-devel@gnu.org, rms@gnu.org, acm@muc.de > > The whole point of fontification is to provide visual hints about > > the semantic structure of source code. If cc-mode can't do that > > reliably, my preference would be for it to not do it at all. > > Fontification of a type-using expression shouldn't change if I move > > the definition of that type from one file to another. > I think we agree. Except that for me, it should also not try if it > cannot do it quickly enough, not only reliably enough. Quickly and reliably enough are desirable things, but in competition with eachother. Reliably enough is a lot easier to measure, quickly enough depends on the machine, the degree of optimisation, and above all, the user's expectations. > > IMHO, we should rely on LSP to figure out what symbols are types, and if > > a LSP isn't available, we shouldn't try to guess. "Shouldn't try to guess" means taking a great deal of font-lock-type-faces out of CC Mode. I don't honestly think the end result would be any better than what we have at the moment. > I was talking about what to do (or not to do) with our existing > regexp- and "syntax"-based fontifications. I still remember the days > when CC Mode handled that well enough without being a snail it > frequently is now, and that was on a machine about 10 times slower > than the one I use nowadays. Those old versions had masses of fontification bugs in them. People wrote bug reports about them and they got fixed. Those fixes frequently involved a loss of speed. :-( There have also been several bug reports about unusual buffers getting fontified at the speed of continental drift, and fixing those has usually led to a little slowdown for ordinary buffers. I'm thinking, for example, about bug #25706, where a 4 MB file took nearly an hour to scroll through on my machine. After the fix, it took around 86 seconds. > The C language didn't change too much since then, at least not the > flavor I frequently edit. There are two places where CC Mode can be slow: font locking large areas of text, and keeping up with somebody typing quickly. Which of these bothers you the most? I have plans for speeding up one of these. -- Alan Mackenzie (Nuremberg, Germany).