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: CC Mode with font-lock-maximum-decoration 2 [Was Major modes using `widen' is a good, even essential, programming practice.] Date: Mon, 08 Aug 2022 20:41:37 +0300 Message-ID: <83pmhavdim.fsf@gnu.org> References: <835yj4xhh7.fsf@gnu.org> <83y1w0w0gk.fsf@gnu.org> <83pmhcvugm.fsf@gnu.org> <83czdbwjfr.fsf@gnu.org> <837d3jvu9f.fsf@gnu.org> <83sfm6veqa.fsf@gnu.org> Injection-Info: ciao.gmane.io; posting-host="blaine.gmane.org:116.202.254.214"; logging-data="40821"; mail-complaints-to="usenet@ciao.gmane.io" Cc: emacs-devel@gnu.org To: acm@muc.de Original-X-From: emacs-devel-bounces+ged-emacs-devel=m.gmane-mx.org@gnu.org Mon Aug 08 19:43:12 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 1oL6mW-000ARh-Ez for ged-emacs-devel@m.gmane-mx.org; Mon, 08 Aug 2022 19:43:12 +0200 Original-Received: from localhost ([::1]:45074 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1oL6mV-0004Ho-Ci for ged-emacs-devel@m.gmane-mx.org; Mon, 08 Aug 2022 13:43:11 -0400 Original-Received: from eggs.gnu.org ([2001:470:142:3::10]:37202) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1oL6lI-0003M8-0q for emacs-devel@gnu.org; Mon, 08 Aug 2022 13:41:56 -0400 Original-Received: from fencepost.gnu.org ([2001:470:142:3::e]:48422) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1oL6lD-0007tm-6O; Mon, 08 Aug 2022 13:41:54 -0400 DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=gnu.org; s=fencepost-gnu-org; h=References:Subject:In-Reply-To:To:From:Date: mime-version; bh=zuSarPU9TDvUcu68Drqo1mXIZj538dbbYy8vXlKTDgs=; b=Y0vl09IlJ9aN sOb2seMehgkZNC95g3toYtHXAfi3pwbbgvSORG28ioScc1MQu4Rhrx/dXCabMKLpu5DVY5mrSK3B/ ZAp2P0paIHp4ZYrhTCa3YBF1ma+PP3xtgWgAg15EksOC2lTa/jVoQxJotDjIQx+4DDIdwBLvS8CBD 9djl+SscYTN2KQ1u/uiy4i6aX7unSaY9sTdJOEcFQ1UTdPO1kYO2Pm9jbRUwC6n6nQhCaw/ElRgCn CdBdNHsmnEpQV37lAjR4rD9U9F1rNJYEryUQMcg9sr5axe3x5/OoYOUWT36S/MtRsxCeNQLkbwDlM HvggX/9a2B2h2W0HXUAFCQ==; Original-Received: from [87.69.77.57] (port=1290 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 1oL6lC-0005iu-M2; Mon, 08 Aug 2022 13:41:50 -0400 In-Reply-To: <83sfm6veqa.fsf@gnu.org> (message from Eli Zaretskii on Mon, 08 Aug 2022 20:15:25 +0300) 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:293278 Archived-At: > Date: Mon, 08 Aug 2022 20:15:25 +0300 > From: Eli Zaretskii > Cc: emacs-devel@gnu.org > > > For this measurement, I started with subr.el, and appended copies of it > > to itself, then took functions off the end, to make it the same size as > > xdisp.c. xdisp.c is 1209233 bytes, my .el buffer was 1209371 bytes. > > > > I used M-: (benchmark-run 1 (time-scroll-b)) on each buffer, with: > > > > (defun time-scroll-b (&optional arg) ; For use in `benchmark-run'. > > (condition-case nil > > (while t > > (if arg (scroll-down) (scroll-up)) > > (sit-for 0)) > > (error nil))) > > > > .. The exact results were: > > (xdisp.c): (5.7370774540000005 9 0.7672129740000013) > > (elisp): (4.1201735589999995 5 0.42918214299999846). > > > > This was, of course, on an optimised build on GNU/Linux using the Linux > > console, both measurements starting at BOB, having typed and deleted a > > character to erase existing font-locking. > > Editing source code is more than just scrolling through the text and > getting it fontified, though. For realistic measurements, you need to > emulate and time a typical mix of editing operations. And btw, I'm not sure I understand what you are saying. Are you saying that level 2 is enough for fontifications in C mode? If so, what are we losing when compared to the value t, and if we don't lose anything important, why do we need any fontifications beyond what level 2 gives us? And what about the value nil instead of 2? IOW, if you are saying that you consider level 2 to be the recommended level for C sources, why didn't we make that change long ago? For Lisp, btw, the difference between level 2 and t is negligible. And the same goes for most/all other modes, which is the reason why we have set the value to t years ago. I'm quite sure at that time the difference between 2 and t for C mode was also very small.