From debbugs-submit-bounces@debbugs.gnu.org Sat Nov 09 11:05:08 2024 Received: (at submit) by debbugs.gnu.org; 9 Nov 2024 16:05:08 +0000 Received: from localhost ([127.0.0.1]:54119 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1t9nxS-0002c3-BR for submit@debbugs.gnu.org; Sat, 09 Nov 2024 11:05:08 -0500 Received: from lists.gnu.org ([209.51.188.17]:60076) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1t9nxO-0002bV-2l for submit@debbugs.gnu.org; Sat, 09 Nov 2024 11:05:04 -0500 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1t9nxL-0004Pd-IL for bug-gnu-emacs@gnu.org; Sat, 09 Nov 2024 11:05:00 -0500 Received: from latitanza.investici.org ([82.94.249.234]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1t9nxG-0005Wb-KN for bug-gnu-emacs@gnu.org; Sat, 09 Nov 2024 11:04:59 -0500 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=subvertising.org; s=stigmate; t=1731168259; bh=UDndg1HlxbTk2IWkd543QkBbs0qsxbJ4e+AJtvRcVDw=; h=From:To:Subject:Date:From; b=F2hAY6ioq+yUbRwKZZovirsM8SP/pgEQae7yVzU8tdiGJvdk0JJE5xOGJvsw7B641 v23RZZythmB4p5ycdnGU09y/mOVB8CwUmdFiQJR6+8r2hEfd0dqryHlspJKTmkw5Uf fS7NT1pFdVYgvepdVua8ltsgLqiwWintc4k5Z/PM= Received: from mx3.investici.org (unknown [127.0.0.1]) by latitanza.investici.org (Postfix) with ESMTP id 4Xm0xH4VzYzGp4F for ; Sat, 9 Nov 2024 16:04:19 +0000 (UTC) Received: from [82.94.249.234] (mx3.investici.org [82.94.249.234]) (Authenticated sender: divya@subvertising.org) by localhost (Postfix) with ESMTPSA id 4Xm0xG6wGQzGp4R for ; Sat, 9 Nov 2024 16:04:18 +0000 (UTC) From: Divya Ranjan To: bug-gnu-emacs@gnu.org Subject: 30.0.91; font-lock mode hangs on scrolling large Scheme file Date: Sat, 09 Nov 2024 16:04:13 +0000 Message-ID: <8734k0cs1u.fsf@subvertising.org> User-Agent: Gnus/5.13 (Gnus v5.13) MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: quoted-printable Received-SPF: pass client-ip=82.94.249.234; envelope-from=divya@subvertising.org; helo=latitanza.investici.org X-Spam_score_int: -27 X-Spam_score: -2.8 X-Spam_bar: -- X-Spam_report: (-2.8 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_DNSWL_LOW=-0.7, RCVD_IN_VALIDITY_CERTIFIED_BLOCKED=0.001, RCVD_IN_VALIDITY_RPBL_BLOCKED=0.001, SPF_HELO_PASS=-0.001, SPF_PASS=-0.001 autolearn=ham autolearn_force=no X-Spam_action: no action X-Spam-Score: -1.4 (-) X-Debbugs-Envelope-To: submit X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -2.4 (--) 1. 11ikjlkjkkkj 1. In emacs -Q, open a fairly big Scheme file (> 70k) and try to move in the file with C-n, C-f or mouse scrolling. It sverely lags for several seconds, doesn=E2=80=99t even respond to C-g. 2. Toggle font-lock-mode off through M-x, then try to scroll. It works as expected, no serious lags. 3. Running the profiler also shows font-lock as the culprit. This makes working on big projects, in my case the source code of GNU Guix distribution an impossible situation. I haven=E2=80=99t tried setting = up (Guile) Scheme with Tree-Sitter, but shouldn=E2=80=99t simple syntax-highlighting be not a serious problem? To try a big Scheme file and reproduce this, open tex.scm in gnu/packages/tex.scm in Guix source tree: https://git.savannah.gnu.org/cgit/guix.git In GNU Emacs 30.0.91 (build 1, x86_64-pc-linux-gnu, GTK+ Version 3.24.41, cairo version 1.18.0) Windowing system distributor 'The X.Org Foundation', version 11.0.12101012 System Description: Guix System Configured using: 'configure CONFIG_SHELL=3D/gnu/store/3jhfhxdf6v5ms10x5zmnl166dh3yhbr1-bash-minimal-5.= 1.16/bin/bash SHELL=3D/gnu/store/3jhfhxdf6v5ms10x5zmnl166dh3yhbr1-bash-minimal-5.1.16/bi= n/bash --prefix=3D/gnu/store/k3vqb6f4ghi2v50zrzh3657dywfkyfc5-emacs-next-30.0.91-= 1.9a1c76b --enable-fast-install --with-cairo --with-modules --with-native-compilation=3Daot --disable-build-details' Configured features: ACL CAIRO DBUS FREETYPE GIF GLIB GMP GNUTLS GPM GSETTINGS HARFBUZZ JPEG LCMS2 LIBOTF LIBSELINUX LIBSYSTEMD LIBXML2 M17N_FLT MODULES NATIVE_COMP NOTIFY INOTIFY PDUMPER PNG RSVG SECCOMP SOUND SQLITE3 THREADS TIFF TOOLKIT_SCROLL_BARS TREE_SITTER X11 XDBE XIM XINPUT2 XPM GTK3 ZLIB Important settings: value of $EMACSLOADPATH: /home/divya/.config/guix/current/share/emacs/sit= e-lisp:/home/divya/.guix-home/profile/share/emacs/site-lisp:/home/divya/.gu= ix-profile/share/emacs/site-lisp:/run/current-system/profile/share/emacs/si= te-lisp:/gnu/store/k3vqb6f4ghi2v50zrzh3657dywfkyfc5-emacs-next-30.0.91-1.9a= 1c76b/share/emacs/30.0.91/lisp value of $LANG: en_US.utf8 locale-coding-system: utf-8-unix Major mode: Dired/name 452/587 Minor modes in effect: all-the-icons-dired-mode: t erc-notify-mode: t erc-notifications-mode: t erc-track-mode: t erc-track-minor-mode: t erc-ring-mode: t erc-netsplit-mode: t erc-menu-mode: t erc-match-mode: t erc-list-mode: t erc-irccontrols-mode: t erc-move-to-prompt-mode: t erc-readonly-mode: t erc-imenu-mode: t erc-pcomplete-mode: t erc-button-mode: t erc-fill-mode: t erc-stamp-mode: t erc-autojoin-mode: t erc-networks-mode: t gcmh-mode: t global-corfu-mode: t corfu-mode: t global-paren-face-mode: t global-color-identifiers-mode: t global-hi-lock-mode: t hi-lock-mode: t timeclock-mode-line-display: t server-mode: t dirvish-peek-mode: t dirvish-side-follow-mode: t dirvish-override-dired-mode: t dired-hide-details-mode: t consult-org-roam-mode: t org-roam-db-autosync-mode: t winner-mode: t popper-mode: t meow-global-mode: t meow-mode: t meow-motion-mode: t meow-esc-mode: t display-time-mode: t dimmer-mode: t all-the-icons-completion-mode: t marginalia-mode: t vertico-mode: t global-writeroom-mode: t which-key-mode: t smartparens-global-mode: t doom-modeline-mode: t global-auto-revert-mode: t save-place-mode: t savehist-mode: t recentf-mode: t global-hl-line-mode: t global-display-line-numbers-mode: t override-global-mode: t straight-use-package-mode: t straight-package-neutering-mode: t tooltip-mode: t global-eldoc-mode: t show-paren-mode: t electric-quote-mode: t electric-indent-mode: t mouse-wheel-mode: t global-prettify-symbols-mode: t file-name-shadow-mode: t global-font-lock-mode: t font-lock-mode: t blink-cursor-mode: t minibuffer-regexp-mode: t buffer-read-only: t size-indication-mode: t column-number-mode: t line-number-mode: t global-visual-line-mode: t visual-line-mode: t indent-tabs-mode: t transient-mark-mode: t auto-composition-mode: t auto-encryption-mode: t auto-compression-mode: t Load-path shadows: /home/divya/.emacs.d/straight/build/compat/compat hides /gnu/store/5fz4hfsq= gh2rgdz2gxpxsnf6ak2nbsnx-emacs-compat-30.0.0.0/share/emacs/site-lisp/compat= -30.0.0.0/compat /home/divya/.emacs.d/straight/build/compat/compat-pkg hides /gnu/store/5fz4= hfsqgh2rgdz2gxpxsnf6ak2nbsnx-emacs-compat-30.0.0.0/share/emacs/site-lisp/co= mpat-30.0.0.0/compat-pkg /home/divya/.emacs.d/straight/build/compat/compat-macs hides /gnu/store/5fz= 4hfsqgh2rgdz2gxpxsnf6ak2nbsnx-emacs-compat-30.0.0.0/share/emacs/site-lisp/c= ompat-30.0.0.0/compat-macs /home/divya/.emacs.d/straight/build/compat/compat-autoloads hides /gnu/stor= e/5fz4hfsqgh2rgdz2gxpxsnf6ak2nbsnx-emacs-compat-30.0.0.0/share/emacs/site-l= isp/compat-30.0.0.0/compat-autoloads /home/divya/.emacs.d/straight/build/compat/compat-30 hides /gnu/store/5fz4h= fsqgh2rgdz2gxpxsnf6ak2nbsnx-emacs-compat-30.0.0.0/share/emacs/site-lisp/com= pat-30.0.0.0/compat-30 /home/divya/.emacs.d/straight/build/compat/compat-29 hides /gnu/store/5fz4h= fsqgh2rgdz2gxpxsnf6ak2nbsnx-emacs-compat-30.0.0.0/share/emacs/site-lisp/com= pat-30.0.0.0/compat-29 /home/divya/.emacs.d/straight/build/compat/compat-28 hides /gnu/store/5fz4h= fsqgh2rgdz2gxpxsnf6ak2nbsnx-emacs-compat-30.0.0.0/share/emacs/site-lisp/com= pat-30.0.0.0/compat-28 /home/divya/.emacs.d/straight/build/compat/compat-27 hides /gnu/store/5fz4h= fsqgh2rgdz2gxpxsnf6ak2nbsnx-emacs-compat-30.0.0.0/share/emacs/site-lisp/com= pat-30.0.0.0/compat-27 /home/divya/.emacs.d/straight/build/compat/compat-26 hides /gnu/store/5fz4h= fsqgh2rgdz2gxpxsnf6ak2nbsnx-emacs-compat-30.0.0.0/share/emacs/site-lisp/com= pat-30.0.0.0/compat-26 /home/divya/.emacs.d/straight/build/compat/compat-25 hides /gnu/store/5fz4h= fsqgh2rgdz2gxpxsnf6ak2nbsnx-emacs-compat-30.0.0.0/share/emacs/site-lisp/com= pat-30.0.0.0/compat-25 /home/divya/.emacs.d/straight/build/which-key/which-key hides /gnu/store/k3= vqb6f4ghi2v50zrzh3657dywfkyfc5-emacs-next-30.0.91-1.9a1c76b/share/emacs/30.= 0.91/lisp/which-key /home/divya/.emacs.d/straight/build/transient/transient hides /gnu/store/k3= vqb6f4ghi2v50zrzh3657dywfkyfc5-emacs-next-30.0.91-1.9a1c76b/share/emacs/30.= 0.91/lisp/transient /home/divya/.emacs.d/straight/build/svg/svg hides /gnu/store/k3vqb6f4ghi2v5= 0zrzh3657dywfkyfc5-emacs-next-30.0.91-1.9a1c76b/share/emacs/30.0.91/lisp/svg /home/divya/.emacs.d/straight/build/bind-key/bind-key hides /gnu/store/k3vq= b6f4ghi2v50zrzh3657dywfkyfc5-emacs-next-30.0.91-1.9a1c76b/share/emacs/30.0.= 91/lisp/bind-key /home/divya/.emacs.d/straight/build/ef-themes/theme-loaddefs hides /gnu/sto= re/k3vqb6f4ghi2v50zrzh3657dywfkyfc5-emacs-next-30.0.91-1.9a1c76b/share/emac= s/30.0.91/lisp/theme-loaddefs /home/divya/.emacs.d/straight/build/use-package/use-package-core hides /gnu= /store/k3vqb6f4ghi2v50zrzh3657dywfkyfc5-emacs-next-30.0.91-1.9a1c76b/share/= emacs/30.0.91/lisp/use-package/use-package-core /home/divya/.emacs.d/straight/build/use-package/use-package hides /gnu/stor= e/k3vqb6f4ghi2v50zrzh3657dywfkyfc5-emacs-next-30.0.91-1.9a1c76b/share/emacs= /30.0.91/lisp/use-package/use-package /home/divya/.emacs.d/straight/build/use-package/use-package-lint hides /gnu= /store/k3vqb6f4ghi2v50zrzh3657dywfkyfc5-emacs-next-30.0.91-1.9a1c76b/share/= emacs/30.0.91/lisp/use-package/use-package-lint /home/divya/.emacs.d/straight/build/use-package/use-package-jump hides /gnu= /store/k3vqb6f4ghi2v50zrzh3657dywfkyfc5-emacs-next-30.0.91-1.9a1c76b/share/= emacs/30.0.91/lisp/use-package/use-package-jump /home/divya/.emacs.d/straight/build/use-package/use-package-ensure hides /g= nu/store/k3vqb6f4ghi2v50zrzh3657dywfkyfc5-emacs-next-30.0.91-1.9a1c76b/shar= e/emacs/30.0.91/lisp/use-package/use-package-ensure /home/divya/.emacs.d/straight/build/use-package/use-package-diminish hides = /gnu/store/k3vqb6f4ghi2v50zrzh3657dywfkyfc5-emacs-next-30.0.91-1.9a1c76b/sh= are/emacs/30.0.91/lisp/use-package/use-package-diminish /home/divya/.emacs.d/straight/build/use-package/use-package-delight hides /= gnu/store/k3vqb6f4ghi2v50zrzh3657dywfkyfc5-emacs-next-30.0.91-1.9a1c76b/sha= re/emacs/30.0.91/lisp/use-package/use-package-delight /home/divya/.emacs.d/straight/build/use-package/use-package-bind-key hides = /gnu/store/k3vqb6f4ghi2v50zrzh3657dywfkyfc5-emacs-next-30.0.91-1.9a1c76b/sh= are/emacs/30.0.91/lisp/use-package/use-package-bind-key /home/divya/.emacs.d/straight/build/xref/xref hides /gnu/store/k3vqb6f4ghi2= v50zrzh3657dywfkyfc5-emacs-next-30.0.91-1.9a1c76b/share/emacs/30.0.91/lisp/= progmodes/xref /home/divya/.emacs.d/straight/build/project/project hides /gnu/store/k3vqb6= f4ghi2v50zrzh3657dywfkyfc5-emacs-next-30.0.91-1.9a1c76b/share/emacs/30.0.91= /lisp/progmodes/project /home/divya/.emacs.d/straight/build/peg/peg hides /gnu/store/k3vqb6f4ghi2v5= 0zrzh3657dywfkyfc5-emacs-next-30.0.91-1.9a1c76b/share/emacs/30.0.91/lisp/pr= ogmodes/peg /home/divya/.emacs.d/straight/build/org/ox hides /gnu/store/k3vqb6f4ghi2v50= zrzh3657dywfkyfc5-emacs-next-30.0.91-1.9a1c76b/share/emacs/30.0.91/lisp/org= /ox /home/divya/.emacs.d/straight/build/org/ox-texinfo hides /gnu/store/k3vqb6f= 4ghi2v50zrzh3657dywfkyfc5-emacs-next-30.0.91-1.9a1c76b/share/emacs/30.0.91/= lisp/org/ox-texinfo /home/divya/.emacs.d/straight/build/org/ox-publish hides /gnu/store/k3vqb6f= 4ghi2v50zrzh3657dywfkyfc5-emacs-next-30.0.91-1.9a1c76b/share/emacs/30.0.91/= lisp/org/ox-publish /home/divya/.emacs.d/straight/build/org/ox-org hides /gnu/store/k3vqb6f4ghi= 2v50zrzh3657dywfkyfc5-emacs-next-30.0.91-1.9a1c76b/share/emacs/30.0.91/lisp= /org/ox-org /home/divya/.emacs.d/straight/build/org/ox-odt hides /gnu/store/k3vqb6f4ghi= 2v50zrzh3657dywfkyfc5-emacs-next-30.0.91-1.9a1c76b/share/emacs/30.0.91/lisp= /org/ox-odt /home/divya/.emacs.d/straight/build/org/ox-md hides /gnu/store/k3vqb6f4ghi2= v50zrzh3657dywfkyfc5-emacs-next-30.0.91-1.9a1c76b/share/emacs/30.0.91/lisp/= org/ox-md /home/divya/.emacs.d/straight/build/org/ox-man hides /gnu/store/k3vqb6f4ghi= 2v50zrzh3657dywfkyfc5-emacs-next-30.0.91-1.9a1c76b/share/emacs/30.0.91/lisp= /org/ox-man /home/divya/.emacs.d/straight/build/org/ox-latex hides /gnu/store/k3vqb6f4g= hi2v50zrzh3657dywfkyfc5-emacs-next-30.0.91-1.9a1c76b/share/emacs/30.0.91/li= sp/org/ox-latex /home/divya/.emacs.d/straight/build/org/ox-koma-letter hides /gnu/store/k3v= qb6f4ghi2v50zrzh3657dywfkyfc5-emacs-next-30.0.91-1.9a1c76b/share/emacs/30.0= .91/lisp/org/ox-koma-letter /home/divya/.emacs.d/straight/build/org/ox-icalendar hides /gnu/store/k3vqb= 6f4ghi2v50zrzh3657dywfkyfc5-emacs-next-30.0.91-1.9a1c76b/share/emacs/30.0.9= 1/lisp/org/ox-icalendar /home/divya/.emacs.d/straight/build/org/ox-html hides /gnu/store/k3vqb6f4gh= i2v50zrzh3657dywfkyfc5-emacs-next-30.0.91-1.9a1c76b/share/emacs/30.0.91/lis= p/org/ox-html /home/divya/.emacs.d/straight/build/org/ox-beamer hides /gnu/store/k3vqb6f4= ghi2v50zrzh3657dywfkyfc5-emacs-next-30.0.91-1.9a1c76b/share/emacs/30.0.91/l= isp/org/ox-beamer /home/divya/.emacs.d/straight/build/org/ox-ascii hides /gnu/store/k3vqb6f4g= hi2v50zrzh3657dywfkyfc5-emacs-next-30.0.91-1.9a1c76b/share/emacs/30.0.91/li= sp/org/ox-ascii /home/divya/.emacs.d/straight/build/org/org hides /gnu/store/k3vqb6f4ghi2v5= 0zrzh3657dywfkyfc5-emacs-next-30.0.91-1.9a1c76b/share/emacs/30.0.91/lisp/or= g/org /home/divya/.emacs.d/straight/build/org/org-timer hides /gnu/store/k3vqb6f4= ghi2v50zrzh3657dywfkyfc5-emacs-next-30.0.91-1.9a1c76b/share/emacs/30.0.91/l= isp/org/org-timer /home/divya/.emacs.d/straight/build/org/org-table hides /gnu/store/k3vqb6f4= ghi2v50zrzh3657dywfkyfc5-emacs-next-30.0.91-1.9a1c76b/share/emacs/30.0.91/l= isp/org/org-table /home/divya/.emacs.d/straight/build/org/org-src hides /gnu/store/k3vqb6f4gh= i2v50zrzh3657dywfkyfc5-emacs-next-30.0.91-1.9a1c76b/share/emacs/30.0.91/lis= p/org/org-src /home/divya/.emacs.d/straight/build/org/org-refile hides /gnu/store/k3vqb6f= 4ghi2v50zrzh3657dywfkyfc5-emacs-next-30.0.91-1.9a1c76b/share/emacs/30.0.91/= lisp/org/org-refile /home/divya/.emacs.d/straight/build/org/org-protocol hides /gnu/store/k3vqb= 6f4ghi2v50zrzh3657dywfkyfc5-emacs-next-30.0.91-1.9a1c76b/share/emacs/30.0.9= 1/lisp/org/org-protocol /home/divya/.emacs.d/straight/build/org/org-plot hides /gnu/store/k3vqb6f4g= hi2v50zrzh3657dywfkyfc5-emacs-next-30.0.91-1.9a1c76b/share/emacs/30.0.91/li= sp/org/org-plot /home/divya/.emacs.d/straight/build/org/org-persist hides /gnu/store/k3vqb6= f4ghi2v50zrzh3657dywfkyfc5-emacs-next-30.0.91-1.9a1c76b/share/emacs/30.0.91= /lisp/org/org-persist /home/divya/.emacs.d/straight/build/org/org-pcomplete hides /gnu/store/k3vq= b6f4ghi2v50zrzh3657dywfkyfc5-emacs-next-30.0.91-1.9a1c76b/share/emacs/30.0.= 91/lisp/org/org-pcomplete /home/divya/.emacs.d/straight/build/org/org-num hides /gnu/store/k3vqb6f4gh= i2v50zrzh3657dywfkyfc5-emacs-next-30.0.91-1.9a1c76b/share/emacs/30.0.91/lis= p/org/org-num /home/divya/.emacs.d/straight/build/org/org-mouse hides /gnu/store/k3vqb6f4= ghi2v50zrzh3657dywfkyfc5-emacs-next-30.0.91-1.9a1c76b/share/emacs/30.0.91/l= isp/org/org-mouse /home/divya/.emacs.d/straight/build/org/org-mobile hides /gnu/store/k3vqb6f= 4ghi2v50zrzh3657dywfkyfc5-emacs-next-30.0.91-1.9a1c76b/share/emacs/30.0.91/= lisp/org/org-mobile /home/divya/.emacs.d/straight/build/org/org-macs hides /gnu/store/k3vqb6f4g= hi2v50zrzh3657dywfkyfc5-emacs-next-30.0.91-1.9a1c76b/share/emacs/30.0.91/li= sp/org/org-macs /home/divya/.emacs.d/straight/build/org/org-macro hides /gnu/store/k3vqb6f4= ghi2v50zrzh3657dywfkyfc5-emacs-next-30.0.91-1.9a1c76b/share/emacs/30.0.91/l= isp/org/org-macro /home/divya/.emacs.d/straight/build/org/org-loaddefs hides /gnu/store/k3vqb= 6f4ghi2v50zrzh3657dywfkyfc5-emacs-next-30.0.91-1.9a1c76b/share/emacs/30.0.9= 1/lisp/org/org-loaddefs /home/divya/.emacs.d/straight/build/org/org-list hides /gnu/store/k3vqb6f4g= hi2v50zrzh3657dywfkyfc5-emacs-next-30.0.91-1.9a1c76b/share/emacs/30.0.91/li= sp/org/org-list /home/divya/.emacs.d/straight/build/org/org-lint hides /gnu/store/k3vqb6f4g= hi2v50zrzh3657dywfkyfc5-emacs-next-30.0.91-1.9a1c76b/share/emacs/30.0.91/li= sp/org/org-lint /home/divya/.emacs.d/straight/build/org/org-keys hides /gnu/store/k3vqb6f4g= hi2v50zrzh3657dywfkyfc5-emacs-next-30.0.91-1.9a1c76b/share/emacs/30.0.91/li= sp/org/org-keys /home/divya/.emacs.d/straight/build/org/org-inlinetask hides /gnu/store/k3v= qb6f4ghi2v50zrzh3657dywfkyfc5-emacs-next-30.0.91-1.9a1c76b/share/emacs/30.0= .91/lisp/org/org-inlinetask /home/divya/.emacs.d/straight/build/org/org-indent hides /gnu/store/k3vqb6f= 4ghi2v50zrzh3657dywfkyfc5-emacs-next-30.0.91-1.9a1c76b/share/emacs/30.0.91/= lisp/org/org-indent /home/divya/.emacs.d/straight/build/org/org-id hides /gnu/store/k3vqb6f4ghi= 2v50zrzh3657dywfkyfc5-emacs-next-30.0.91-1.9a1c76b/share/emacs/30.0.91/lisp= /org/org-id /home/divya/.emacs.d/straight/build/org/org-habit hides /gnu/store/k3vqb6f4= ghi2v50zrzh3657dywfkyfc5-emacs-next-30.0.91-1.9a1c76b/share/emacs/30.0.91/l= isp/org/org-habit /home/divya/.emacs.d/straight/build/org/org-goto hides /gnu/store/k3vqb6f4g= hi2v50zrzh3657dywfkyfc5-emacs-next-30.0.91-1.9a1c76b/share/emacs/30.0.91/li= sp/org/org-goto /home/divya/.emacs.d/straight/build/org/org-footnote hides /gnu/store/k3vqb= 6f4ghi2v50zrzh3657dywfkyfc5-emacs-next-30.0.91-1.9a1c76b/share/emacs/30.0.9= 1/lisp/org/org-footnote /home/divya/.emacs.d/straight/build/org/org-fold hides /gnu/store/k3vqb6f4g= hi2v50zrzh3657dywfkyfc5-emacs-next-30.0.91-1.9a1c76b/share/emacs/30.0.91/li= sp/org/org-fold /home/divya/.emacs.d/straight/build/org/org-fold-core hides /gnu/store/k3vq= b6f4ghi2v50zrzh3657dywfkyfc5-emacs-next-30.0.91-1.9a1c76b/share/emacs/30.0.= 91/lisp/org/org-fold-core /home/divya/.emacs.d/straight/build/org/org-feed hides /gnu/store/k3vqb6f4g= hi2v50zrzh3657dywfkyfc5-emacs-next-30.0.91-1.9a1c76b/share/emacs/30.0.91/li= sp/org/org-feed /home/divya/.emacs.d/straight/build/org/org-faces hides /gnu/store/k3vqb6f4= ghi2v50zrzh3657dywfkyfc5-emacs-next-30.0.91-1.9a1c76b/share/emacs/30.0.91/l= isp/org/org-faces /home/divya/.emacs.d/straight/build/org/org-entities hides /gnu/store/k3vqb= 6f4ghi2v50zrzh3657dywfkyfc5-emacs-next-30.0.91-1.9a1c76b/share/emacs/30.0.9= 1/lisp/org/org-entities /home/divya/.emacs.d/straight/build/org/org-element hides /gnu/store/k3vqb6= f4ghi2v50zrzh3657dywfkyfc5-emacs-next-30.0.91-1.9a1c76b/share/emacs/30.0.91= /lisp/org/org-element /home/divya/.emacs.d/straight/build/org/org-element-ast hides /gnu/store/k3= vqb6f4ghi2v50zrzh3657dywfkyfc5-emacs-next-30.0.91-1.9a1c76b/share/emacs/30.= 0.91/lisp/org/org-element-ast /home/divya/.emacs.d/straight/build/org/org-duration hides /gnu/store/k3vqb= 6f4ghi2v50zrzh3657dywfkyfc5-emacs-next-30.0.91-1.9a1c76b/share/emacs/30.0.9= 1/lisp/org/org-duration /home/divya/.emacs.d/straight/build/org/org-datetree hides /gnu/store/k3vqb= 6f4ghi2v50zrzh3657dywfkyfc5-emacs-next-30.0.91-1.9a1c76b/share/emacs/30.0.9= 1/lisp/org/org-datetree /home/divya/.emacs.d/straight/build/org/org-cycle hides /gnu/store/k3vqb6f4= ghi2v50zrzh3657dywfkyfc5-emacs-next-30.0.91-1.9a1c76b/share/emacs/30.0.91/l= isp/org/org-cycle /home/divya/.emacs.d/straight/build/org/org-ctags hides /gnu/store/k3vqb6f4= ghi2v50zrzh3657dywfkyfc5-emacs-next-30.0.91-1.9a1c76b/share/emacs/30.0.91/l= isp/org/org-ctags /home/divya/.emacs.d/straight/build/org/org-crypt hides /gnu/store/k3vqb6f4= ghi2v50zrzh3657dywfkyfc5-emacs-next-30.0.91-1.9a1c76b/share/emacs/30.0.91/l= isp/org/org-crypt /home/divya/.emacs.d/straight/build/org/org-compat hides /gnu/store/k3vqb6f= 4ghi2v50zrzh3657dywfkyfc5-emacs-next-30.0.91-1.9a1c76b/share/emacs/30.0.91/= lisp/org/org-compat /home/divya/.emacs.d/straight/build/org/org-colview hides /gnu/store/k3vqb6= f4ghi2v50zrzh3657dywfkyfc5-emacs-next-30.0.91-1.9a1c76b/share/emacs/30.0.91= /lisp/org/org-colview /home/divya/.emacs.d/straight/build/org/org-clock hides /gnu/store/k3vqb6f4= ghi2v50zrzh3657dywfkyfc5-emacs-next-30.0.91-1.9a1c76b/share/emacs/30.0.91/l= isp/org/org-clock /home/divya/.emacs.d/straight/build/org/org-capture hides /gnu/store/k3vqb6= f4ghi2v50zrzh3657dywfkyfc5-emacs-next-30.0.91-1.9a1c76b/share/emacs/30.0.91= /lisp/org/org-capture /home/divya/.emacs.d/straight/build/org/org-attach hides /gnu/store/k3vqb6f= 4ghi2v50zrzh3657dywfkyfc5-emacs-next-30.0.91-1.9a1c76b/share/emacs/30.0.91/= lisp/org/org-attach /home/divya/.emacs.d/straight/build/org/org-archive hides /gnu/store/k3vqb6= f4ghi2v50zrzh3657dywfkyfc5-emacs-next-30.0.91-1.9a1c76b/share/emacs/30.0.91= /lisp/org/org-archive /home/divya/.emacs.d/straight/build/org/org-agenda hides /gnu/store/k3vqb6f= 4ghi2v50zrzh3657dywfkyfc5-emacs-next-30.0.91-1.9a1c76b/share/emacs/30.0.91/= lisp/org/org-agenda /home/divya/.emacs.d/straight/build/org/ol hides /gnu/store/k3vqb6f4ghi2v50= zrzh3657dywfkyfc5-emacs-next-30.0.91-1.9a1c76b/share/emacs/30.0.91/lisp/org= /ol /home/divya/.emacs.d/straight/build/org/ol-bibtex hides /gnu/store/k3vqb6f4= ghi2v50zrzh3657dywfkyfc5-emacs-next-30.0.91-1.9a1c76b/share/emacs/30.0.91/l= isp/org/ol-bibtex /home/divya/.emacs.d/straight/build/org/ol-bbdb hides /gnu/store/k3vqb6f4gh= i2v50zrzh3657dywfkyfc5-emacs-next-30.0.91-1.9a1c76b/share/emacs/30.0.91/lis= p/org/ol-bbdb /home/divya/.emacs.d/straight/build/org/oc hides /gnu/store/k3vqb6f4ghi2v50= zrzh3657dywfkyfc5-emacs-next-30.0.91-1.9a1c76b/share/emacs/30.0.91/lisp/org= /oc /home/divya/.emacs.d/straight/build/org/oc-csl hides /gnu/store/k3vqb6f4ghi= 2v50zrzh3657dywfkyfc5-emacs-next-30.0.91-1.9a1c76b/share/emacs/30.0.91/lisp= /org/oc-csl /home/divya/.emacs.d/straight/build/org/oc-biblatex hides /gnu/store/k3vqb6= f4ghi2v50zrzh3657dywfkyfc5-emacs-next-30.0.91-1.9a1c76b/share/emacs/30.0.91= /lisp/org/oc-biblatex /home/divya/.emacs.d/straight/build/org/oc-basic hides /gnu/store/k3vqb6f4g= hi2v50zrzh3657dywfkyfc5-emacs-next-30.0.91-1.9a1c76b/share/emacs/30.0.91/li= sp/org/oc-basic /home/divya/.emacs.d/straight/build/org/ob-tangle hides /gnu/store/k3vqb6f4= ghi2v50zrzh3657dywfkyfc5-emacs-next-30.0.91-1.9a1c76b/share/emacs/30.0.91/l= isp/org/ob-tangle /home/divya/.emacs.d/straight/build/org/ob-sql hides /gnu/store/k3vqb6f4ghi= 2v50zrzh3657dywfkyfc5-emacs-next-30.0.91-1.9a1c76b/share/emacs/30.0.91/lisp= /org/ob-sql /home/divya/.emacs.d/straight/build/org/ob-shell hides /gnu/store/k3vqb6f4g= hi2v50zrzh3657dywfkyfc5-emacs-next-30.0.91-1.9a1c76b/share/emacs/30.0.91/li= sp/org/ob-shell /home/divya/.emacs.d/straight/build/org/ob-ruby hides /gnu/store/k3vqb6f4gh= i2v50zrzh3657dywfkyfc5-emacs-next-30.0.91-1.9a1c76b/share/emacs/30.0.91/lis= p/org/ob-ruby /home/divya/.emacs.d/straight/build/org/ob-python hides /gnu/store/k3vqb6f4= ghi2v50zrzh3657dywfkyfc5-emacs-next-30.0.91-1.9a1c76b/share/emacs/30.0.91/l= isp/org/ob-python /home/divya/.emacs.d/straight/build/org/ob-octave hides /gnu/store/k3vqb6f4= ghi2v50zrzh3657dywfkyfc5-emacs-next-30.0.91-1.9a1c76b/share/emacs/30.0.91/l= isp/org/ob-octave /home/divya/.emacs.d/straight/build/org/ob-lua hides /gnu/store/k3vqb6f4ghi= 2v50zrzh3657dywfkyfc5-emacs-next-30.0.91-1.9a1c76b/share/emacs/30.0.91/lisp= /org/ob-lua /home/divya/.emacs.d/straight/build/org/ob-lilypond hides /gnu/store/k3vqb6= f4ghi2v50zrzh3657dywfkyfc5-emacs-next-30.0.91-1.9a1c76b/share/emacs/30.0.91= /lisp/org/ob-lilypond /home/divya/.emacs.d/straight/build/org/ob-latex hides /gnu/store/k3vqb6f4g= hi2v50zrzh3657dywfkyfc5-emacs-next-30.0.91-1.9a1c76b/share/emacs/30.0.91/li= sp/org/ob-latex /home/divya/.emacs.d/straight/build/org/ob-julia hides /gnu/store/k3vqb6f4g= hi2v50zrzh3657dywfkyfc5-emacs-next-30.0.91-1.9a1c76b/share/emacs/30.0.91/li= sp/org/ob-julia /home/divya/.emacs.d/straight/build/org/ob-java hides /gnu/store/k3vqb6f4gh= i2v50zrzh3657dywfkyfc5-emacs-next-30.0.91-1.9a1c76b/share/emacs/30.0.91/lis= p/org/ob-java /home/divya/.emacs.d/straight/build/org/ob-haskell hides /gnu/store/k3vqb6f= 4ghi2v50zrzh3657dywfkyfc5-emacs-next-30.0.91-1.9a1c76b/share/emacs/30.0.91/= lisp/org/ob-haskell /home/divya/.emacs.d/straight/build/org/ob-gnuplot hides /gnu/store/k3vqb6f= 4ghi2v50zrzh3657dywfkyfc5-emacs-next-30.0.91-1.9a1c76b/share/emacs/30.0.91/= lisp/org/ob-gnuplot /home/divya/.emacs.d/straight/build/org/ob-exp hides /gnu/store/k3vqb6f4ghi= 2v50zrzh3657dywfkyfc5-emacs-next-30.0.91-1.9a1c76b/share/emacs/30.0.91/lisp= /org/ob-exp /home/divya/.emacs.d/straight/build/org/ob-core hides /gnu/store/k3vqb6f4gh= i2v50zrzh3657dywfkyfc5-emacs-next-30.0.91-1.9a1c76b/share/emacs/30.0.91/lis= p/org/ob-core /home/divya/.emacs.d/straight/build/org/ob-comint hides /gnu/store/k3vqb6f4= ghi2v50zrzh3657dywfkyfc5-emacs-next-30.0.91-1.9a1c76b/share/emacs/30.0.91/l= isp/org/ob-comint /home/divya/.emacs.d/straight/build/org/ob-clojure hides /gnu/store/k3vqb6f= 4ghi2v50zrzh3657dywfkyfc5-emacs-next-30.0.91-1.9a1c76b/share/emacs/30.0.91/= lisp/org/ob-clojure /home/divya/.emacs.d/straight/build/org/ob-R hides /gnu/store/k3vqb6f4ghi2v= 50zrzh3657dywfkyfc5-emacs-next-30.0.91-1.9a1c76b/share/emacs/30.0.91/lisp/o= rg/ob-R /home/divya/.emacs.d/straight/build/org/ob-C hides /gnu/store/k3vqb6f4ghi2v= 50zrzh3657dywfkyfc5-emacs-next-30.0.91-1.9a1c76b/share/emacs/30.0.91/lisp/o= rg/ob-C /home/divya/.emacs.d/straight/build/org/org-version hides /gnu/store/k3vqb6= f4ghi2v50zrzh3657dywfkyfc5-emacs-next-30.0.91-1.9a1c76b/share/emacs/30.0.91= /lisp/org/org-version /home/divya/.emacs.d/straight/build/org/org-tempo hides /gnu/store/k3vqb6f4= ghi2v50zrzh3657dywfkyfc5-emacs-next-30.0.91-1.9a1c76b/share/emacs/30.0.91/l= isp/org/org-tempo /home/divya/.emacs.d/straight/build/org/org-attach-git hides /gnu/store/k3v= qb6f4ghi2v50zrzh3657dywfkyfc5-emacs-next-30.0.91-1.9a1c76b/share/emacs/30.0= .91/lisp/org/org-attach-git /home/divya/.emacs.d/straight/build/org/ol-w3m hides /gnu/store/k3vqb6f4ghi= 2v50zrzh3657dywfkyfc5-emacs-next-30.0.91-1.9a1c76b/share/emacs/30.0.91/lisp= /org/ol-w3m /home/divya/.emacs.d/straight/build/org/ol-rmail hides /gnu/store/k3vqb6f4g= hi2v50zrzh3657dywfkyfc5-emacs-next-30.0.91-1.9a1c76b/share/emacs/30.0.91/li= sp/org/ol-rmail /home/divya/.emacs.d/straight/build/org/ol-mhe hides /gnu/store/k3vqb6f4ghi= 2v50zrzh3657dywfkyfc5-emacs-next-30.0.91-1.9a1c76b/share/emacs/30.0.91/lisp= /org/ol-mhe /home/divya/.emacs.d/straight/build/org/ol-man hides /gnu/store/k3vqb6f4ghi= 2v50zrzh3657dywfkyfc5-emacs-next-30.0.91-1.9a1c76b/share/emacs/30.0.91/lisp= /org/ol-man /home/divya/.emacs.d/straight/build/org/ol-irc hides /gnu/store/k3vqb6f4ghi= 2v50zrzh3657dywfkyfc5-emacs-next-30.0.91-1.9a1c76b/share/emacs/30.0.91/lisp= /org/ol-irc /home/divya/.emacs.d/straight/build/org/ol-info hides /gnu/store/k3vqb6f4gh= i2v50zrzh3657dywfkyfc5-emacs-next-30.0.91-1.9a1c76b/share/emacs/30.0.91/lis= p/org/ol-info /home/divya/.emacs.d/straight/build/org/ol-gnus hides /gnu/store/k3vqb6f4gh= i2v50zrzh3657dywfkyfc5-emacs-next-30.0.91-1.9a1c76b/share/emacs/30.0.91/lis= p/org/ol-gnus /home/divya/.emacs.d/straight/build/org/ol-eww hides /gnu/store/k3vqb6f4ghi= 2v50zrzh3657dywfkyfc5-emacs-next-30.0.91-1.9a1c76b/share/emacs/30.0.91/lisp= /org/ol-eww /home/divya/.emacs.d/straight/build/org/ol-eshell hides /gnu/store/k3vqb6f4= ghi2v50zrzh3657dywfkyfc5-emacs-next-30.0.91-1.9a1c76b/share/emacs/30.0.91/l= isp/org/ol-eshell /home/divya/.emacs.d/straight/build/org/ol-doi hides /gnu/store/k3vqb6f4ghi= 2v50zrzh3657dywfkyfc5-emacs-next-30.0.91-1.9a1c76b/share/emacs/30.0.91/lisp= /org/ol-doi /home/divya/.emacs.d/straight/build/org/ol-docview hides /gnu/store/k3vqb6f= 4ghi2v50zrzh3657dywfkyfc5-emacs-next-30.0.91-1.9a1c76b/share/emacs/30.0.91/= lisp/org/ol-docview /home/divya/.emacs.d/straight/build/org/oc-natbib hides /gnu/store/k3vqb6f4= ghi2v50zrzh3657dywfkyfc5-emacs-next-30.0.91-1.9a1c76b/share/emacs/30.0.91/l= isp/org/oc-natbib /home/divya/.emacs.d/straight/build/org/oc-bibtex hides /gnu/store/k3vqb6f4= ghi2v50zrzh3657dywfkyfc5-emacs-next-30.0.91-1.9a1c76b/share/emacs/30.0.91/l= isp/org/oc-bibtex /home/divya/.emacs.d/straight/build/org/ob hides /gnu/store/k3vqb6f4ghi2v50= zrzh3657dywfkyfc5-emacs-next-30.0.91-1.9a1c76b/share/emacs/30.0.91/lisp/org= /ob /home/divya/.emacs.d/straight/build/org/ob-table hides /gnu/store/k3vqb6f4g= hi2v50zrzh3657dywfkyfc5-emacs-next-30.0.91-1.9a1c76b/share/emacs/30.0.91/li= sp/org/ob-table /home/divya/.emacs.d/straight/build/org/ob-sqlite hides /gnu/store/k3vqb6f4= ghi2v50zrzh3657dywfkyfc5-emacs-next-30.0.91-1.9a1c76b/share/emacs/30.0.91/l= isp/org/ob-sqlite /home/divya/.emacs.d/straight/build/org/ob-sed hides /gnu/store/k3vqb6f4ghi= 2v50zrzh3657dywfkyfc5-emacs-next-30.0.91-1.9a1c76b/share/emacs/30.0.91/lisp= /org/ob-sed /home/divya/.emacs.d/straight/build/org/ob-screen hides /gnu/store/k3vqb6f4= ghi2v50zrzh3657dywfkyfc5-emacs-next-30.0.91-1.9a1c76b/share/emacs/30.0.91/l= isp/org/ob-screen /home/divya/.emacs.d/straight/build/org/ob-scheme hides /gnu/store/k3vqb6f4= ghi2v50zrzh3657dywfkyfc5-emacs-next-30.0.91-1.9a1c76b/share/emacs/30.0.91/l= isp/org/ob-scheme /home/divya/.emacs.d/straight/build/org/ob-sass hides /gnu/store/k3vqb6f4gh= i2v50zrzh3657dywfkyfc5-emacs-next-30.0.91-1.9a1c76b/share/emacs/30.0.91/lis= p/org/ob-sass /home/divya/.emacs.d/straight/build/org/ob-ref hides /gnu/store/k3vqb6f4ghi= 2v50zrzh3657dywfkyfc5-emacs-next-30.0.91-1.9a1c76b/share/emacs/30.0.91/lisp= /org/ob-ref /home/divya/.emacs.d/straight/build/org/ob-processing hides /gnu/store/k3vq= b6f4ghi2v50zrzh3657dywfkyfc5-emacs-next-30.0.91-1.9a1c76b/share/emacs/30.0.= 91/lisp/org/ob-processing /home/divya/.emacs.d/straight/build/org/ob-plantuml hides /gnu/store/k3vqb6= f4ghi2v50zrzh3657dywfkyfc5-emacs-next-30.0.91-1.9a1c76b/share/emacs/30.0.91= /lisp/org/ob-plantuml /home/divya/.emacs.d/straight/build/org/ob-perl hides /gnu/store/k3vqb6f4gh= i2v50zrzh3657dywfkyfc5-emacs-next-30.0.91-1.9a1c76b/share/emacs/30.0.91/lis= p/org/ob-perl /home/divya/.emacs.d/straight/build/org/ob-org hides /gnu/store/k3vqb6f4ghi= 2v50zrzh3657dywfkyfc5-emacs-next-30.0.91-1.9a1c76b/share/emacs/30.0.91/lisp= /org/ob-org /home/divya/.emacs.d/straight/build/org/ob-ocaml hides /gnu/store/k3vqb6f4g= hi2v50zrzh3657dywfkyfc5-emacs-next-30.0.91-1.9a1c76b/share/emacs/30.0.91/li= sp/org/ob-ocaml /home/divya/.emacs.d/straight/build/org/ob-maxima hides /gnu/store/k3vqb6f4= ghi2v50zrzh3657dywfkyfc5-emacs-next-30.0.91-1.9a1c76b/share/emacs/30.0.91/l= isp/org/ob-maxima /home/divya/.emacs.d/straight/build/org/ob-matlab hides /gnu/store/k3vqb6f4= ghi2v50zrzh3657dywfkyfc5-emacs-next-30.0.91-1.9a1c76b/share/emacs/30.0.91/l= isp/org/ob-matlab /home/divya/.emacs.d/straight/build/org/ob-makefile hides /gnu/store/k3vqb6= f4ghi2v50zrzh3657dywfkyfc5-emacs-next-30.0.91-1.9a1c76b/share/emacs/30.0.91= /lisp/org/ob-makefile /home/divya/.emacs.d/straight/build/org/ob-lob hides /gnu/store/k3vqb6f4ghi= 2v50zrzh3657dywfkyfc5-emacs-next-30.0.91-1.9a1c76b/share/emacs/30.0.91/lisp= /org/ob-lob /home/divya/.emacs.d/straight/build/org/ob-lisp hides /gnu/store/k3vqb6f4gh= i2v50zrzh3657dywfkyfc5-emacs-next-30.0.91-1.9a1c76b/share/emacs/30.0.91/lis= p/org/ob-lisp /home/divya/.emacs.d/straight/build/org/ob-js hides /gnu/store/k3vqb6f4ghi2= v50zrzh3657dywfkyfc5-emacs-next-30.0.91-1.9a1c76b/share/emacs/30.0.91/lisp/= org/ob-js /home/divya/.emacs.d/straight/build/org/ob-groovy hides /gnu/store/k3vqb6f4= ghi2v50zrzh3657dywfkyfc5-emacs-next-30.0.91-1.9a1c76b/share/emacs/30.0.91/l= isp/org/ob-groovy /home/divya/.emacs.d/straight/build/org/ob-fortran hides /gnu/store/k3vqb6f= 4ghi2v50zrzh3657dywfkyfc5-emacs-next-30.0.91-1.9a1c76b/share/emacs/30.0.91/= lisp/org/ob-fortran /home/divya/.emacs.d/straight/build/org/ob-forth hides /gnu/store/k3vqb6f4g= hi2v50zrzh3657dywfkyfc5-emacs-next-30.0.91-1.9a1c76b/share/emacs/30.0.91/li= sp/org/ob-forth /home/divya/.emacs.d/straight/build/org/ob-eval hides /gnu/store/k3vqb6f4gh= i2v50zrzh3657dywfkyfc5-emacs-next-30.0.91-1.9a1c76b/share/emacs/30.0.91/lis= p/org/ob-eval /home/divya/.emacs.d/straight/build/org/ob-eshell hides /gnu/store/k3vqb6f4= ghi2v50zrzh3657dywfkyfc5-emacs-next-30.0.91-1.9a1c76b/share/emacs/30.0.91/l= isp/org/ob-eshell /home/divya/.emacs.d/straight/build/org/ob-emacs-lisp hides /gnu/store/k3vq= b6f4ghi2v50zrzh3657dywfkyfc5-emacs-next-30.0.91-1.9a1c76b/share/emacs/30.0.= 91/lisp/org/ob-emacs-lisp /home/divya/.emacs.d/straight/build/org/ob-dot hides /gnu/store/k3vqb6f4ghi= 2v50zrzh3657dywfkyfc5-emacs-next-30.0.91-1.9a1c76b/share/emacs/30.0.91/lisp= /org/ob-dot /home/divya/.emacs.d/straight/build/org/ob-ditaa hides /gnu/store/k3vqb6f4g= hi2v50zrzh3657dywfkyfc5-emacs-next-30.0.91-1.9a1c76b/share/emacs/30.0.91/li= sp/org/ob-ditaa /home/divya/.emacs.d/straight/build/org/ob-css hides /gnu/store/k3vqb6f4ghi= 2v50zrzh3657dywfkyfc5-emacs-next-30.0.91-1.9a1c76b/share/emacs/30.0.91/lisp= /org/ob-css /home/divya/.emacs.d/straight/build/org/ob-calc hides /gnu/store/k3vqb6f4gh= i2v50zrzh3657dywfkyfc5-emacs-next-30.0.91-1.9a1c76b/share/emacs/30.0.91/lis= p/org/ob-calc /home/divya/.emacs.d/straight/build/org/ob-awk hides /gnu/store/k3vqb6f4ghi= 2v50zrzh3657dywfkyfc5-emacs-next-30.0.91-1.9a1c76b/share/emacs/30.0.91/lisp= /org/ob-awk /home/divya/.emacs.d/straight/build/soap-client/soap-inspect hides /gnu/sto= re/k3vqb6f4ghi2v50zrzh3657dywfkyfc5-emacs-next-30.0.91-1.9a1c76b/share/emac= s/30.0.91/lisp/net/soap-inspect /home/divya/.emacs.d/straight/build/soap-client/soap-client hides /gnu/stor= e/k3vqb6f4ghi2v50zrzh3657dywfkyfc5-emacs-next-30.0.91-1.9a1c76b/share/emacs= /30.0.91/lisp/net/soap-client /home/divya/.emacs.d/straight/build/seq/seq hides /gnu/store/k3vqb6f4ghi2v5= 0zrzh3657dywfkyfc5-emacs-next-30.0.91-1.9a1c76b/share/emacs/30.0.91/lisp/em= acs-lisp/seq /home/divya/.emacs.d/straight/build/map/map hides /gnu/store/k3vqb6f4ghi2v5= 0zrzh3657dywfkyfc5-emacs-next-30.0.91-1.9a1c76b/share/emacs/30.0.91/lisp/em= acs-lisp/map /home/divya/.emacs.d/straight/build/let-alist/let-alist hides /gnu/store/k3= vqb6f4ghi2v50zrzh3657dywfkyfc5-emacs-next-30.0.91-1.9a1c76b/share/emacs/30.= 0.91/lisp/emacs-lisp/let-alist /home/divya/.emacs.d/straight/build/compat/compat hides /gnu/store/k3vqb6f4= ghi2v50zrzh3657dywfkyfc5-emacs-next-30.0.91-1.9a1c76b/share/emacs/30.0.91/l= isp/emacs-lisp/compat Features: (shadow sort mail-extr emacsbug org-archive oc-basic ox-odt rng-loc rng-uri rng-parse rng-match rng-pttrn nxml-parse nxml-ns nxml-enc xmltok nxml-util ox-latex ox-icalendar ox-html table ox-ascii ox-publish ox textsec uni-scripts idna-mapping ucs-normalize uni-confusable textsec-check url-cache debbugs-gnu add-log scheme-complete geiser-mode geiser-xref geiser-compile vc-hg vc-bzr vc-src vc-sccs vc-svn vc-cvs vc-rcs log-view pcvs-util all-the-icons-dired org-download async dirvish-yank dirvish-widgets erc-notify cus-start erc-desktop-notifications network-stream emojify apropos tar-mode arc-mode archive-mode ht erc-track erc-ring erc-netsplit erc-menu erc-match erc-list erc-goodies erc-imenu erc-pcomplete erc-button erc-fill erc-stamp erc-join erc erc-backend erc-networks erc-common erc-compat erc-loaddefs ef-dark-theme symbol-overlay paredit rainbow-delimiters org-indent tramp-cache time-stamp tramp-sh shortdoc gcmh gcmh-autoloads eshell-git-prompt eshell-git-prompt-autoloads shell-pop shell-pop-autoloads eat term/xterm xterm term disp-table ehelp eat-autoloads corfu-terminal-autoloads popon-autoloads corfu corfu-autoloads forge-autoloads yaml-autoloads ghub-autoloads treepy-autoloads closql-autoloads magit-autoloads skewer-mode cache-table js2-mode js c-ts-common skewer-mode-autoloads js2-mode-autoloads impatient-mode htmlize impatient-mode-autoloads htmlize-autoloads web-mode-autoloads hideshow helpful-autoloads elisp-refs scheme-complete-autoloads rainbow-delimiters-autoloads slime-autoloads macrostep-autoloads paren-face paren-face-autoloads paredit-autoloads pollen-mode pollen-mode-autoloads racket-mode-autoloads geiser-guile tramp trampver tramp-integration tramp-message tramp-compat tramp-loaddefs geiser-debug geiser-guile-autoloads geiser-chez geiser-chez-autoloads geiser-mit geiser-repl geiser-image geiser-capf geiser-doc geiser-menu geiser-autodoc info-look geiser-edit etags fileloop geiser-completion geiser-eval geiser-connection geiser-syntax scheme geiser-log geiser-popup view geiser-mit-autoloads forth-mode forth-spec forth-smie forth-syntax forth-mode-autoloads rust-mode-autoloads hs-lint haskell-mode-autoloads go-mode-autoloads eldoc-box-autoloads eglot external-completion jsonrpc xref seq-25 diff ert debug backtrace imenu rmsbolt rmsbolt-split rmsbolt-java disass rmsbolt-autoloads color-identifiers-mode color-identifiers-mode-autoloads symbol-overlay-autoloads extras ement ement-notifications ement-notify ement-room ewoc ement-lib ement-api ement-structs ement-macros plz dns ement-autoloads svg-lib-autoloads taxy-magit-section-autoloads taxy-autoloads plz-autoloads persist-autoloads hi-lock debbugs soap-client url-http url-auth url-gw nsm rng-xsd rng-dt rng-util xsd-regexp debbugs-compat debbugs-autoloads soap-client-autoloads password-store auth-source-pass with-editor with-editor-autoloads epa-file cl biblio biblio-download biblio-dissemin biblio-ieee biblio-hal biblio-dblp biblio-crossref biblio-arxiv timezone biblio-doi biblio-core let-alist ido biblio-autoloads biblio-core-autoloads ebib ebib-reading-list ebib-notes ebib-filters ebib-keywords ebib-utils ebib-db mule-util crm ebib-autoloads timeclock ess ess-utils ess-custom ess-autoloads elgrep-autoloads fzf fzf-autoloads edraw-org edraw-util edraw-msg el-easydraw-autoloads empv empv-autoloads emacs-everywhere server emacs-everywhere-autoloads sx sx-autoloads let-alist-autoloads markdown-mode-autoloads cal anki.el anki-editor-autoloads feed.el bookmarks books binder lisp-mnt binder-autoloads djvu djvu-autoloads nov-autoloads esxml-autoloads kv-autoloads org-noter-autoloads saveplace-pdf-view pdf-tools pdf-view pdf-cache pdf-info tq pdf-util pdf-macs dired.el consult-dir-autoloads dired-sidebar-autoloads dired-subtree-autoloads dired-hacks-utils-autoloads dired-rsync-autoloads dirvish-peek dirvish-side dirvish-subtree dirvish dirvish-autoloads fd-dired find-dired fd-dired-autoloads wdired dired+ image-dired image-dired-tags image-dired-external image-dired-util image-file image-converter bookmark+ bookmark+-key bookmark+-1 bookmark+-bmu bookmark+-lit bookmark+-mac dired-aux dired-x xenops-autoloads aio-autoloads yasnippet-autoloads cdlatex-autoloads auctex-autoloads tex-site flymake-proselint flymake flymake-proselint-autoloads langtool langtool-autoloads org-alert alert log4e notifications gntp org-alert-autoloads org-timeblock compat-macs org-timeblock-autoloads svg-autoloads cal-china lunar solar cal-dst cal-bahai cal-islam cal-hebrew holidays holiday-loaddefs vc-git diff-mode track-changes citar-capf citar citar-file citar-cache citar-format parsebib org-appear org-modern toc-org org-make-toc ol-eww eww url-queue mm-url ol-rmail ol-mhe ol-irc ol-info ol-gnus nnselect gnus-art mm-uu mml2015 mm-view mml-smime smime gnutls dig gnus-sum shr pixel-fill kinsoku url-file gnus-group gnus-undo gnus-start gnus-dbus dbus gnus-cloud nnimap nnmail mail-source utf7 nnoo parse-time gnus-spec gnus-int gnus-range message sendmail yank-media puny rfc822 mml mml-sec epa derived epg rfc6068 epg-config mm-decode mm-bodies mm-encode mail-parse rfc2231 rfc2047 rfc2045 ietf-drums mailabbrev gmm-utils mailheader gnus-win gnus nnheader gnus-util mail-utils range mm-util mail-prsvr ol-docview doc-view jka-compr image-mode exif dired dired-loaddefs ol-bibtex bibtex iso8601 ol-bbdb ol-w3m ol-doi org-link-doi pulse svg dom xml org-journal-autoloads appt diary-lib diary-loaddefs consult-org-roam consult-org-roam-buffer consult bookmark consult-org-roam-autoloads use-package-ensure rg files-x vc vc-dispatcher rg-info-hack rg-menu transient rg-ibuffer rg-result wgrep-rg wgrep rg-history rg-header ibuf-ext ibuffer ibuffer-loaddefs grep cus-edit cus-load rg-autoloads wgrep-autoloads org-roam-ui org-roam-dailies websocket bindat simple-httpd pp org-roam-ui-autoloads websocket-autoloads simple-httpd-autoloads org-roam-migrate org-roam-log org-roam-mode org-roam-capture org-roam-id org-roam-node org-roam-db emacsql-sqlite-builtin sqlite org-roam-utils org-roam-compat org-roam org-capture org-attach emacsql-sqlite emacsql-sqlite-common emacsql emacsql-compiler magit-section cursor-sensor org-roam-autoloads magit-section-autoloads emacsql-autoloads org-present-autoloads org-make-toc-autoloads toc-org-autoloads ob-sqlite ob-sql ob-gnuplot ob-shell shell ob-julia ob-lisp ob-scheme geiser-impl help-fns radix-tree geiser-custom geiser-base geiser ob-python python project ob-haskell ob-dot ob-latex ob-ditaa ob-org ob-C cc-mode cc-fonts cc-guess cc-menus cc-cmds cc-styles cc-align cc-engine cc-vars cc-defs ob-R org-tempo tempo org-modern-autoloads org-appear-autoloads citar-embark-autoloads citar-autoloads citeproc-autoloads string-inflection-autoloads queue-autoloads parsebib-autoloads org-ql peg ts org-habit org-agenda org-element org-persist xdg org-id org-refile org-element-ast inline avl-tree generator org-duration org ob ob-tangle ob-ref ob-lob ob-table ob-exp org-macro org-src sh-script smie treesit executable ob-comint org-pcomplete pcomplete org-list org-footnote org-faces org-entities time-date noutline outline ob-emacs-lisp ob-core ob-eval org-cycle org-table ol org-fold org-fold-core org-keys oc org-loaddefs find-func cal-menu calendar cal-loaddefs org-version org-compat org-macs format-spec org-ql-autoloads transient-autoloads peg-autoloads ov-autoloads org-super-agenda-autoloads ts-autoloads map-autoloads guix.el guix guix-autoloads edit-indirect-autoloads magit-popup-autoloads bui-autoloads geiser-autoloads project-autoloads xref-autoloads init winner transpose-frame-autoloads popper popper-autoloads ace-window-autoloads avy avy-autoloads buffers.el keys.el embark-consult-autoloads embark-autoloads expand-region-autoloads meow meow-tutor meow-cheatsheet meow-cheatsheet-layout meow-core meow-shims delsel meow-esc meow-command array meow-beacon meow-thing meow-visual pcase meow-keypad meow-helpers meow-util meow-keymap meow-face meow-var meow-autoloads undo-fu undo-fu-autoloads ui.el time org-download-autoloads async-autoloads justify-kp justify-kp-autoloads dimmer dimmer-autoloads solaire-mode face-remap solaire-mode-autoloads dashboard dashboard-widgets ffap dashboard-autoloads consult-autoloads orderless orderless-autoloads all-the-icons-completion all-the-icons-completion-autoloads marginalia marginalia-autoloads vertico vertico-autoloads writeroom-mode visual-fill-column writeroom-mode-autoloads visual-fill-column-autoloads which-key which-key-autoloads smartparens advice loadhist thingatpt smartparens-autoloads emojify-autoloads ht-autoloads unicode-fonts unicode-fonts-autoloads ucs-utils-autoloads font-utils-autoloads persistent-soft-autoloads list-utils-autoloads pcache-autoloads doom-modeline doom-modeline-segments doom-modeline-env doom-modeline-core comp comp-cstr warnings comp-run comp-common shrink-path rx f s dash nerd-icons nerd-icons-faces nerd-icons-data nerd-icons-data-mdicon nerd-icons-data-flicon nerd-icons-data-codicon nerd-icons-data-devicon nerd-icons-data-sucicon nerd-icons-data-wicon nerd-icons-data-faicon nerd-icons-data-powerline nerd-icons-data-octicon nerd-icons-data-pomicon nerd-icons-data-ipsicon compat doom-modeline-autoloads shrink-path-autoloads f-autoloads dash-autoloads s-autoloads nerd-icons-autoloads seq-autoloads alert-autoloads finder-inf log4e-autoloads gntp-autoloads rainbow-mode color rainbow-mode-autoloads autorevert filenotify saveplace savehist recentf tree-widget wid-edit hl-line ef-themes ef-themes-autoloads info display-line-numbers edmacro kmacro crux-autoloads use-package-bind-key bind-key easy-mmode all-the-icons-dired-autoloads all-the-icons all-the-icons-faces data-material data-weathericons data-octicons data-fileicons data-faicons data-alltheicons all-the-icons-autoloads use-package-core mu4e-autoloads zenburn-theme-autoloads compat-autoloads jinx-autoloads saveplace-pdf-view-autoloads tablist-autoloads pdf-tools-autoloads guix-emacs use-package-autoloads bind-key-autoloads straight-autoloads cl-extra help-mode straight package browse-url url url-proxy url-privacy url-expand url-methods url-history url-cookie generate-lisp-file url-domsuf url-util mailcap url-handlers url-parse auth-source cl-seq eieio eieio-core cl-macs icons password-cache json map byte-opt gv url-vars cl-loaddefs cl-lib compile text-property-search comint subr-x ansi-osc ansi-color ring bytecomp byte-compile rmc iso-transl tooltip cconv eldoc paren electric uniquify ediff-hook vc-hooks lisp-float-type elisp-mode mwheel term/x-win x-win term/common-win x-dnd touch-screen tool-bar dnd fontset image regexp-opt fringe tabulated-list replace newcomment text-mode lisp-mode prog-mode register page tab-bar menu-bar rfn-eshadow isearch easymenu timer select scroll-bar mouse jit-lock font-lock syntax font-core term/tty-colors frame minibuffer nadvice seq simple cl-generic indonesian philippine cham georgian utf-8-lang misc-lang vietnamese tibetan thai tai-viet lao korean japanese eucjp-ms cp51932 hebrew greek romanian slovak czech european ethiopic indian cyrillic chinese composite emoji-zwj charscript charprop case-table epa-hook jka-cmpr-hook help abbrev obarray oclosure cl-preloaded button loaddefs theme-loaddefs faces cus-face macroexp files window text-properties overlay sha1 md5 base64 format env code-pages mule custom widget keymap hashtable-print-readable backquote threads dbusbind inotify lcms2 dynamic-setting system-font-setting font-render-setting cairo gtk x-toolkit xinput2 x multi-tty move-toolbar make-network-process native-compile emacs) Memory information: ((conses 16 1569808 2032077) (symbols 48 77987 11) (strings 32 393425 106016) (string-bytes 1 17866520) (vectors 16 167276) (vector-slots 8 2824657 579009) (floats 8 2970 25080) (intervals 56 20041 6581) (buffers 992 63)) --=20 Divya Ranjan, Philosophy, Mathematics, Libre Software. From debbugs-submit-bounces@debbugs.gnu.org Thu Nov 14 03:44:48 2024 Received: (at 74281) by debbugs.gnu.org; 14 Nov 2024 08:44:48 +0000 Received: from localhost ([127.0.0.1]:44939 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1tBVT5-0001hZ-Nl for submit@debbugs.gnu.org; Thu, 14 Nov 2024 03:44:48 -0500 Received: from eggs.gnu.org ([209.51.188.92]:44372) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1tBVT3-0001hL-Tp for 74281@debbugs.gnu.org; Thu, 14 Nov 2024 03:44:46 -0500 Received: from fencepost.gnu.org ([2001:470:142:3::e]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1tBVSw-0006bD-Ft; Thu, 14 Nov 2024 03:44:38 -0500 DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=gnu.org; s=fencepost-gnu-org; h=MIME-version:References:Subject:In-Reply-To:To:From: Date; bh=oucMvSyq0rgwGsBb91xaujpdlb3hWEiclHQmu0av3wQ=; b=UP0C8I0xjqRWL8a/FKhT Q1mC4jrJ1bhdXXLaLi61hPyg216FRHi+T6RH9CGnN7V2XdZ5zoYqH2fP3JvXg7B8/WJO/A5mTC0Zj gwlk+kUMa+MRhK1Kdd3eBTnHKkeX0mOErtCO1rJihILERFptJNmZ2+i1+fh9GtcBvAee6l38bWNgV vMJvG8uS+5Wn+Rn5tY9fqRkQaKs3Y2rJNwwILNy1dd7SyQpP2FTFvxDCje0qqUGcbVn4BVlmM2u6Y W/B48W6pqk4kOEMlpk/rKcdybyaBSZ7UCBP4iAmiSkn2mSnNxoporzPI3Eq4s9UU90hJtGZ9Wp+Fo sk4ZYQcjfHXPWg==; Date: Thu, 14 Nov 2024 10:44:27 +0200 Message-Id: <86zfm2jjbo.fsf@gnu.org> From: Eli Zaretskii To: Divya Ranjan , Stefan Monnier In-Reply-To: <8734k0cs1u.fsf@subvertising.org> (bug-gnu-emacs@gnu.org) Subject: Re: bug#74281: 30.0.91; font-lock mode hangs on scrolling large Scheme file References: <8734k0cs1u.fsf@subvertising.org> MIME-version: 1.0 Content-type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Spam-Score: -2.3 (--) X-Debbugs-Envelope-To: 74281 Cc: 74281@debbugs.gnu.org X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -3.3 (---) > Date: Sat, 09 Nov 2024 16:04:13 +0000 > From: Divya Ranjan via "Bug reports for GNU Emacs, > the Swiss army knife of text editors" > > > 1. In emacs -Q, open a fairly big Scheme file (> 70k) and try to move in > the file with C-n, C-f or mouse scrolling. It sverely lags for several > seconds, doesn’t even respond to C-g. I can only reproduce this with C-p when moving from the end of the file. C-n and C-f are instantaneous here, even though this is an unoptimized build of Emacs 30. > 2. Toggle font-lock-mode off through M-x, then try to scroll. It works > as expected, no serious lags. > > 3. Running the profiler also shows font-lock as the culprit. The profile I measured is below. It seems like the bottleneck is parse-partial-sexp, which means the syntax table scheme-mode-syntax-table might be the immediate suspect. > This makes working on big projects, in my case the source code of GNU > Guix distribution an impossible situation. I haven’t tried setting up > (Guile) Scheme with Tree-Sitter, but shouldn’t simple > syntax-highlighting be not a serious problem? > > To try a big Scheme file and reproduce this, open tex.scm in > gnu/packages/tex.scm in Guix source tree: > > https://git.savannah.gnu.org/cgit/guix.git Stefan, what tools do we have to investigate slowness related to parse-partial-sexp? Or maybe you have suggestions for how to speed up font-lock in this case? Here's the profile I get while moving with C-p through the above file: 1151 66% - ... 1151 66% - command-execute 1151 66% - call-interactively 1151 66% - funcall-interactively 1151 66% - previous-line 1151 66% - line-move 798 45% - line-pixel-height 798 45% - jit-lock-function 798 45% - jit-lock-fontify-now 798 45% - jit-lock--run-functions 798 45% - run-hook-wrapped 798 45% - # 798 45% - font-lock-fontify-region 798 45% - font-lock-default-fontify-region 798 45% - font-lock-fontify-syntactically-region 798 45% - font-lock-default-fontify-syntactically 798 45% parse-partial-sexp 353 20% - line-move-visual 353 20% - vertical-motion 353 20% - jit-lock-function 353 20% - jit-lock-fontify-now 353 20% - jit-lock--run-functions 353 20% - run-hook-wrapped 353 20% - # 353 20% - font-lock-fontify-region 353 20% - font-lock-default-fontify-region 353 20% - font-lock-fontify-syntactically-region 353 20% - font-lock-default-fontify-syntactically 353 20% parse-partial-sexp 585 33% - redisplay_internal (C function) 577 33% - jit-lock-function 577 33% - jit-lock-fontify-now 577 33% - jit-lock--run-functions 577 33% - run-hook-wrapped 577 33% - # 577 33% - font-lock-fontify-region 577 33% - font-lock-default-fontify-region 577 33% - font-lock-fontify-syntactically-region 577 33% - font-lock-default-fontify-syntactically 577 33% parse-partial-sexp 6 0% Automatic GC From debbugs-submit-bounces@debbugs.gnu.org Thu Nov 14 04:32:32 2024 Received: (at 74281) by debbugs.gnu.org; 14 Nov 2024 09:32:32 +0000 Received: from localhost ([127.0.0.1]:45056 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1tBWDI-000458-7J for submit@debbugs.gnu.org; Thu, 14 Nov 2024 04:32:32 -0500 Received: from devianza.investici.org ([198.167.222.108]:46129) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1tBWDG-00044x-Ef for 74281@debbugs.gnu.org; Thu, 14 Nov 2024 04:32:31 -0500 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=subvertising.org; s=stigmate; t=1731576742; bh=4ULopup4dfAzjr3ehLFpqTgCgdpKqRBecI8lo2E6B+Q=; h=From:To:Cc:Subject:In-Reply-To:References:Date:From; b=iuRWrUI9EUBhnP2tIc3QVXf74WLMAKXxTjYAe6lbSGxtUugFuOnmiZiAS5X85vC5d D4OIav/4qylRi0nsCOuyDoRAr1Zm/DEsaTFp0GnqQybM9ZksRrQmegfpIQQFuvc+qp Yt+RmsMUnrfG31DRXn6rHKNFF/z7XIBpxsmNSUS0= Received: from mx2.investici.org (unknown [127.0.0.1]) by devianza.investici.org (Postfix) with ESMTP id 4Xpw0k3Gb7z6vH0; Thu, 14 Nov 2024 09:32:22 +0000 (UTC) Received: from [198.167.222.108] (mx2.investici.org [198.167.222.108]) (Authenticated sender: divya@subvertising.org) by localhost (Postfix) with ESMTPSA id 4Xpw0j41HKz6v8q; Thu, 14 Nov 2024 09:32:21 +0000 (UTC) From: Divya Ranjan To: Eli Zaretskii Subject: Re: bug#74281: 30.0.91; font-lock mode hangs on scrolling large Scheme file In-Reply-To: <86zfm2jjbo.fsf@gnu.org> (Eli Zaretskii's message of "Thu, 14 Nov 2024 10:44:27 +0200") References: <8734k0cs1u.fsf@subvertising.org> <86zfm2jjbo.fsf@gnu.org> Date: Thu, 14 Nov 2024 09:32:12 +0000 Message-ID: <87frnu2mar.fsf@subvertising.org> User-Agent: Gnus/5.13 (Gnus v5.13) MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: quoted-printable X-Spam-Score: -0.7 (/) X-Debbugs-Envelope-To: 74281 Cc: Stefan Monnier , 74281@debbugs.gnu.org X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -1.7 (-) Hello, Eli Eli Zaretskii writes: >> Date: Sat, 09 Nov 2024 16:04:13 +0000 >> From: Divya Ranjan via "Bug reports for GNU Emacs, >> the Swiss army knife of text editors" >>=20 >>=20 >> 1. In emacs -Q, open a fairly big Scheme file (> 70k) and try to move in >> the file with C-n, C-f or mouse scrolling. It sverely lags for several >> seconds, doesn=E2=80=99t even respond to C-g. > > I can only reproduce this with C-p when moving from the end of the > file. C-n and C-f are instantaneous here, even though this is an > unoptimized build of Emacs 30. I see, well its the latest build of emacs on GNU Guix, so yeah. Which lacki= ng features in particular do you think might be causing this? Regards, --=20 Divya Ranjan, Philosophy, Mathematics, Libre Software. From debbugs-submit-bounces@debbugs.gnu.org Thu Nov 14 05:06:54 2024 Received: (at 74281) by debbugs.gnu.org; 14 Nov 2024 10:06:54 +0000 Received: from localhost ([127.0.0.1]:45142 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1tBWkX-0005lB-MI for submit@debbugs.gnu.org; Thu, 14 Nov 2024 05:06:53 -0500 Received: from eggs.gnu.org ([209.51.188.92]:46986) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1tBWkV-0005ku-4p for 74281@debbugs.gnu.org; Thu, 14 Nov 2024 05:06:51 -0500 Received: from fencepost.gnu.org ([2001:470:142:3::e]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1tBWkP-0008Pv-Mb; Thu, 14 Nov 2024 05:06:45 -0500 DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=gnu.org; s=fencepost-gnu-org; h=MIME-version:References:Subject:In-Reply-To:To:From: Date; bh=aH5y4tX+hLIjEOJgz1b7lzLkabW8SSnJUG23akVSonA=; b=SvAfkhuM6mVJNGWuNvWT hEy6YwgVJLTDBiyMVYdFo2knyO3Btb6TTidVNZTtu8gByYDNgJgot+tWZyn0conoJkUI7a2+rllu2 /wMOs/B4rmwwhHHGF3p0+KrzpJSXZubR9vRzdhd+mkrgLejx6a7QlbED5IY9pCtpyqE5PzxcOzNpl J1eogmQGMC3Kv5SNW7moLsfA97d8cyoRN+Sf0DUkip2YZ2zk4IMkZtNk/d7VWpia5Uqyq5JDzuauz SIUzj8tyY9nWI1mPB33YqJobSPRmPsMZJIT9UHMB6fdrk+LDgfaGv2/AKRLUaR/cykLscQuRFCvLK CsLqpmnpgRXngQ==; Date: Thu, 14 Nov 2024 12:06:41 +0200 Message-Id: <86ldxmjfim.fsf@gnu.org> From: Eli Zaretskii To: Divya Ranjan In-Reply-To: <87frnu2mar.fsf@subvertising.org> (message from Divya Ranjan on Thu, 14 Nov 2024 09:32:12 +0000) Subject: Re: bug#74281: 30.0.91; font-lock mode hangs on scrolling large Scheme file References: <8734k0cs1u.fsf@subvertising.org> <86zfm2jjbo.fsf@gnu.org> <87frnu2mar.fsf@subvertising.org> MIME-version: 1.0 Content-type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Spam-Score: -2.3 (--) X-Debbugs-Envelope-To: 74281 Cc: monnier@iro.umontreal.ca, 74281@debbugs.gnu.org X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -3.3 (---) > From: Divya Ranjan > Cc: Stefan Monnier , 74281@debbugs.gnu.org > Date: Thu, 14 Nov 2024 09:32:12 +0000 > > Hello, Eli > > Eli Zaretskii writes: > > >> Date: Sat, 09 Nov 2024 16:04:13 +0000 > >> From: Divya Ranjan via "Bug reports for GNU Emacs, > >> the Swiss army knife of text editors" > >> > >> > >> 1. In emacs -Q, open a fairly big Scheme file (> 70k) and try to move in > >> the file with C-n, C-f or mouse scrolling. It sverely lags for several > >> seconds, doesn’t even respond to C-g. > > > > I can only reproduce this with C-p when moving from the end of the > > file. C-n and C-f are instantaneous here, even though this is an > > unoptimized build of Emacs 30. > > I see, well its the latest build of emacs on GNU Guix, so yeah. Which lacking features in particular do you think might be causing this? I don't understand the question: I thought I pointed at the possible cause by mentioning syntax-directed font lock? From debbugs-submit-bounces@debbugs.gnu.org Thu Nov 14 06:10:00 2024 Received: (at submit) by debbugs.gnu.org; 14 Nov 2024 11:10:00 +0000 Received: from localhost ([127.0.0.1]:45256 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1tBXjc-0000FX-8v for submit@debbugs.gnu.org; Thu, 14 Nov 2024 06:10:00 -0500 Received: from lists.gnu.org ([209.51.188.17]:51580) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1tBXjZ-0000FM-FD for submit@debbugs.gnu.org; Thu, 14 Nov 2024 06:09:57 -0500 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1tBXjY-0006sT-Pt for bug-gnu-emacs@gnu.org; Thu, 14 Nov 2024 06:09:57 -0500 Received: from devianza.investici.org ([198.167.222.108]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1tBXjX-0001dL-4k; Thu, 14 Nov 2024 06:09:56 -0500 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=subvertising.org; s=stigmate; t=1731582592; bh=CvyfPDp1nkxwpwnrv5UMuiozo/sjNDePW6kyqhpMZWw=; h=Date:From:To:CC:Subject:In-Reply-To:References:From; b=mXZVCdrpP0QoLhZDRx/tIhldicQeZdJ2d1pXWuKthOIcG3mZEGbCK4a5mre0yg7v3 rec2Zs5YtTHP1myAGvMs2dDmxAvkBT3iX9VlZCTQ94v14eHU7NQg+R2f1l9XOPbVJQ /8RgvrnVgk3ZRcwcpr8KUJnWhGAd7nvktfU9k3nA= Received: from mx2.investici.org (unknown [127.0.0.1]) by devianza.investici.org (Postfix) with ESMTP id 4Xpy9D6Jc2z6vFd; Thu, 14 Nov 2024 11:09:52 +0000 (UTC) Received: from [198.167.222.108] (mx2.investici.org [198.167.222.108]) (Authenticated sender: divya@subvertising.org) by localhost (Postfix) with ESMTPSA id 4Xpy9D0ybTz6v2Q; Thu, 14 Nov 2024 11:09:51 +0000 (UTC) Date: Thu, 14 Nov 2024 11:09:41 +0000 From: Divya Ranjan To: bug-gnu-emacs@gnu.org, Eli Zaretskii Subject: =?US-ASCII?Q?Re=3A_bug=2374281=3A_30=2E0=2E91=3B_font-lock_mod?= =?US-ASCII?Q?e_hangs_on_scrolling_large_Scheme_file?= User-Agent: Thunderbird for Android In-Reply-To: <86ldxmjfim.fsf@gnu.org> References: <8734k0cs1u.fsf@subvertising.org> <86zfm2jjbo.fsf@gnu.org> <87frnu2mar.fsf@subvertising.org> <86ldxmjfim.fsf@gnu.org> Message-ID: <4127F2A6-D61A-4B77-9172-16861383B73C@subvertising.org> MIME-Version: 1.0 Content-Type: multipart/alternative; boundary=----AEHSK0JDD6QH7W6ZWHOXDT8WGBM7QF Content-Transfer-Encoding: 7bit Received-SPF: pass client-ip=198.167.222.108; envelope-from=divya@subvertising.org; helo=devianza.investici.org X-Spam_score_int: -27 X-Spam_score: -2.8 X-Spam_bar: -- X-Spam_report: (-2.8 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, HTML_MESSAGE=0.001, RCVD_IN_DNSWL_LOW=-0.7, RCVD_IN_VALIDITY_RPBL_BLOCKED=0.001, RCVD_IN_VALIDITY_SAFE_BLOCKED=0.001, SPF_HELO_PASS=-0.001, SPF_PASS=-0.001 autolearn=ham autolearn_force=no X-Spam_action: no action X-Spam-Score: -1.4 (-) X-Debbugs-Envelope-To: submit Cc: monnier@iro.umontreal.ca, 74281@debbugs.gnu.org X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -2.4 (--) ------AEHSK0JDD6QH7W6ZWHOXDT8WGBM7QF Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: quoted-printable > I don't understand the question: I thought I pointed at the possible caus= e by mentioning syntax-directed font lock? I meant you said the emacs build is "unoptimized", what can be optimized? Regards, On 14 November 2024 10:06:41 GMT, Eli Zaretskii wrote: >> From: Divya Ranjan >> Cc: Stefan Monnier , 74281@debbugs=2Egnu= =2Eorg >> Date: Thu, 14 Nov 2024 09:32:12 +0000 >>=20 >> Hello, Eli >>=20 >> Eli Zaretskii writes: >>=20 >> >> Date: Sat, 09 Nov 2024 16:04:13 +0000 >> >> From: Divya Ranjan via "Bug reports for GNU Emacs, >> >> the Swiss army knife of text editors" >> >>=20 >> >>=20 >> >> 1=2E In emacs -Q, open a fairly big Scheme file (> 70k) and try to m= ove in >> >> the file with C-n, C-f or mouse scrolling=2E It sverely lags for sev= eral >> >> seconds, doesn=E2=80=99t even respond to C-g=2E >> > >> > I can only reproduce this with C-p when moving from the end of the >> > file=2E C-n and C-f are instantaneous here, even though this is an >> > unoptimized build of Emacs 30=2E >>=20 >> I see, well its the latest build of emacs on GNU Guix, so yeah=2E Which= lacking features in particular do you think might be causing this? > >I don't understand the question: I thought I pointed at the possible >cause by mentioning syntax-directed font lock? > > > Divya Ranjan, Mathematics, Philosophy and Libre Software ------AEHSK0JDD6QH7W6ZWHOXDT8WGBM7QF Content-Type: text/html; charset=utf-8 Content-Transfer-Encoding: quoted-printable
> I don't understand the ques= tion: I thought I pointed at the possible cause by mentioning syntax-direct= ed font lock?

I meant you said the emacs build is "unoptimized", wha= t can be optimized?

Regards,


On 14 November 2024 10:06:41 GMT, Eli Zaretskii <= eliz@gnu=2Eorg> wrote:
From: Divya Ranjan <divya@subvertising=2Eorg>
Cc: S= tefan Monnier <monnier@iro=2Eumontreal=2Eca>, 74281@debbugs=2Egnu=2E= org
Date: Thu, 14 Nov 2024 09:32:12 +0000

Hello, Eli

Eli Z= aretskii <eliz@gnu=2Eorg> writes:

Date: Sat, 09 Nov 2024 16:04:13 +0000
From: Divya Ra= njan via "Bug reports for GNU Emacs,
the Swiss army knife of text edito= rs" <bug-gnu-emacs@gnu=2Eorg>


1=2E In emacs -Q, open a fai= rly big Scheme file (> 70k) and try to move in
the file with C-n, C-f= or mouse scrolling=2E It sverely lags for several
seconds, doesn=E2=80= =99t even respond to C-g=2E

I = can only reproduce this with C-p when moving from the end of the
file= =2E C-n and C-f are instantaneous here, even though this is an
unoptim= ized build of Emacs 30=2E

I see= , well its the latest build of emacs on GNU Guix, so yeah=2E Which lacking = features in particular do you think might be causing this?

I don't understand the question: I thought I po= inted at the possible
cause by mentioning syntax-directed font lock?
=


Divya Ranjan, = Mathematics, Philosophy and Libre Software
------AEHSK0JDD6QH7W6ZWHOXDT8WGBM7QF-- From debbugs-submit-bounces@debbugs.gnu.org Thu Nov 14 06:42:39 2024 Received: (at 74281) by debbugs.gnu.org; 14 Nov 2024 11:42:39 +0000 Received: from localhost ([127.0.0.1]:45319 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1tBYFD-0001sa-FV for submit@debbugs.gnu.org; Thu, 14 Nov 2024 06:42:39 -0500 Received: from eggs.gnu.org ([209.51.188.92]:39078) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1tBYFB-0001sN-Sw for 74281@debbugs.gnu.org; Thu, 14 Nov 2024 06:42:38 -0500 Received: from fencepost.gnu.org ([2001:470:142:3::e]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1tBYF4-0002uV-Vu; Thu, 14 Nov 2024 06:42:31 -0500 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=dxHgjbFY42Lrq1Cg/2BOtQ89mCgZdO+cBb4MD8LtlZU=; b=PXYsr+0k3R4Z yq1y531yCr9jydLCMXxVMaur+M1E6ER0ZxZBoGqLTQkhuji6UtYtDXTalW+yqCru0yHLIyIA4ChQW l50MbfwwKx+MzcegBcoZY4u47MICP656i2dIVLjUL+r4ls0YtFEJmvklMmTLOc2b3r7P0U/7jfJxy 5v+KenIabhfhJFB38h+hY//9T8q0Nbs9DOGPXbqGVLFOCPUafZ9HWG5LPtQ+YL7njOa3w7n/cAP9K A4uPl1N9BsK88zTA3vloiDB4R2exTNIuCTkJHQypLbYr9QRC4xUYMui8wM3Xqfc7DwX1PVRKNw9t+ DGX3F7DRQJM7H+WrsfS/Kg==; Date: Thu, 14 Nov 2024 13:42:18 +0200 Message-Id: <86iksqjb39.fsf@gnu.org> From: Eli Zaretskii To: Divya Ranjan In-Reply-To: <4127F2A6-D61A-4B77-9172-16861383B73C@subvertising.org> (message from Divya Ranjan on Thu, 14 Nov 2024 11:09:41 +0000) Subject: Re: bug#74281: 30.0.91; font-lock mode hangs on scrolling large Scheme file References: <8734k0cs1u.fsf@subvertising.org> <86zfm2jjbo.fsf@gnu.org> <87frnu2mar.fsf@subvertising.org> <86ldxmjfim.fsf@gnu.org> <4127F2A6-D61A-4B77-9172-16861383B73C@subvertising.org> X-Spam-Score: -2.3 (--) X-Debbugs-Envelope-To: 74281 Cc: monnier@iro.umontreal.ca, 74281@debbugs.gnu.org X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -3.3 (---) > Date: Thu, 14 Nov 2024 11:09:41 +0000 > From: Divya Ranjan > CC: monnier@iro.umontreal.ca, 74281@debbugs.gnu.org > > > I don't understand the question: I thought I pointed at the possible cause by mentioning syntax-directed > font lock? > > I meant you said the emacs build is "unoptimized", what can be optimized? No, it means the C files were compiled with -O0, which disables compiler optimizations, so my Emacs is supposed to be slower than normal. And yet I seed no lags with C-n, unlike what you report. From debbugs-submit-bounces@debbugs.gnu.org Thu Nov 14 11:56:49 2024 Received: (at 74281) by debbugs.gnu.org; 14 Nov 2024 16:56:50 +0000 Received: from localhost ([127.0.0.1]:46958 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1tBd9F-0000Uc-Fe for submit@debbugs.gnu.org; Thu, 14 Nov 2024 11:56:49 -0500 Received: from mailscanner.iro.umontreal.ca ([132.204.25.50]:28047) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1tBd9D-0000UP-Eq for 74281@debbugs.gnu.org; Thu, 14 Nov 2024 11:56:47 -0500 Received: from pmg3.iro.umontreal.ca (localhost [127.0.0.1]) by pmg3.iro.umontreal.ca (Proxmox) with ESMTP id CD622442683; Thu, 14 Nov 2024 11:56:40 -0500 (EST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=iro.umontreal.ca; s=mail; t=1731603398; bh=CbRluiu7+NL/Q4JBkBzwru81PRrb98wKdD+hnloKwik=; h=From:To:Cc:Subject:In-Reply-To:References:Date:From; b=KBZUupxYomdOgZoNJKpIhz4DSh2QIaW3zHGm8ourFnRUyVGIPIwVTRrpPQ71xjP68 0gb4nvppLGnBvWBFu4oBIGkL1IFP1T0BSuEWOMNzxQBUGI2D4s9llCrPo6MZ601QL7 kPsi0izQWfFhzDynjKy5CF0aJyvufZlp48N8TVMD2Q8IZUbOCjf1Af+A2ecsXtlcwk JeTMKJJBawIAp9GxI3jaqxhfINJTQgiTka6eMt0xwlKQSGYwAy8LK6qVGliniGmPn6 aAL7wlKnf3KXQTuiA4If4j+h+X4Sd8k7p/fJH8Xm2yPQoA32mPxiwolytH4pJwk/RM WBhbPOqyHygdw== Received: from mail01.iro.umontreal.ca (unknown [172.31.2.1]) by pmg3.iro.umontreal.ca (Proxmox) with ESMTP id 86A09442629; Thu, 14 Nov 2024 11:56:38 -0500 (EST) Received: from alfajor (modemcable005.21-80-70.mc.videotron.ca [70.80.21.5]) by mail01.iro.umontreal.ca (Postfix) with ESMTPSA id 651291201CF; Thu, 14 Nov 2024 11:56:38 -0500 (EST) From: Stefan Monnier To: Eli Zaretskii Subject: Re: bug#74281: 30.0.91; font-lock mode hangs on scrolling large Scheme file In-Reply-To: <86zfm2jjbo.fsf@gnu.org> (Eli Zaretskii's message of "Thu, 14 Nov 2024 10:44:27 +0200") Message-ID: References: <8734k0cs1u.fsf@subvertising.org> <86zfm2jjbo.fsf@gnu.org> Date: Thu, 14 Nov 2024 11:56:37 -0500 User-Agent: Gnus/5.13 (Gnus v5.13) MIME-Version: 1.0 Content-Type: text/plain X-SPAM-INFO: Spam detection results: 0 ALL_TRUSTED -1 Passed through trusted hosts only via SMTP AWL 0.077 Adjusted score from AWL reputation of From: address BAYES_00 -1.9 Bayes spam probability is 0 to 1% DKIM_SIGNED 0.1 Message has a DKIM or DK signature, not necessarily valid DKIM_VALID -0.1 Message has at least one valid DKIM or DK signature DKIM_VALID_AU -0.1 Message has a valid DKIM or DK signature from author's domain DKIM_VALID_EF -0.1 Message has a valid DKIM or DK signature from envelope-from domain X-SPAM-LEVEL: X-Spam-Score: -2.3 (--) X-Debbugs-Envelope-To: 74281 Cc: Divya Ranjan , 74281@debbugs.gnu.org X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -3.3 (---) > Stefan, what tools do we have to investigate slowness related to > parse-partial-sexp? Or maybe you have suggestions for how to speed up > font-lock in this case? Hmm... `parse-partial-sexp` is normally expected to be fast, unless it has to scan a lot of text. > Here's the profile I get while moving with C-p through the above file: A stab in the dark, but maybe the relevant call is the one in: (state (if (or syntax-ppss-table (not font-lock--syntax-table-affects-ppss)) (syntax-ppss start) ;; If `syntax-ppss' doesn't have its own syntax-table and ;; we have installed our own syntax-table which ;; differs from the standard one in ways which affects PPSS, ;; then we can't use `syntax-ppss' since that would pollute ;; and be polluted by its cache. (parse-partial-sexp (point-min) start))) so the origin of the slowdown would be the (?#. "w 14") in the setting below in `scheme.el`: (setq font-lock-defaults '((scheme-font-lock-keywords scheme-font-lock-keywords-1 scheme-font-lock-keywords-2) nil t (("+-*/.<>=!?$%_&~^:" . "w") (?#. "w 14")) beginning-of-defun (font-lock-mark-block-function . mark-defun))) in which case, setting a `syntax-ppss-table` should fix the problem, tho we could also fix it by being more careful: AFAICT the purpose of this (?#. "w 14") is only to change the syntax of `#` from "prefix" to "word" without changing the comment-related flags, so it shouldn't cause `font-lock--syntax-table-affects-ppss` to be set. So, we could solve it by improving the code that sets `font-lock--syntax-table-affects-ppss`, as in the patch below. Stefan diff --git a/lisp/font-lock.el b/lisp/font-lock.el index 203131bfd5a..f6299920c0a 100644 --- a/lisp/font-lock.el +++ b/lisp/font-lock.el @@ -1955,14 +1955,15 @@ font-lock-set-defaults (dolist (char (if (numberp (car selem)) (list (car selem)) (mapcar #'identity (car selem)))) - (unless (memq (car (aref font-lock-syntax-table char)) - '(1 2 3)) ;"." "w" "_" - (setq font-lock--syntax-table-affects-ppss t)) - (modify-syntax-entry char syntax font-lock-syntax-table) - (unless (memq (car (aref font-lock-syntax-table char)) - '(1 2 3)) ;"." "w" "_" - (setq font-lock--syntax-table-affects-ppss t)) - )))) + (let ((old-syntax (aref font-lock-syntax-table char))) + (modify-syntax-entry char syntax font-lock-syntax-table) + (let ((new-syntax (aref font-lock-syntax-table char))) + (unless (and (equal (cdr old-syntax) (cdr new-syntax)) + (memq (logand (car old-syntax) 255) '(1 2 3 6)) + (memq (logand (car new-syntax) 255) '(1 2 3 6)) + (equal (ash (car old-syntax) -8) + (ash (car new-syntax) -8))) + (setq font-lock--syntax-table-affects-ppss t)))))))) ;; (nth 4 defaults) used to hold `font-lock-beginning-of-syntax-function', ;; but that was removed in 25.1, so if it's a cons cell, we assume that ;; it's part of the variable alist. From debbugs-submit-bounces@debbugs.gnu.org Sat Nov 30 04:52:00 2024 Received: (at 74281) by debbugs.gnu.org; 30 Nov 2024 09:52:00 +0000 Received: from localhost ([127.0.0.1]:45463 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1tHK8t-0006c1-Km for submit@debbugs.gnu.org; Sat, 30 Nov 2024 04:52:00 -0500 Received: from eggs.gnu.org ([209.51.188.92]:60670) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1tHK8s-0006bi-0A for 74281@debbugs.gnu.org; Sat, 30 Nov 2024 04:51:58 -0500 Received: from fencepost.gnu.org ([2001:470:142:3::e]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1tHK8m-00064P-OI; Sat, 30 Nov 2024 04:51:52 -0500 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=cb02+qPoHhtgiIwF+YYOEh3cyskynX5L7YjzhXvmlTs=; b=dg8uRr3Ps4h+ 8PLeMCfX08N7oJpJKZAybLfhaWLKCY0z85NYExwMZ4C8ciaaQIwdZshCz1QU8UjwNQlhLITZZbR40 TvDC9JPbxfwM4FBEftn+epvb9BRQfEzqY8ZBUZGlaKrziPLOP7saLzt3B/z3D7C52VNc+QS9JIy9h q0VF80Uqsk9/53QUG19MrVk+NxtRSP/VLMp0mOpAG8qtU68bw7zKwDE9lIsJ5YUoKlxZGojR1iaDc lT76y7lgvXrtPlOUfQb0TiBgzG9X9UhouBLi3D9ihLgRRL8uByeItePBIGFkWJrNtOUCpjecq8dq0 kOo1UBH30fB7+curdiuZ5Q==; Date: Sat, 30 Nov 2024 11:51:49 +0200 Message-Id: <865xo59hhm.fsf@gnu.org> From: Eli Zaretskii To: divya@subvertising.org, Stefan Monnier In-Reply-To: (message from Stefan Monnier on Thu, 14 Nov 2024 11:56:37 -0500) Subject: Re: bug#74281: 30.0.91; font-lock mode hangs on scrolling large Scheme file References: <8734k0cs1u.fsf@subvertising.org> <86zfm2jjbo.fsf@gnu.org> X-Spam-Score: -2.3 (--) X-Debbugs-Envelope-To: 74281 Cc: 74281@debbugs.gnu.org X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -3.3 (---) Ping! Divya, could you please try Stefan's suggestions and report back? > Cc: Divya Ranjan , 74281@debbugs.gnu.org > From: Stefan Monnier > Date: Thu, 14 Nov 2024 11:56:37 -0500 > > > Stefan, what tools do we have to investigate slowness related to > > parse-partial-sexp? Or maybe you have suggestions for how to speed up > > font-lock in this case? > > Hmm... `parse-partial-sexp` is normally expected to be fast, unless it > has to scan a lot of text. > > > Here's the profile I get while moving with C-p through the above file: > > A stab in the dark, but maybe the relevant call is the one in: > > (state (if (or syntax-ppss-table > (not font-lock--syntax-table-affects-ppss)) > (syntax-ppss start) > ;; If `syntax-ppss' doesn't have its own syntax-table and > ;; we have installed our own syntax-table which > ;; differs from the standard one in ways which affects PPSS, > ;; then we can't use `syntax-ppss' since that would pollute > ;; and be polluted by its cache. > (parse-partial-sexp (point-min) start))) > > so the origin of the slowdown would be the (?#. "w 14") in the setting > below in `scheme.el`: > > (setq font-lock-defaults > '((scheme-font-lock-keywords > scheme-font-lock-keywords-1 scheme-font-lock-keywords-2) > nil t (("+-*/.<>=!?$%_&~^:" . "w") (?#. "w 14")) > beginning-of-defun > (font-lock-mark-block-function . mark-defun))) > > in which case, setting a `syntax-ppss-table` should fix the problem, tho > we could also fix it by being more careful: AFAICT the purpose of this > (?#. "w 14") is only to change the syntax of `#` from "prefix" to "word" > without changing the comment-related flags, so it shouldn't cause > `font-lock--syntax-table-affects-ppss` to be set. > So, we could solve it by improving the code that sets > `font-lock--syntax-table-affects-ppss`, as in the patch below. > > > Stefan > > > diff --git a/lisp/font-lock.el b/lisp/font-lock.el > index 203131bfd5a..f6299920c0a 100644 > --- a/lisp/font-lock.el > +++ b/lisp/font-lock.el > @@ -1955,14 +1955,15 @@ font-lock-set-defaults > (dolist (char (if (numberp (car selem)) > (list (car selem)) > (mapcar #'identity (car selem)))) > - (unless (memq (car (aref font-lock-syntax-table char)) > - '(1 2 3)) ;"." "w" "_" > - (setq font-lock--syntax-table-affects-ppss t)) > - (modify-syntax-entry char syntax font-lock-syntax-table) > - (unless (memq (car (aref font-lock-syntax-table char)) > - '(1 2 3)) ;"." "w" "_" > - (setq font-lock--syntax-table-affects-ppss t)) > - )))) > + (let ((old-syntax (aref font-lock-syntax-table char))) > + (modify-syntax-entry char syntax font-lock-syntax-table) > + (let ((new-syntax (aref font-lock-syntax-table char))) > + (unless (and (equal (cdr old-syntax) (cdr new-syntax)) > + (memq (logand (car old-syntax) 255) '(1 2 3 6)) > + (memq (logand (car new-syntax) 255) '(1 2 3 6)) > + (equal (ash (car old-syntax) -8) > + (ash (car new-syntax) -8))) > + (setq font-lock--syntax-table-affects-ppss t)))))))) > ;; (nth 4 defaults) used to hold `font-lock-beginning-of-syntax-function', > ;; but that was removed in 25.1, so if it's a cons cell, we assume that > ;; it's part of the variable alist. > > > > > From debbugs-submit-bounces@debbugs.gnu.org Sat Dec 14 04:34:52 2024 Received: (at 74281) by debbugs.gnu.org; 14 Dec 2024 09:34:52 +0000 Received: from localhost ([127.0.0.1]:45450 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1tMOXz-0006ZX-Sj for submit@debbugs.gnu.org; Sat, 14 Dec 2024 04:34:52 -0500 Received: from eggs.gnu.org ([209.51.188.92]:53914) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1tMOXx-0006ZG-3P for 74281@debbugs.gnu.org; Sat, 14 Dec 2024 04:34:50 -0500 Received: from fencepost.gnu.org ([2001:470:142:3::e]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1tMOXr-00008W-1m; Sat, 14 Dec 2024 04:34:43 -0500 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=RmvWJ4GBssuQKEBDRkFqyWmvpTJBCpe91yIThRKm6zc=; b=ds4H/QplQp8t /N+7s1Yn8AvwVnB9HEpCEu+mNFFTh1i23nNpPxlPkrk1tCeGx3p0zPNaiqzqbjJZr+Hg1P/aB1K2t SmrceZQwe5BZMqHMo1EWXap1lpBVVdyxCv5kifXEBTjY4GqF6xIosShvKUQd2Y8QyEB+VQQ1CuOJ0 IJMyGDk/iLnTM76VM0nPg19C25wLMIoWlIvcjRhapXNGumssKB1o1oZ+pKWQXZ52ZI/7/nVqTpzeu oR4SvC9GrqY+pcecfI9mSCzzxRrp1lhAmkVL4V5DTYUBw81Z+Ty3jgbcTA5lRgwY6V4JiFfQY/HVH wFQoM0SBi/3vde7PHaYs3A==; Date: Sat, 14 Dec 2024 11:34:40 +0200 Message-Id: <8634iqwqtr.fsf@gnu.org> From: Eli Zaretskii To: divya@subvertising.org In-Reply-To: <865xo59hhm.fsf@gnu.org> (message from Eli Zaretskii on Sat, 30 Nov 2024 11:51:49 +0200) Subject: Re: bug#74281: 30.0.91; font-lock mode hangs on scrolling large Scheme file References: <8734k0cs1u.fsf@subvertising.org> <86zfm2jjbo.fsf@gnu.org> <865xo59hhm.fsf@gnu.org> X-Spam-Score: -2.3 (--) X-Debbugs-Envelope-To: 74281 Cc: monnier@iro.umontreal.ca, 74281@debbugs.gnu.org X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -3.3 (---) Ping! Ping! Divya, are you there? > Cc: 74281@debbugs.gnu.org > Date: Sat, 30 Nov 2024 11:51:49 +0200 > From: Eli Zaretskii > > Ping! Divya, could you please try Stefan's suggestions and report > back? > > > Cc: Divya Ranjan , 74281@debbugs.gnu.org > > From: Stefan Monnier > > Date: Thu, 14 Nov 2024 11:56:37 -0500 > > > > > Stefan, what tools do we have to investigate slowness related to > > > parse-partial-sexp? Or maybe you have suggestions for how to speed up > > > font-lock in this case? > > > > Hmm... `parse-partial-sexp` is normally expected to be fast, unless it > > has to scan a lot of text. > > > > > Here's the profile I get while moving with C-p through the above file: > > > > A stab in the dark, but maybe the relevant call is the one in: > > > > (state (if (or syntax-ppss-table > > (not font-lock--syntax-table-affects-ppss)) > > (syntax-ppss start) > > ;; If `syntax-ppss' doesn't have its own syntax-table and > > ;; we have installed our own syntax-table which > > ;; differs from the standard one in ways which affects PPSS, > > ;; then we can't use `syntax-ppss' since that would pollute > > ;; and be polluted by its cache. > > (parse-partial-sexp (point-min) start))) > > > > so the origin of the slowdown would be the (?#. "w 14") in the setting > > below in `scheme.el`: > > > > (setq font-lock-defaults > > '((scheme-font-lock-keywords > > scheme-font-lock-keywords-1 scheme-font-lock-keywords-2) > > nil t (("+-*/.<>=!?$%_&~^:" . "w") (?#. "w 14")) > > beginning-of-defun > > (font-lock-mark-block-function . mark-defun))) > > > > in which case, setting a `syntax-ppss-table` should fix the problem, tho > > we could also fix it by being more careful: AFAICT the purpose of this > > (?#. "w 14") is only to change the syntax of `#` from "prefix" to "word" > > without changing the comment-related flags, so it shouldn't cause > > `font-lock--syntax-table-affects-ppss` to be set. > > So, we could solve it by improving the code that sets > > `font-lock--syntax-table-affects-ppss`, as in the patch below. > > > > > > Stefan > > > > > > diff --git a/lisp/font-lock.el b/lisp/font-lock.el > > index 203131bfd5a..f6299920c0a 100644 > > --- a/lisp/font-lock.el > > +++ b/lisp/font-lock.el > > @@ -1955,14 +1955,15 @@ font-lock-set-defaults > > (dolist (char (if (numberp (car selem)) > > (list (car selem)) > > (mapcar #'identity (car selem)))) > > - (unless (memq (car (aref font-lock-syntax-table char)) > > - '(1 2 3)) ;"." "w" "_" > > - (setq font-lock--syntax-table-affects-ppss t)) > > - (modify-syntax-entry char syntax font-lock-syntax-table) > > - (unless (memq (car (aref font-lock-syntax-table char)) > > - '(1 2 3)) ;"." "w" "_" > > - (setq font-lock--syntax-table-affects-ppss t)) > > - )))) > > + (let ((old-syntax (aref font-lock-syntax-table char))) > > + (modify-syntax-entry char syntax font-lock-syntax-table) > > + (let ((new-syntax (aref font-lock-syntax-table char))) > > + (unless (and (equal (cdr old-syntax) (cdr new-syntax)) > > + (memq (logand (car old-syntax) 255) '(1 2 3 6)) > > + (memq (logand (car new-syntax) 255) '(1 2 3 6)) > > + (equal (ash (car old-syntax) -8) > > + (ash (car new-syntax) -8))) > > + (setq font-lock--syntax-table-affects-ppss t)))))))) > > ;; (nth 4 defaults) used to hold `font-lock-beginning-of-syntax-function', > > ;; but that was removed in 25.1, so if it's a cons cell, we assume that > > ;; it's part of the variable alist. > > > > > > > > > > > > > > From debbugs-submit-bounces@debbugs.gnu.org Sat Dec 28 06:09:57 2024 Received: (at 74281) by debbugs.gnu.org; 28 Dec 2024 11:09:57 +0000 Received: from localhost ([127.0.0.1]:48956 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1tRUhh-0006R1-5H for submit@debbugs.gnu.org; Sat, 28 Dec 2024 06:09:57 -0500 Received: from eggs.gnu.org ([209.51.188.92]:40722) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1tRUhf-0006Qo-98 for 74281@debbugs.gnu.org; Sat, 28 Dec 2024 06:09:55 -0500 Received: from fencepost.gnu.org ([2001:470:142:3::e]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1tRUha-0006GU-2f; Sat, 28 Dec 2024 06:09:50 -0500 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=pbzpIoK0vkfHVzf5XmgiHs25TFpmYtXLAiFj0wrI8Lo=; b=i6MlimP/g0Ut rZGFJtl/XlO4/BQv0kJ/He5iioiMIlL3vWbHKQs2CtfMftxcOoN10NQezl4D2mqh3JziSSLMQoK14 H97YIbWd7NMc03q/SAHh+I1NAVYHlt8kQKu/tf0uSByEeLjfsZ7X0XEqk/1VzMXN5oVTzri09+YL1 OC1wgb5Izt55LCZjp2e3AjuQFK5nnbPy22XG7jRBiPuWeJ2/1g4EKNpQCoTKTZk+XymJiQCmRuQ/2 XcAg8Qi/EZLPbGbhh/vv9LGfq80tk9El/nCMAbJlvacli+I/1Zc5HVBw9TgLqTtNQJIhhkuIJJQme 7OLxJ2onRKkzz0Bvmk7TwA==; Date: Sat, 28 Dec 2024 13:09:46 +0200 Message-Id: <86msggt66d.fsf@gnu.org> From: Eli Zaretskii To: divya@subvertising.org In-Reply-To: <8634iqwqtr.fsf@gnu.org> (message from Eli Zaretskii on Sat, 14 Dec 2024 11:34:40 +0200) Subject: Re: bug#74281: 30.0.91; font-lock mode hangs on scrolling large Scheme file References: <8734k0cs1u.fsf@subvertising.org> <86zfm2jjbo.fsf@gnu.org> <865xo59hhm.fsf@gnu.org> <8634iqwqtr.fsf@gnu.org> X-Spam-Score: -2.3 (--) X-Debbugs-Envelope-To: 74281 Cc: monnier@iro.umontreal.ca, 74281@debbugs.gnu.org X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -3.3 (---) Ping! Ping! Ping! Divya, please respond. > Cc: monnier@iro.umontreal.ca, 74281@debbugs.gnu.org > Date: Sat, 14 Dec 2024 11:34:40 +0200 > From: Eli Zaretskii > > Ping! Ping! Divya, are you there? > > > Cc: 74281@debbugs.gnu.org > > Date: Sat, 30 Nov 2024 11:51:49 +0200 > > From: Eli Zaretskii > > > > Ping! Divya, could you please try Stefan's suggestions and report > > back? > > > > > Cc: Divya Ranjan , 74281@debbugs.gnu.org > > > From: Stefan Monnier > > > Date: Thu, 14 Nov 2024 11:56:37 -0500 > > > > > > > Stefan, what tools do we have to investigate slowness related to > > > > parse-partial-sexp? Or maybe you have suggestions for how to speed up > > > > font-lock in this case? > > > > > > Hmm... `parse-partial-sexp` is normally expected to be fast, unless it > > > has to scan a lot of text. > > > > > > > Here's the profile I get while moving with C-p through the above file: > > > > > > A stab in the dark, but maybe the relevant call is the one in: > > > > > > (state (if (or syntax-ppss-table > > > (not font-lock--syntax-table-affects-ppss)) > > > (syntax-ppss start) > > > ;; If `syntax-ppss' doesn't have its own syntax-table and > > > ;; we have installed our own syntax-table which > > > ;; differs from the standard one in ways which affects PPSS, > > > ;; then we can't use `syntax-ppss' since that would pollute > > > ;; and be polluted by its cache. > > > (parse-partial-sexp (point-min) start))) > > > > > > so the origin of the slowdown would be the (?#. "w 14") in the setting > > > below in `scheme.el`: > > > > > > (setq font-lock-defaults > > > '((scheme-font-lock-keywords > > > scheme-font-lock-keywords-1 scheme-font-lock-keywords-2) > > > nil t (("+-*/.<>=!?$%_&~^:" . "w") (?#. "w 14")) > > > beginning-of-defun > > > (font-lock-mark-block-function . mark-defun))) > > > > > > in which case, setting a `syntax-ppss-table` should fix the problem, tho > > > we could also fix it by being more careful: AFAICT the purpose of this > > > (?#. "w 14") is only to change the syntax of `#` from "prefix" to "word" > > > without changing the comment-related flags, so it shouldn't cause > > > `font-lock--syntax-table-affects-ppss` to be set. > > > So, we could solve it by improving the code that sets > > > `font-lock--syntax-table-affects-ppss`, as in the patch below. > > > > > > > > > Stefan > > > > > > > > > diff --git a/lisp/font-lock.el b/lisp/font-lock.el > > > index 203131bfd5a..f6299920c0a 100644 > > > --- a/lisp/font-lock.el > > > +++ b/lisp/font-lock.el > > > @@ -1955,14 +1955,15 @@ font-lock-set-defaults > > > (dolist (char (if (numberp (car selem)) > > > (list (car selem)) > > > (mapcar #'identity (car selem)))) > > > - (unless (memq (car (aref font-lock-syntax-table char)) > > > - '(1 2 3)) ;"." "w" "_" > > > - (setq font-lock--syntax-table-affects-ppss t)) > > > - (modify-syntax-entry char syntax font-lock-syntax-table) > > > - (unless (memq (car (aref font-lock-syntax-table char)) > > > - '(1 2 3)) ;"." "w" "_" > > > - (setq font-lock--syntax-table-affects-ppss t)) > > > - )))) > > > + (let ((old-syntax (aref font-lock-syntax-table char))) > > > + (modify-syntax-entry char syntax font-lock-syntax-table) > > > + (let ((new-syntax (aref font-lock-syntax-table char))) > > > + (unless (and (equal (cdr old-syntax) (cdr new-syntax)) > > > + (memq (logand (car old-syntax) 255) '(1 2 3 6)) > > > + (memq (logand (car new-syntax) 255) '(1 2 3 6)) > > > + (equal (ash (car old-syntax) -8) > > > + (ash (car new-syntax) -8))) > > > + (setq font-lock--syntax-table-affects-ppss t)))))))) > > > ;; (nth 4 defaults) used to hold `font-lock-beginning-of-syntax-function', > > > ;; but that was removed in 25.1, so if it's a cons cell, we assume that > > > ;; it's part of the variable alist. > > > > > > > > > > > > > > > > > > > > > > > > > > > From debbugs-submit-bounces@debbugs.gnu.org Sat Dec 28 10:03:39 2024 Received: (at 74281) by debbugs.gnu.org; 28 Dec 2024 15:03:39 +0000 Received: from localhost ([127.0.0.1]:52279 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1tRYLr-0001bB-5C for submit@debbugs.gnu.org; Sat, 28 Dec 2024 10:03:39 -0500 Received: from mailscanner.iro.umontreal.ca ([132.204.25.50]:59936) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1tRYLo-0001ax-Ro for 74281@debbugs.gnu.org; Sat, 28 Dec 2024 10:03:37 -0500 Received: from pmg2.iro.umontreal.ca (localhost.localdomain [127.0.0.1]) by pmg2.iro.umontreal.ca (Proxmox) with ESMTP id 6FEBA8089D; Sat, 28 Dec 2024 10:03:31 -0500 (EST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=iro.umontreal.ca; s=mail; t=1735398210; bh=/ObhJ4SThutXZY+OAK7fPxEhtOQGfT3zwOi38le7mQU=; h=From:To:Cc:Subject:In-Reply-To:References:Date:From; b=YRHUrQOofmlEmMxxjppOzuLk/P27A5l9RfpQXZhay2DOj/tPni5ny+avUv6WV/x+o 7jWWPZnTeX1L2rdPumxsAuDoClou3NGdM7hjb76HID2mUDENHQk27dYI0Bk1bZAKBX tlivJkk6yQLlS+/GAlFyrFtXPtThg0QTimBCuiluDbtSzW3S2uAnGYK0hGn40V3qH0 n+a2d1hUVqkXyYldk/RlUpoohlAZfXMifJGwtyEAJ3sbNwlAD4G8J7YD9v/KspuWNf qbFLFtuTb+USGkoUQsM0s42Nyk6tyqkW6SxoMhLNpuiY0uGhmLea0cxusNkssGmtYa G7Y6vQJbgjTEQ== Received: from mail01.iro.umontreal.ca (unknown [172.31.2.1]) by pmg2.iro.umontreal.ca (Proxmox) with ESMTP id 5D0848029E; Sat, 28 Dec 2024 10:03:30 -0500 (EST) Received: from pastel (104-195-225-43.cpe.teksavvy.com [104.195.225.43]) by mail01.iro.umontreal.ca (Postfix) with ESMTPSA id 2AD39120478; Sat, 28 Dec 2024 10:03:30 -0500 (EST) From: Stefan Monnier To: Eli Zaretskii Subject: Re: bug#74281: 30.0.91; font-lock mode hangs on scrolling large Scheme file In-Reply-To: <865xo59hhm.fsf@gnu.org> (Eli Zaretskii's message of "Sat, 30 Nov 2024 11:51:49 +0200") Message-ID: References: <8734k0cs1u.fsf@subvertising.org> <86zfm2jjbo.fsf@gnu.org> <865xo59hhm.fsf@gnu.org> Date: Sat, 28 Dec 2024 10:03:29 -0500 User-Agent: Gnus/5.13 (Gnus v5.13) MIME-Version: 1.0 Content-Type: text/plain X-SPAM-INFO: Spam detection results: 0 ALL_TRUSTED -1 Passed through trusted hosts only via SMTP AWL -0.052 Adjusted score from AWL reputation of From: address BAYES_00 -1.9 Bayes spam probability is 0 to 1% DKIM_SIGNED 0.1 Message has a DKIM or DK signature, not necessarily valid DKIM_VALID -0.1 Message has at least one valid DKIM or DK signature DKIM_VALID_AU -0.1 Message has a valid DKIM or DK signature from author's domain DKIM_VALID_EF -0.1 Message has a valid DKIM or DK signature from envelope-from domain X-SPAM-LEVEL: X-Spam-Score: -2.3 (--) X-Debbugs-Envelope-To: 74281 Cc: divya@subvertising.org, 74281@debbugs.gnu.org X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -3.3 (---) > Ping! Divya, could you please try Stefan's suggestions and report > back? FWIW, I think the change is an improvement in any case, so we could install it. Since it's in a "core" file, it might be too risky for `emacs-30`, so I'm thinking of installing it in `master`, WDYT? Stefan >> Cc: Divya Ranjan , 74281@debbugs.gnu.org >> From: Stefan Monnier >> Date: Thu, 14 Nov 2024 11:56:37 -0500 >> >> > Stefan, what tools do we have to investigate slowness related to >> > parse-partial-sexp? Or maybe you have suggestions for how to speed up >> > font-lock in this case? >> >> Hmm... `parse-partial-sexp` is normally expected to be fast, unless it >> has to scan a lot of text. >> >> > Here's the profile I get while moving with C-p through the above file: >> >> A stab in the dark, but maybe the relevant call is the one in: >> >> (state (if (or syntax-ppss-table >> (not font-lock--syntax-table-affects-ppss)) >> (syntax-ppss start) >> ;; If `syntax-ppss' doesn't have its own syntax-table and >> ;; we have installed our own syntax-table which >> ;; differs from the standard one in ways which affects PPSS, >> ;; then we can't use `syntax-ppss' since that would pollute >> ;; and be polluted by its cache. >> (parse-partial-sexp (point-min) start))) >> >> so the origin of the slowdown would be the (?#. "w 14") in the setting >> below in `scheme.el`: >> >> (setq font-lock-defaults >> '((scheme-font-lock-keywords >> scheme-font-lock-keywords-1 scheme-font-lock-keywords-2) >> nil t (("+-*/.<>=!?$%_&~^:" . "w") (?#. "w 14")) >> beginning-of-defun >> (font-lock-mark-block-function . mark-defun))) >> >> in which case, setting a `syntax-ppss-table` should fix the problem, tho >> we could also fix it by being more careful: AFAICT the purpose of this >> (?#. "w 14") is only to change the syntax of `#` from "prefix" to "word" >> without changing the comment-related flags, so it shouldn't cause >> `font-lock--syntax-table-affects-ppss` to be set. >> So, we could solve it by improving the code that sets >> `font-lock--syntax-table-affects-ppss`, as in the patch below. >> >> >> Stefan >> >> >> diff --git a/lisp/font-lock.el b/lisp/font-lock.el >> index 203131bfd5a..f6299920c0a 100644 >> --- a/lisp/font-lock.el >> +++ b/lisp/font-lock.el >> @@ -1955,14 +1955,15 @@ font-lock-set-defaults >> (dolist (char (if (numberp (car selem)) >> (list (car selem)) >> (mapcar #'identity (car selem)))) >> - (unless (memq (car (aref font-lock-syntax-table char)) >> - '(1 2 3)) ;"." "w" "_" >> - (setq font-lock--syntax-table-affects-ppss t)) >> - (modify-syntax-entry char syntax font-lock-syntax-table) >> - (unless (memq (car (aref font-lock-syntax-table char)) >> - '(1 2 3)) ;"." "w" "_" >> - (setq font-lock--syntax-table-affects-ppss t)) >> - )))) >> + (let ((old-syntax (aref font-lock-syntax-table char))) >> + (modify-syntax-entry char syntax font-lock-syntax-table) >> + (let ((new-syntax (aref font-lock-syntax-table char))) >> + (unless (and (equal (cdr old-syntax) (cdr new-syntax)) >> + (memq (logand (car old-syntax) 255) '(1 2 3 6)) >> + (memq (logand (car new-syntax) 255) '(1 2 3 6)) >> + (equal (ash (car old-syntax) -8) >> + (ash (car new-syntax) -8))) >> + (setq font-lock--syntax-table-affects-ppss t)))))))) >> ;; (nth 4 defaults) used to hold `font-lock-beginning-of-syntax-function', >> ;; but that was removed in 25.1, so if it's a cons cell, we assume that >> ;; it's part of the variable alist. >> >> >> >> >> From debbugs-submit-bounces@debbugs.gnu.org Sat Dec 28 11:36:08 2024 Received: (at 74281) by debbugs.gnu.org; 28 Dec 2024 16:36:08 +0000 Received: from localhost ([127.0.0.1]:52439 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1tRZnM-0005tP-8s for submit@debbugs.gnu.org; Sat, 28 Dec 2024 11:36:08 -0500 Received: from eggs.gnu.org ([209.51.188.92]:33450) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1tRZnK-0005sv-Tj for 74281@debbugs.gnu.org; Sat, 28 Dec 2024 11:36:07 -0500 Received: from fencepost.gnu.org ([2001:470:142:3::e]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1tRZl9-00010A-St; Sat, 28 Dec 2024 11:33:51 -0500 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=vowqBJMwyMUQDhfw7qADLQCWKq3QT5BcJYzKXtTOJDU=; b=Xw+MOTxS8xP+ +glqrWT/CDSEeh6MbjX8ayMCqatrPZJEF7FmRe56xiigHXcBMYkXqSWI0iKyxcdNbjgSn7KUI8Shm Tp/bQRBlkIXPBXA104hOBViIUO5HvoW+5eEoe5xNYS9QvUH2iepfe0O8ZnUp9dEMWmdA17QJp9Gxc n9cKwDwZBD1hHfhNBiHPvi/SBUYUsjVGtOC3lMfVZF1TYLqfVvu/LjC2oaMT016180qSxwz3jjjX/ ww9+0vI1qRv1O7BT4g688dZzz8LoNwBAgQVBFDrGu1liWgVuwpAU4HRmw7SduvQuXWH0OWNBAC5cj KLWPd3wg/I8f7/FMpVPcRA==; Date: Sat, 28 Dec 2024 18:33:49 +0200 Message-Id: <86a5cfsr6a.fsf@gnu.org> From: Eli Zaretskii To: Stefan Monnier In-Reply-To: (message from Stefan Monnier on Sat, 28 Dec 2024 10:03:29 -0500) Subject: Re: bug#74281: 30.0.91; font-lock mode hangs on scrolling large Scheme file References: <8734k0cs1u.fsf@subvertising.org> <86zfm2jjbo.fsf@gnu.org> <865xo59hhm.fsf@gnu.org> X-Spam-Score: -2.3 (--) X-Debbugs-Envelope-To: 74281 Cc: divya@subvertising.org, 74281@debbugs.gnu.org X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -3.3 (---) > From: Stefan Monnier > Cc: divya@subvertising.org, 74281@debbugs.gnu.org > Date: Sat, 28 Dec 2024 10:03:29 -0500 > > > Ping! Divya, could you please try Stefan's suggestions and report > > back? > > FWIW, I think the change is an improvement in any case, so we could > install it. Since it's in a "core" file, it might be too risky for > `emacs-30`, so I'm thinking of installing it in `master`, WDYT? Fine by me, thanks. From debbugs-submit-bounces@debbugs.gnu.org Sun Dec 29 10:20:36 2024 Received: (at 74281) by debbugs.gnu.org; 29 Dec 2024 15:20:37 +0000 Received: from localhost ([127.0.0.1]:55872 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1tRv5o-0005aQ-LK for submit@debbugs.gnu.org; Sun, 29 Dec 2024 10:20:36 -0500 Received: from mailscanner.iro.umontreal.ca ([132.204.25.50]:41574) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1tRv5n-0005aE-Ra for 74281@debbugs.gnu.org; Sun, 29 Dec 2024 10:20:36 -0500 Received: from pmg3.iro.umontreal.ca (localhost [127.0.0.1]) by pmg3.iro.umontreal.ca (Proxmox) with ESMTP id 39C004415C8; Sun, 29 Dec 2024 10:20:29 -0500 (EST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=iro.umontreal.ca; s=mail; t=1735485628; bh=bO0wBRp0NZB2McO+JHxdIum12wbnb22dQVeEq8sOEvs=; h=From:To:Cc:Subject:In-Reply-To:References:Date:From; b=iBrb3+At0GYKcOFEdFuCK5Vi9ixxMbpvyqAVE7oexzKxhozc6aiDYUDxx+I3zrscK 9BskMlAsfAsfwY6DN7Laso25t1b4aFP6trfD94Ov6/RbjkMAQEl/jlGciHKj5YbLjz QnaixNXhJJARrvn4mN1yv8x/QKTcoTtpahAPHY51jjailYW5WnGFLth419PHZ6Io76 RtzN10B/bDSsdVbP3rBqNrP9rZbrX0yz3x6bFUGgrDxy+w/FUCWirDY3gG4AtKQB4T NKNgIoyMyPlkTpKSyKXjgPdaYOk4gxne8/sCD1T/wUJE8In+bavwBx0EcJF/F/mJ+A 3/HKZI7Xc42Dg== Received: from mail01.iro.umontreal.ca (unknown [172.31.2.1]) by pmg3.iro.umontreal.ca (Proxmox) with ESMTP id 45BB14414DA; Sun, 29 Dec 2024 10:20:28 -0500 (EST) Received: from pastel (104-195-225-43.cpe.teksavvy.com [104.195.225.43]) by mail01.iro.umontreal.ca (Postfix) with ESMTPSA id 19E841204BF; Sun, 29 Dec 2024 10:20:28 -0500 (EST) From: Stefan Monnier To: Eli Zaretskii Subject: Re: bug#74281: 30.0.91; font-lock mode hangs on scrolling large Scheme file In-Reply-To: <86a5cfsr6a.fsf@gnu.org> (Eli Zaretskii's message of "Sat, 28 Dec 2024 18:33:49 +0200") Message-ID: References: <8734k0cs1u.fsf@subvertising.org> <86zfm2jjbo.fsf@gnu.org> <865xo59hhm.fsf@gnu.org> <86a5cfsr6a.fsf@gnu.org> Date: Sun, 29 Dec 2024 10:20:19 -0500 User-Agent: Gnus/5.13 (Gnus v5.13) MIME-Version: 1.0 Content-Type: text/plain X-SPAM-INFO: Spam detection results: 0 ALL_TRUSTED -1 Passed through trusted hosts only via SMTP AWL -0.007 Adjusted score from AWL reputation of From: address BAYES_00 -1.9 Bayes spam probability is 0 to 1% DKIM_SIGNED 0.1 Message has a DKIM or DK signature, not necessarily valid DKIM_VALID -0.1 Message has at least one valid DKIM or DK signature DKIM_VALID_AU -0.1 Message has a valid DKIM or DK signature from author's domain DKIM_VALID_EF -0.1 Message has a valid DKIM or DK signature from envelope-from domain X-SPAM-LEVEL: X-Spam-Score: -2.3 (--) X-Debbugs-Envelope-To: 74281 Cc: divya@subvertising.org, 74281@debbugs.gnu.org X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -3.3 (---) >> > Ping! Divya, could you please try Stefan's suggestions and report >> > back? >> FWIW, I think the change is an improvement in any case, so we could >> install it. Since it's in a "core" file, it might be too risky for >> `emacs-30`, so I'm thinking of installing it in `master`, WDYT? > Fine by me, thanks. Pushed to `master`, thanks. Stefan From debbugs-submit-bounces@debbugs.gnu.org Sun Dec 29 13:01:25 2024 Received: (at 74281) by debbugs.gnu.org; 29 Dec 2024 18:01:25 +0000 Received: from localhost ([127.0.0.1]:56082 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1tRxbQ-0004r6-Lf for submit@debbugs.gnu.org; Sun, 29 Dec 2024 13:01:24 -0500 Received: from mailscanner.iro.umontreal.ca ([132.204.25.50]:32500) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1tRxbP-0004qu-5B for 74281@debbugs.gnu.org; Sun, 29 Dec 2024 13:01:23 -0500 Received: from pmg3.iro.umontreal.ca (localhost [127.0.0.1]) by pmg3.iro.umontreal.ca (Proxmox) with ESMTP id 9D5DE441701; Sun, 29 Dec 2024 13:01:15 -0500 (EST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=iro.umontreal.ca; s=mail; t=1735495274; bh=IO/VpoL1Kpk8eZYIr/a1F2+tbdG6yll/Sgtyaa0q7Ys=; h=From:To:Cc:Subject:In-Reply-To:References:Date:From; b=bPd5v8Nb3AEi5gd4Zm9sJu7a6B9DwlxLJ1LOdDz1AwJj3794NVY4Gk8X4Tu1JgHmc YWTfFWjUg06ph3pvLas/LsKp52nNgdLXPAyWddGwu3GbjnTcR2j7oOm6dGi6syYAWO Jdvdh/uVisnnfsoR4B/h0gA8UcEh2+P62NUqbB1C99XJmnCFNx+VMpcTl3O2XNiQXI Wz+i9O3VbWUmd13/C0CuR9kq8PaFtNlMfMkr4CxCNQ/sX4vbIwUgJH+BHrH8bFrj4G cVVjoONOay+pGWhENjCCWo8Ycq6azFiSkJZUvSqTBFGgtsQAdkvZmkcv0N8D3a68FV +kFb92HXA3HbQ== Received: from mail01.iro.umontreal.ca (unknown [172.31.2.1]) by pmg3.iro.umontreal.ca (Proxmox) with ESMTP id 9682A44166F; Sun, 29 Dec 2024 13:01:14 -0500 (EST) Received: from pastel (104-195-225-43.cpe.teksavvy.com [104.195.225.43]) by mail01.iro.umontreal.ca (Postfix) with ESMTPSA id 674CB12022E; Sun, 29 Dec 2024 13:01:14 -0500 (EST) From: Stefan Monnier To: Eli Zaretskii Subject: Re: bug#74281: 30.0.91; font-lock mode hangs on scrolling large Scheme file In-Reply-To: (Stefan Monnier's message of "Sun, 29 Dec 2024 10:20:19 -0500") Message-ID: References: <8734k0cs1u.fsf@subvertising.org> <86zfm2jjbo.fsf@gnu.org> <865xo59hhm.fsf@gnu.org> <86a5cfsr6a.fsf@gnu.org> Date: Sun, 29 Dec 2024 13:01:14 -0500 User-Agent: Gnus/5.13 (Gnus v5.13) MIME-Version: 1.0 Content-Type: text/plain X-SPAM-INFO: Spam detection results: 0 ALL_TRUSTED -1 Passed through trusted hosts only via SMTP AWL -0.007 Adjusted score from AWL reputation of From: address BAYES_00 -1.9 Bayes spam probability is 0 to 1% DKIM_SIGNED 0.1 Message has a DKIM or DK signature, not necessarily valid DKIM_VALID -0.1 Message has at least one valid DKIM or DK signature DKIM_VALID_AU -0.1 Message has a valid DKIM or DK signature from author's domain DKIM_VALID_EF -0.1 Message has a valid DKIM or DK signature from envelope-from domain X-SPAM-LEVEL: X-Spam-Score: -2.3 (--) X-Debbugs-Envelope-To: 74281 Cc: divya@subvertising.org, 74281@debbugs.gnu.org X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -3.3 (---) >>> > Ping! Divya, could you please try Stefan's suggestions and report >>> > back? >>> FWIW, I think the change is an improvement in any case, so we could >>> install it. Since it's in a "core" file, it might be too risky for >>> `emacs-30`, so I'm thinking of installing it in `master`, WDYT? >> Fine by me, thanks. > Pushed to `master`, thanks. BTW, if we want something on `emacs-30`, we could go with a patch like the one below. Stefan diff --git a/lisp/progmodes/scheme.el b/lisp/progmodes/scheme.el index a0f922f279c..c46422b7218 100644 --- a/lisp/progmodes/scheme.el +++ b/lisp/progmodes/scheme.el @@ -201,7 +201,10 @@ scheme-mode-variables scheme-font-lock-keywords-1 scheme-font-lock-keywords-2) nil t (("+-*/.<>=!?$%_&~^:" . "w") (?#. "w 14")) beginning-of-defun - (font-lock-mark-block-function . mark-defun))) + (font-lock-mark-block-function . mark-defun) + ;; The (?#. "w 14") above causes font-lock to incorrectly + ;; set `font-lock--syntax-table-affects-ppss' to t. + (font-lock--syntax-table-affects-ppss . nil))) (setq-local prettify-symbols-alist lisp-prettify-symbols-alist) (setq-local lisp-doc-string-elt-property 'scheme-doc-string-elt)) From debbugs-submit-bounces@debbugs.gnu.org Sun Dec 29 13:38:47 2024 Received: (at submit) by debbugs.gnu.org; 29 Dec 2024 18:38:47 +0000 Received: from localhost ([127.0.0.1]:56147 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1tRyBa-0006jL-8Z for submit@debbugs.gnu.org; Sun, 29 Dec 2024 13:38:46 -0500 Received: from lists.gnu.org ([209.51.188.17]:33468) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1tRyBX-0006jD-Iy for submit@debbugs.gnu.org; Sun, 29 Dec 2024 13:38:44 -0500 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1tRyBW-0006xq-O1 for bug-gnu-emacs@gnu.org; Sun, 29 Dec 2024 13:38:43 -0500 Received: from latitanza.investici.org ([82.94.249.234]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1tRyBU-0005Qw-H0; Sun, 29 Dec 2024 13:38:42 -0500 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=subvertising.org; s=stigmate; t=1735497507; bh=3Rny6seXddC3cq/glHRybR3CdT1x21eJ7ISYjFlaJa0=; h=Date:From:To:CC:Subject:In-Reply-To:References:From; b=mCQyQWBi0SM7JaCoktres1h++tAdWsgYATUvQJSWQXFQ/ruwIlV3Scl5HE1UhCxAl FYe9jefFvLK+iDaR0OWveIvTXLcH6OYQoOpDI+rGfVpjfGMCJl9J9OqxEOa0bPBns6 HWx0e99nycvPgrzb4VY6yclJ9Hf1PafpY9HdteZI= Received: from mx3.investici.org (unknown [127.0.0.1]) by latitanza.investici.org (Postfix) with ESMTP id 4YLp030HLNzGp3d; Sun, 29 Dec 2024 18:38:27 +0000 (UTC) Received: from [82.94.249.234] (mx3.investici.org [82.94.249.234]) (Authenticated sender: divya@subvertising.org) by localhost (Postfix) with ESMTPSA id 4YLp014FYfzGp3Z; Sun, 29 Dec 2024 18:38:25 +0000 (UTC) Date: Sun, 29 Dec 2024 18:38:17 +0000 From: Divya Ranjan To: bug-gnu-emacs@gnu.org, Eli Zaretskii Subject: =?US-ASCII?Q?Re=3A_bug=2374281=3A_30=2E0=2E91=3B_font-lock_mod?= =?US-ASCII?Q?e_hangs_on_scrolling_large_Scheme_file?= User-Agent: Thunderbird for Android In-Reply-To: <86msggt66d.fsf@gnu.org> References: <8734k0cs1u.fsf@subvertising.org> <86zfm2jjbo.fsf@gnu.org> <865xo59hhm.fsf@gnu.org> <8634iqwqtr.fsf@gnu.org> <86msggt66d.fsf@gnu.org> Message-ID: <3C3AB452-B954-4A3B-9BAB-20209973E21C@subvertising.org> MIME-Version: 1.0 Content-Type: multipart/alternative; boundary=----HU5UDVQ9LQSXY1TT2WXEZOJOQQQKYL Content-Transfer-Encoding: 7bit Received-SPF: pass client-ip=82.94.249.234; envelope-from=divya@subvertising.org; helo=latitanza.investici.org X-Spam_score_int: -27 X-Spam_score: -2.8 X-Spam_bar: -- X-Spam_report: (-2.8 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, HTML_MESSAGE=0.001, RCVD_IN_DNSWL_LOW=-0.7, RCVD_IN_VALIDITY_RPBL_BLOCKED=0.001, RCVD_IN_VALIDITY_SAFE_BLOCKED=0.001, SPF_HELO_PASS=-0.001, SPF_PASS=-0.001 autolearn=ham autolearn_force=no X-Spam_action: no action X-Spam-Score: -1.4 (-) X-Debbugs-Envelope-To: submit Cc: monnier@iro.umontreal.ca, 74281@debbugs.gnu.org X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -2.4 (--) ------HU5UDVQ9LQSXY1TT2WXEZOJOQQQKYL Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: quoted-printable Apologies Eli, I missed this thread! On 28 December 2024 11:09:46 GMT, Eli Zaretskii wrote: >Ping! Ping! Ping! Divya, please respond=2E > >> Cc: monnier@iro=2Eumontreal=2Eca, 74281@debbugs=2Egnu=2Eorg >> Date: Sat, 14 Dec 2024 11:34:40 +0200 >> From: Eli Zaretskii >>=20 >> Ping! Ping! Divya, are you there? >>=20 >> > Cc: 74281@debbugs=2Egnu=2Eorg >> > Date: Sat, 30 Nov 2024 11:51:49 +0200 >> > From: Eli Zaretskii >> >=20 >> > Ping! Divya, could you please try Stefan's suggestions and report >> > back? >> >=20 >> > > Cc: Divya Ranjan , 74281@debbugs=2Egnu=2E= org >> > > From: Stefan Monnier >> > > Date: Thu, 14 Nov 2024 11:56:37 -0500 >> > >=20 >> > > > Stefan, what tools do we have to investigate slowness related to >> > > > parse-partial-sexp? Or maybe you have suggestions for how to spe= ed up >> > > > font-lock in this case? >> > >=20 >> > > Hmm=2E=2E=2E `parse-partial-sexp` is normally expected to be fast, = unless it >> > > has to scan a lot of text=2E >> > >=20 >> > > > Here's the profile I get while moving with C-p through the above = file: >> > >=20 >> > > A stab in the dark, but maybe the relevant call is the one in: >> > >=20 >> > > (state (if (or syntax-ppss-table >> > > (not font-lock--syntax-table-affects-ppss)= ) >> > > (syntax-ppss start) >> > > ;; If `syntax-ppss' doesn't have its own syntax-= table and >> > > ;; we have installed our own syntax-table which >> > > ;; differs from the standard one in ways which a= ffects PPSS, >> > > ;; then we can't use `syntax-ppss' since that wo= uld pollute >> > > ;; and be polluted by its cache=2E >> > > (parse-partial-sexp (point-min) start))) >> > >=20 >> > > so the origin of the slowdown would be the (?#=2E "w 14") in the se= tting >> > > below in `scheme=2Eel`: >> > >=20 >> > > (setq font-lock-defaults >> > > '((scheme-font-lock-keywords >> > > scheme-font-lock-keywords-1 scheme-font-lock-keywords-2) >> > > nil t (("+-*/=2E<>=3D!?$%_&~^:" =2E "w") (?#=2E "w 14")) >> > > beginning-of-defun >> > > (font-lock-mark-block-function =2E mark-defun))) >> > >=20 >> > > in which case, setting a `syntax-ppss-table` should fix the problem= , tho >> > > we could also fix it by being more careful: AFAICT the purpose of t= his >> > > (?#=2E "w 14") is only to change the syntax of `#` from "prefix" to= "word" >> > > without changing the comment-related flags, so it shouldn't cause >> > > `font-lock--syntax-table-affects-ppss` to be set=2E >> > > So, we could solve it by improving the code that sets >> > > `font-lock--syntax-table-affects-ppss`, as in the patch below=2E >> > >=20 >> > >=20 >> > > Stefan >> > >=20 >> > >=20 >> > > diff --git a/lisp/font-lock=2Eel b/lisp/font-lock=2Eel >> > > index 203131bfd5a=2E=2Ef6299920c0a 100644 >> > > --- a/lisp/font-lock=2Eel >> > > +++ b/lisp/font-lock=2Eel >> > > @@ -1955,14 +1955,15 @@ font-lock-set-defaults >> > > (dolist (char (if (numberp (car selem)) >> > > (list (car selem)) >> > > (mapcar #'identity (car selem)))) >> > > - (unless (memq (car (aref font-lock-syntax-table char)) >> > > - '(1 2 3)) ;"=2E" "w" "_" >> > > - (setq font-lock--syntax-table-affects-ppss t)) >> > > - (modify-syntax-entry char syntax font-lock-syntax-table) >> > > - (unless (memq (car (aref font-lock-syntax-table char)) >> > > - '(1 2 3)) ;"=2E" "w" "_" >> > > - (setq font-lock--syntax-table-affects-ppss t)) >> > > - )))) >> > > + (let ((old-syntax (aref font-lock-syntax-table char))) >> > > + (modify-syntax-entry char syntax font-lock-syntax-table) >> > > + (let ((new-syntax (aref font-lock-syntax-table char))) >> > > + (unless (and (equal (cdr old-syntax) (cdr new-syntax)) >> > > + (memq (logand (car old-syntax) 255) '(1 2 = 3 6)) >> > > + (memq (logand (car new-syntax) 255) '(1 2 = 3 6)) >> > > + (equal (ash (car old-syntax) -8) >> > > + (ash (car new-syntax) -8))) >> > > + (setq font-lock--syntax-table-affects-ppss t)))))))) >> > > ;; (nth 4 defaults) used to hold `font-lock-beginning-of-syn= tax-function', >> > > ;; but that was removed in 25=2E1, so if it's a cons cell, w= e assume that >> > > ;; it's part of the variable alist=2E >> > >=20 >> > >=20 >> > >=20 >> > >=20 >> > >=20 >> >=20 >> >=20 >> >=20 >> >=20 >>=20 >>=20 >>=20 >>=20 > > > Divya Ranjan, Mathematics, Philosophy and Libre Software ------HU5UDVQ9LQSXY1TT2WXEZOJOQQQKYL Content-Type: text/html; charset=utf-8 Content-Transfer-Encoding: quoted-printable
Apologies Eli, I missed this thr= ead!


On 28 Decemb= er 2024 11:09:46 GMT, Eli Zaretskii <eliz@gnu=2Eorg> wrote:
Ping! Ping! Ping! Divya, please re= spond=2E

Cc: monnier@iro=2Eumontreal=2Eca, 74281@debbugs=2Egnu=2EorgDate: Sat, 14 Dec 2024 11:34:40 +0200
From: Eli Zaretskii <eliz@gnu= =2Eorg>

Ping! Ping! Divya, are you there?

Cc: 74281@debbugs= =2Egnu=2Eorg
Date: Sat, 30 Nov 2024 11:51:49 +0200
From: Eli Zaretski= i <eliz@gnu=2Eorg>

Ping! Divya, could you please try Stefan's= suggestions and report
back?

Cc: Divya Ranjan <divya@subvertisi= ng=2Eorg>, 74281@debbugs=2Egnu=2Eorg
From: Stefan Monnier <monnier= @iro=2Eumontreal=2Eca>
Date: Thu, 14 Nov 2024 11:56:37 -0500

<= /div>
Ste= fan, what tools do we have to investigate slowness related to
parse-part= ial-sexp? Or maybe you have suggestions for how to speed up
font-lock i= n this case?

Hmm=2E=2E=2E `pars= e-partial-sexp` is normally expected to be fast, unless it
has to scan a= lot of text=2E

Here's the profile I get while moving with C-p through= the above file:

A stab in the = dark, but maybe the relevant call is the one in:

(state (i= f (or syntax-ppss-table
(not font-lock--syntax-= table-affects-ppss))
(syntax-ppss start)
= ;; If `syntax-ppss' doesn't have its own syntax-table and
= ;; we have installed our own syntax-table which
= ;; differs from the standard one in ways which affects PPSS, ;; then we can't use `syntax-ppss' since that would pol= lute
;; and be polluted by its cache=2E
= (parse-partial-sexp (point-min) start)))

so the origin of t= he slowdown would be the (?#=2E "w 14") in the setting
below in `scheme= =2Eel`:

(setq font-lock-defaults
'((scheme-font-lock-ke= ywords
scheme-font-lock-keywords-1 scheme-font-lock-keywords-= 2)
nil t (("+-*/=2E<>=3D!?$%_&~^:" =2E "w") (?#=2E "= w 14"))
beginning-of-defun
(font-lock-mark-block-= function =2E mark-defun)))

in which case, setting a `syntax-ppss-tab= le` should fix the problem, tho
we could also fix it by being more caref= ul: AFAICT the purpose of this
(?#=2E "w 14") is only to change the synt= ax of `#` from "prefix" to "word"
without changing the comment-related f= lags, so it shouldn't cause
`font-lock--syntax-table-affects-ppss` to be= set=2E
So, we could solve it by improving the code that sets
`font-l= ock--syntax-table-affects-ppss`, as in the patch below=2E


= Stefan


diff --git a/lisp/font-lock=2Eel b/lisp/font-lock=2Eel<= br>index 203131bfd5a=2E=2Ef6299920c0a 100644
--- a/lisp/font-lock=2Eel+++ b/lisp/font-lock=2Eel
@@ -1955,14 +1955,15 @@ font-lock-set-defaul= ts
(dolist (char (if (numberp (car selem))
(list (car= selem))
(mapcar #'identity (car selem))))
- (unless (m= emq (car (aref font-lock-syntax-table char))
- '(1 2= 3)) ;"=2E" "w" "_"
- (setq font-lock--syntax-table-affects-p= pss t))
- (modify-syntax-entry char syntax font-lock-syntax-table)=
- (unless (memq (car (aref font-lock-syntax-table char))
- = '(1 2 3)) ;"=2E" "w" "_"
- (setq font-lock--= syntax-table-affects-ppss t))
- ))))
+ (let ((old-syntax = (aref font-lock-syntax-table char)))
+ (modify-syntax-entry char= syntax font-lock-syntax-table)
+ (let ((new-syntax (aref font-l= ock-syntax-table char)))
+ (unless (and (equal (cdr old-syntax= ) (cdr new-syntax))
+ (memq (logand (car old-synt= ax) 255) '(1 2 3 6))
+ (memq (logand (car new-syn= tax) 255) '(1 2 3 6))
+ (equal (ash (car old-synt= ax) -8)
+ (ash (car new-syntax) -8)))
+= (setq font-lock--syntax-table-affects-ppss t))))))))
= ;; (nth 4 defaults) used to hold `font-lock-beginning-of-syntax-function',=
;; but that was removed in 25=2E1, so if it's a cons cell, we as= sume that
;; it's part of the variable alist=2E












<= br>

Divya Ranjan, M= athematics, Philosophy and Libre Software
------HU5UDVQ9LQSXY1TT2WXEZOJOQQQKYL-- From debbugs-submit-bounces@debbugs.gnu.org Sun Dec 29 13:43:10 2024 Received: (at 74281) by debbugs.gnu.org; 29 Dec 2024 18:43:11 +0000 Received: from localhost ([127.0.0.1]:56156 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1tRyFq-0006wW-Ez for submit@debbugs.gnu.org; Sun, 29 Dec 2024 13:43:10 -0500 Received: from latitanza.investici.org ([82.94.249.234]:65181) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1tRyFn-0006wK-QI for 74281@debbugs.gnu.org; Sun, 29 Dec 2024 13:43:08 -0500 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=subvertising.org; s=stigmate; t=1735497787; bh=EVC4njjfs4+C//JwjNuh5HXU8mzdnFu2fRH/+rp013I=; h=Date:From:To:CC:Subject:In-Reply-To:References:From; b=lXuFic/eyiBNRCO74QlRC3UqMw6CW4+Dq9wm/Ordjw8FJ1eNJHEJ/K4wSqHuLSv8m tOyste3BTTRv2Dv/x0GJf3rbSK6IaMOrk61FKvdRvVvrQyL40clfY6NtYXuUbwB41T ZVW4WU/lWoCAXVIfJ1F3PkbF9Pk27nemo2LW4RYY= Received: from mx3.investici.org (unknown [127.0.0.1]) by latitanza.investici.org (Postfix) with ESMTP id 4YLp5R38FCzGp3n; Sun, 29 Dec 2024 18:43:07 +0000 (UTC) Received: from [82.94.249.234] (mx3.investici.org [82.94.249.234]) (Authenticated sender: divya@subvertising.org) by localhost (Postfix) with ESMTPSA id 4YLp5Q11t7zGp3Z; Sun, 29 Dec 2024 18:43:05 +0000 (UTC) Date: Sun, 29 Dec 2024 18:43:01 +0000 From: Divya Ranjan To: Stefan Monnier , Eli Zaretskii Subject: =?US-ASCII?Q?Re=3A_bug=2374281=3A_30=2E0=2E91=3B_font-lock_mod?= =?US-ASCII?Q?e_hangs_on_scrolling_large_Scheme_file?= User-Agent: Thunderbird for Android In-Reply-To: References: <8734k0cs1u.fsf@subvertising.org> <86zfm2jjbo.fsf@gnu.org> <865xo59hhm.fsf@gnu.org> <86a5cfsr6a.fsf@gnu.org> Message-ID: <66CF0D14-5C95-47C8-B96E-FB1DEE0BD065@subvertising.org> MIME-Version: 1.0 Content-Type: multipart/alternative; boundary=----8RUTH3QLEPAGGMGVUDZFECCU401W0G Content-Transfer-Encoding: 7bit X-Spam-Score: -0.7 (/) X-Debbugs-Envelope-To: 74281 Cc: 74281@debbugs.gnu.org X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -1.7 (-) ------8RUTH3QLEPAGGMGVUDZFECCU401W0G Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: quoted-printable I recently did a build of `master`, I don't think the bug was fixed=2E Have= you tested with `tex=2Eel`? On 29 December 2024 15:20:19 GMT, Stefan Monnier wrote: >>> > Ping! Divya, could you please try Stefan's suggestions and report >>> > back? >>> FWIW, I think the change is an improvement in any case, so we could >>> install it=2E Since it's in a "core" file, it might be too risky for >>> `emacs-30`, so I'm thinking of installing it in `master`, WDYT? >> Fine by me, thanks=2E > >Pushed to `master`, thanks=2E > > > Stefan > Divya Ranjan, Mathematics, Philosophy and Libre Software ------8RUTH3QLEPAGGMGVUDZFECCU401W0G Content-Type: text/html; charset=utf-8 Content-Transfer-Encoding: quoted-printable
I recently did a build of `maste= r`, I don't think the bug was fixed=2E Have you tested with `tex=2Eel`?

On 29 December 2024 = 15:20:19 GMT, Stefan Monnier <monnier@iro=2Eumontreal=2Eca> wrote:
Ping! Divya, could you please try St= efan's suggestions and report
back?
FWIW, I think the change is an improvement in any case, so we could
= install it=2E Since it's in a "core" file, it might be too risky for
`e= macs-30`, so I'm thinking of installing it in `master`, WDYT?
Fine by me, thanks=2E

Pushed to `master`, thanks=2E


Stefan
Divya Ranjan, Mathem= atics, Philosophy and Libre Software
------8RUTH3QLEPAGGMGVUDZFECCU401W0G-- From debbugs-submit-bounces@debbugs.gnu.org Sun Dec 29 13:58:45 2024 Received: (at 74281) by debbugs.gnu.org; 29 Dec 2024 18:58:45 +0000 Received: from localhost ([127.0.0.1]:56176 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1tRyUu-0007bW-K4 for submit@debbugs.gnu.org; Sun, 29 Dec 2024 13:58:44 -0500 Received: from eggs.gnu.org ([209.51.188.92]:57900) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1tRyUs-0007bI-4U for 74281@debbugs.gnu.org; Sun, 29 Dec 2024 13:58:43 -0500 Received: from fencepost.gnu.org ([2001:470:142:3::e]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1tRyUm-0007Gw-84; Sun, 29 Dec 2024 13:58:36 -0500 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=f20lHdyn4bV1ZZfupQb+fIu2DIWSmqK6LcgVd7DKFJI=; b=VhgBf2FUyD2R kwIsyaxffnHKEFXedykWiwqVWg/oVyY/feEn/cAj4xv3f1UrOOjwQfBLLQ1JcHCpIBzI48czWDlCN OqBjsNvsaOLuUUiP1QR/MjSpdSTd0JHjrjurin2aus95DN9fVTZztadksilW8tWI1PKlan5EsUshx XMXHPDEEmQ9k4XjgQpX8Jv0z5s55aNRlaYksUWZgQJrcS43wRjuCp25tuGJh6gJXQrHXZv8w0bwTf CEgKVuD/WKTLsakG80aBtPIDxoCVjhTBXgTo7sMy0xYz4HW7CccAsASiyayoj3oJ5CYUdryzmF5hl H1Y12TXvBDWhXNrgnXeTIQ==; Date: Sun, 29 Dec 2024 20:58:31 +0200 Message-Id: <86v7v2pb8o.fsf@gnu.org> From: Eli Zaretskii To: Stefan Monnier In-Reply-To: (message from Stefan Monnier on Sun, 29 Dec 2024 13:01:14 -0500) Subject: Re: bug#74281: 30.0.91; font-lock mode hangs on scrolling large Scheme file References: <8734k0cs1u.fsf@subvertising.org> <86zfm2jjbo.fsf@gnu.org> <865xo59hhm.fsf@gnu.org> <86a5cfsr6a.fsf@gnu.org> X-Spam-Score: -2.3 (--) X-Debbugs-Envelope-To: 74281 Cc: divya@subvertising.org, 74281@debbugs.gnu.org X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -3.3 (---) > From: Stefan Monnier > Cc: divya@subvertising.org, 74281@debbugs.gnu.org > Date: Sun, 29 Dec 2024 13:01:14 -0500 > > BTW, if we want something on `emacs-30`, we could go with a patch like > the one below. > > > Stefan > > > diff --git a/lisp/progmodes/scheme.el b/lisp/progmodes/scheme.el > index a0f922f279c..c46422b7218 100644 > --- a/lisp/progmodes/scheme.el > +++ b/lisp/progmodes/scheme.el > @@ -201,7 +201,10 @@ scheme-mode-variables > scheme-font-lock-keywords-1 scheme-font-lock-keywords-2) > nil t (("+-*/.<>=!?$%_&~^:" . "w") (?#. "w 14")) > beginning-of-defun > - (font-lock-mark-block-function . mark-defun))) > + (font-lock-mark-block-function . mark-defun) > + ;; The (?#. "w 14") above causes font-lock to incorrectly > + ;; set `font-lock--syntax-table-affects-ppss' to t. > + (font-lock--syntax-table-affects-ppss . nil))) > (setq-local prettify-symbols-alist lisp-prettify-symbols-alist) > (setq-local lisp-doc-string-elt-property 'scheme-doc-string-elt)) What does it do, and what potential harm could happen if we install this? From debbugs-submit-bounces@debbugs.gnu.org Sun Dec 29 15:02:04 2024 Received: (at 74281) by debbugs.gnu.org; 29 Dec 2024 20:02:04 +0000 Received: from localhost ([127.0.0.1]:56303 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1tRzUC-0002GU-2s for submit@debbugs.gnu.org; Sun, 29 Dec 2024 15:02:04 -0500 Received: from mailscanner.iro.umontreal.ca ([132.204.25.50]:44710) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1tRzU9-0002Fm-K4 for 74281@debbugs.gnu.org; Sun, 29 Dec 2024 15:02:02 -0500 Received: from pmg2.iro.umontreal.ca (localhost.localdomain [127.0.0.1]) by pmg2.iro.umontreal.ca (Proxmox) with ESMTP id E986180329; Sun, 29 Dec 2024 15:01:54 -0500 (EST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=iro.umontreal.ca; s=mail; t=1735502509; bh=AIggM/D9rW5/ObZdIn9LpOEPMmiMUnsRw03/DVeCaqY=; h=From:To:Cc:Subject:In-Reply-To:References:Date:From; b=QucGayWkKKyIguH3VOI4jKlc4J160BdLBhWpCTUExgAhGsU5MveWLdqrroGdJvpjK LSevIiGVEJpdV7y/Hh1Y/2XPgUCE7KCUFWKRphl/qO7bG1L4bCTGFiR8yC+yb860w9 zT1rvA4c16/wjq3GKrdwfszYgilP2jDzh2TqDdm7aeYaAFvtrLd8ISbXK9r6At/Qpa H5ma0ZPZcQuNq5sDctvSSwYbKqK17id0u3YxNf4nNlO1HvBUnffKruQ/PqlO7MMpwM mlluplvV2tvjJ48Pj+VprztpoQU5SWW5bhzoLGXd6oSxflVRymPIhWviVE5ia6LVd7 koJZ7omlmsosQ== Received: from mail01.iro.umontreal.ca (unknown [172.31.2.1]) by pmg2.iro.umontreal.ca (Proxmox) with ESMTP id CB6968001E; Sun, 29 Dec 2024 15:01:49 -0500 (EST) Received: from pastel (104-195-225-43.cpe.teksavvy.com [104.195.225.43]) by mail01.iro.umontreal.ca (Postfix) with ESMTPSA id 99616120280; Sun, 29 Dec 2024 15:01:49 -0500 (EST) From: Stefan Monnier To: Eli Zaretskii Subject: Re: bug#74281: 30.0.91; font-lock mode hangs on scrolling large Scheme file In-Reply-To: <86v7v2pb8o.fsf@gnu.org> (Eli Zaretskii's message of "Sun, 29 Dec 2024 20:58:31 +0200") Message-ID: References: <8734k0cs1u.fsf@subvertising.org> <86zfm2jjbo.fsf@gnu.org> <865xo59hhm.fsf@gnu.org> <86a5cfsr6a.fsf@gnu.org> <86v7v2pb8o.fsf@gnu.org> Date: Sun, 29 Dec 2024 15:01:49 -0500 User-Agent: Gnus/5.13 (Gnus v5.13) MIME-Version: 1.0 Content-Type: text/plain X-SPAM-INFO: Spam detection results: 0 ALL_TRUSTED -1 Passed through trusted hosts only via SMTP AWL -0.060 Adjusted score from AWL reputation of From: address BAYES_00 -1.9 Bayes spam probability is 0 to 1% DKIM_SIGNED 0.1 Message has a DKIM or DK signature, not necessarily valid DKIM_VALID -0.1 Message has at least one valid DKIM or DK signature DKIM_VALID_AU -0.1 Message has a valid DKIM or DK signature from author's domain DKIM_VALID_EF -0.1 Message has a valid DKIM or DK signature from envelope-from domain X-SPAM-LEVEL: X-Spam-Score: -2.3 (--) X-Debbugs-Envelope-To: 74281 Cc: divya@subvertising.org, 74281@debbugs.gnu.org X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -3.3 (---) >> diff --git a/lisp/progmodes/scheme.el b/lisp/progmodes/scheme.el >> index a0f922f279c..c46422b7218 100644 >> --- a/lisp/progmodes/scheme.el >> +++ b/lisp/progmodes/scheme.el >> @@ -201,7 +201,10 @@ scheme-mode-variables >> scheme-font-lock-keywords-1 scheme-font-lock-keywords-2) >> nil t (("+-*/.<>=!?$%_&~^:" . "w") (?#. "w 14")) >> beginning-of-defun >> - (font-lock-mark-block-function . mark-defun))) >> + (font-lock-mark-block-function . mark-defun) >> + ;; The (?#. "w 14") above causes font-lock to incorrectly >> + ;; set `font-lock--syntax-table-affects-ppss' to t. >> + (font-lock--syntax-table-affects-ppss . nil))) >> (setq-local prettify-symbols-alist lisp-prettify-symbols-alist) >> (setq-local lisp-doc-string-elt-property 'scheme-doc-string-elt)) > > What does it do, This variable controls whether font-lock uses `syntax-ppss` or not. By setting to nil, it lets font-lock use `syntax-ppss` which means that on large buffers it tends to be much faster because it doesn't need to `parse-partial-sexp` all the way from `point-min` every time. > and what potential harm could happen if we install this? If it's set incorrectly, it can lead to messed up `syntax-ppss` state (because some calls use one syntax table and others use another) which could lead to mis-indentation, mis-fontification, incorrect highlighting of matched paren, incorrect buffer navigation, etc... Of course, these risks are confined to those buffers that use `scheme-mode` or a mode that derives from it. I believe the setting is correct for `scheme-mode`, but it's possible that some derived mode changes the `font-lock-syntax-table` and relies (incorrectly) on `scheme-mode` having already set `font-lock--syntax-table-affects-ppss` to t. This said, AFAICT this performance problem has been with us since Emacs-28 (commit cdadb7a97cbe), so it's not super urgent to fix it. I think we're fine with the fix on `master`. It would be nice to get confirmation from Divya that it does fix the problem he sees. Stefan From debbugs-submit-bounces@debbugs.gnu.org Sun Dec 29 23:45:30 2024 Received: (at 74281) by debbugs.gnu.org; 30 Dec 2024 04:45:30 +0000 Received: from localhost ([127.0.0.1]:56933 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1tS7ek-0000Us-6m for submit@debbugs.gnu.org; Sun, 29 Dec 2024 23:45:30 -0500 Received: from mailscanner.iro.umontreal.ca ([132.204.25.50]:42585) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1tS7eh-0000UX-SY for 74281@debbugs.gnu.org; Sun, 29 Dec 2024 23:45:28 -0500 Received: from pmg1.iro.umontreal.ca (localhost.localdomain [127.0.0.1]) by pmg1.iro.umontreal.ca (Proxmox) with ESMTP id BBA91100055; Sun, 29 Dec 2024 23:45:20 -0500 (EST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=iro.umontreal.ca; s=mail; t=1735533919; bh=XFlC1J6UHIhMsC20lD7v40x0Cd1P1MG+C9+qVS+EYHs=; h=From:To:Cc:Subject:In-Reply-To:References:Date:From; b=M67uDpCyDp3yJzahOJYmSVgswhOgq9UdE5qEYPWVEUi3HbXqExOTCQXyc3DRtHvY9 J3mPwHw6IkQEiQ0zdcZmHaIObrl+VRLJR/3Iuhi9GEI21+xCNeXVpTEb78eA1QTxMk V2YpiODeZSUjD0eYiekUqG+bmBXzCuEI+P2uhUcBNY5wOZStZtMcbaZoAAWU1TUs3a zuu/eqGcA8R90PvEMgBkBDWbb2HFDL3Yw3eiaPOxSplPT+Ik6X9OKbtgC2BeTTbfnZ 0hNW5zXgZDjvigbKDL++xKPVSeOjCw1f6t14umKMmnn2IcP8eRLhrxIAQy1B2TqTiR LIvxB2tLTjjMw== Received: from mail01.iro.umontreal.ca (unknown [172.31.2.1]) by pmg1.iro.umontreal.ca (Proxmox) with ESMTP id E751D100043; Sun, 29 Dec 2024 23:45:19 -0500 (EST) Received: from pastel (104-195-225-43.cpe.teksavvy.com [104.195.225.43]) by mail01.iro.umontreal.ca (Postfix) with ESMTPSA id BA1F9120611; Sun, 29 Dec 2024 23:45:19 -0500 (EST) From: Stefan Monnier To: Divya Ranjan Subject: Re: bug#74281: 30.0.91; font-lock mode hangs on scrolling large Scheme file In-Reply-To: <66CF0D14-5C95-47C8-B96E-FB1DEE0BD065@subvertising.org> (Divya Ranjan's message of "Sun, 29 Dec 2024 18:43:01 +0000") Message-ID: References: <8734k0cs1u.fsf@subvertising.org> <86zfm2jjbo.fsf@gnu.org> <865xo59hhm.fsf@gnu.org> <86a5cfsr6a.fsf@gnu.org> <66CF0D14-5C95-47C8-B96E-FB1DEE0BD065@subvertising.org> Date: Sun, 29 Dec 2024 23:45:19 -0500 User-Agent: Gnus/5.13 (Gnus v5.13) MIME-Version: 1.0 Content-Type: text/plain X-SPAM-INFO: Spam detection results: 0 ALL_TRUSTED -1 Passed through trusted hosts only via SMTP AWL -0.536 Adjusted score from AWL reputation of From: address BAYES_00 -1.9 Bayes spam probability is 0 to 1% DKIM_SIGNED 0.1 Message has a DKIM or DK signature, not necessarily valid DKIM_VALID -0.1 Message has at least one valid DKIM or DK signature DKIM_VALID_AU -0.1 Message has a valid DKIM or DK signature from author's domain DKIM_VALID_EF -0.1 Message has a valid DKIM or DK signature from envelope-from domain X-SPAM-LEVEL: X-Spam-Score: -2.3 (--) X-Debbugs-Envelope-To: 74281 Cc: Eli Zaretskii , 74281@debbugs.gnu.org X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -3.3 (---) > I recently did a build of `master`, I don't think the bug was fixed. > Have you tested with `tex.el`? Your bug report was about Scheme files. If you see the "same" problem for (La)TeX files, I think it would be best to open a new bug report for it. IIRC, `font-lock--syntax-table-affects-ppss` can't be nil in `latex-mode` (or at least it's not clear how to do that without breaking something) because of how $...$ is paired (which doesn't always obey the nesting of braces). Stefan From debbugs-submit-bounces@debbugs.gnu.org Mon Dec 30 00:36:01 2024 Received: (at submit) by debbugs.gnu.org; 30 Dec 2024 05:36:01 +0000 Received: from localhost ([127.0.0.1]:57011 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1tS8Rc-0002xj-K0 for submit@debbugs.gnu.org; Mon, 30 Dec 2024 00:36:01 -0500 Received: from lists.gnu.org ([209.51.188.17]:37968) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1tS8Rb-0002xa-3U for submit@debbugs.gnu.org; Mon, 30 Dec 2024 00:35:59 -0500 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1tS8Ra-0004pp-Jd for bug-gnu-emacs@gnu.org; Mon, 30 Dec 2024 00:35:58 -0500 Received: from latitanza.investici.org ([82.94.249.234]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1tS8RX-0002k8-Pq; Mon, 30 Dec 2024 00:35:57 -0500 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=subvertising.org; s=stigmate; t=1735536953; bh=JQ4oZG49HCxfgJNEnVujYjRt9isfkBtUHBYSaQf7MHM=; h=Date:From:To:CC:Subject:In-Reply-To:References:From; b=Nr2JvzsrodFbjBOKIwpMjHPkHOopow36Obmn96TqvIPEhBmEsOPNHrT0TEYi2AXmd W2Dmu21De+aAHnQkZuQIQLWteAkySn4HqD2sI4SP3K4DphGutJPo6THW9+cu5Xb2CZ 5x3N5WD9CgtSsNWM6sNw27vRgjAH+FXbsOMeRRwU= Received: from mx3.investici.org (unknown [127.0.0.1]) by latitanza.investici.org (Postfix) with ESMTP id 4YM4Zd1T2hzGp44; Mon, 30 Dec 2024 05:35:53 +0000 (UTC) Received: from [82.94.249.234] (mx3.investici.org [82.94.249.234]) (Authenticated sender: divya@subvertising.org) by localhost (Postfix) with ESMTPSA id 4YM4Zc2hgbzGp40; Mon, 30 Dec 2024 05:35:52 +0000 (UTC) Date: Mon, 30 Dec 2024 05:35:48 +0000 From: Divya Ranjan To: Stefan Monnier , "Stefan Monnier via Bug reports for GNU Emacs, the Swiss army knife of text editors" Subject: =?US-ASCII?Q?Re=3A_bug=2374281=3A_30=2E0=2E91=3B_font-lock_mod?= =?US-ASCII?Q?e_hangs_on_scrolling_large_Scheme_file?= User-Agent: Thunderbird for Android In-Reply-To: References: <8734k0cs1u.fsf@subvertising.org> <86zfm2jjbo.fsf@gnu.org> <865xo59hhm.fsf@gnu.org> <86a5cfsr6a.fsf@gnu.org> <66CF0D14-5C95-47C8-B96E-FB1DEE0BD065@subvertising.org> Message-ID: <6A6B56C8-2635-4FDA-82F6-A63BD22238CC@subvertising.org> MIME-Version: 1.0 Content-Type: multipart/alternative; boundary=----AM2DW7FZNQGDOIT8CKNLLTF0IOPEZ8 Content-Transfer-Encoding: 7bit Received-SPF: pass client-ip=82.94.249.234; envelope-from=divya@subvertising.org; helo=latitanza.investici.org X-Spam_score_int: -27 X-Spam_score: -2.8 X-Spam_bar: -- X-Spam_report: (-2.8 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, HTML_MESSAGE=0.001, RCVD_IN_DNSWL_LOW=-0.7, RCVD_IN_VALIDITY_RPBL_BLOCKED=0.001, RCVD_IN_VALIDITY_SAFE_BLOCKED=0.001, SPF_HELO_PASS=-0.001, SPF_PASS=-0.001 autolearn=ham autolearn_force=no X-Spam_action: no action X-Spam-Score: -1.4 (-) X-Debbugs-Envelope-To: submit Cc: Eli Zaretskii , 74281@debbugs.gnu.org X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -2.4 (--) ------AM2DW7FZNQGDOIT8CKNLLTF0IOPEZ8 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: quoted-printable Apologies, I mistyped during travelling, the file I was referring to was th= e original file of the bug report=2E `tex=2Escm` is the file from the Guix = source tree: /gnu/packages/tex=2Escm Regards, On 30 December 2024 04:45:19 GMT, "Stefan Monnier via Bug reports for GNU = Emacs, the Swiss army knife of text editors" wrot= e: >> I recently did a build of `master`, I don't think the bug was fixed=2E >> Have you tested with `tex=2Eel`? > >Your bug report was about Scheme files=2E >If you see the "same" problem for (La)TeX files, I think it would be >best to open a new bug report for it=2E > >IIRC, `font-lock--syntax-table-affects-ppss` can't be nil in >`latex-mode` (or at least it's not clear how to do that without breaking >something) because of how $=2E=2E=2E$ is paired (which doesn't always obe= y the >nesting of braces)=2E > > > Stefan > > > > Divya Ranjan, Mathematics, Philosophy and Libre Software ------AM2DW7FZNQGDOIT8CKNLLTF0IOPEZ8 Content-Type: text/html; charset=utf-8 Content-Transfer-Encoding: quoted-printable
Apologies, I mistyped during tra= velling, the file I was referring to was the original file of the bug repor= t=2E `tex=2Escm` is the file from the Guix source tree: /gnu/packages/tex= =2Escm

Regards,


On 30 December 2024 04:45:19 GMT, "Stefan Monnier via Bug reports for= GNU Emacs, the Swiss army knife of text editors" <bug-gnu-emacs@gnu=2Eo= rg> wrote:
I recently did a build of `master`, I don't think the bug wa= s fixed=2E
Have you tested with `tex=2Eel`?

Your bug report was about Scheme files=2E
If you see the= "same" problem for (La)TeX files, I think it would be
best to open a ne= w bug report for it=2E

IIRC, `font-lock--syntax-table-affects-ppss` = can't be nil in
`latex-mode` (or at least it's not clear how to do that = without breaking
something) because of how $=2E=2E=2E$ is paired (which = doesn't always obey the
nesting of braces)=2E


Stefan<= br>



Divya R= anjan, Mathematics, Philosophy and Libre Software
------AM2DW7FZNQGDOIT8CKNLLTF0IOPEZ8-- From debbugs-submit-bounces@debbugs.gnu.org Mon Dec 30 07:47:28 2024 Received: (at 74281) by debbugs.gnu.org; 30 Dec 2024 12:47:28 +0000 Received: from localhost ([127.0.0.1]:57708 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1tSFBA-0007rf-6C for submit@debbugs.gnu.org; Mon, 30 Dec 2024 07:47:28 -0500 Received: from eggs.gnu.org ([209.51.188.92]:35252) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1tSFB7-0007rP-Jn for 74281@debbugs.gnu.org; Mon, 30 Dec 2024 07:47:26 -0500 Received: from fencepost.gnu.org ([2001:470:142:3::e]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1tSFB0-0007dS-Et; Mon, 30 Dec 2024 07:47:18 -0500 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=pw/5rw05Z7Nbk40sErkrP5fMkVONCxZ6vGOqF2pkjQg=; b=EQMrw7YhpLvm LhbXW3vCkuaGDJtOMZOIf7QHkmbgU9In9VHq7TnDLMTrroEQMe5hePMT813SxQif8GjITmlOFNOyn uK1v0NywrqFjvXnp87WTYqu0xLbNQqMhMCk3u9upSi14qi2CGQ1IoxGRmTOsVYf/ZlNWCuziQSj8C nbCJuxIDSYDR7ucW9n9PnZwhFuH085o7dEW4pphB04cJQQH4IayJlRxLcqZIKmKexXW7nYelT/Bfc Dn9erExcbwB4TDaiFeeKFbVBmK93aHXhQ7Pt/j96faifVPdF6aunQ51DnRKZKUw2DUVCpVpvti/6q B20eBe9gAlxb9Ae0n/z9jQ==; Date: Mon, 30 Dec 2024 14:47:15 +0200 Message-Id: <86h66lpcbw.fsf@gnu.org> From: Eli Zaretskii To: Stefan Monnier In-Reply-To: (message from Stefan Monnier on Sun, 29 Dec 2024 15:01:49 -0500) Subject: Re: bug#74281: 30.0.91; font-lock mode hangs on scrolling large Scheme file References: <8734k0cs1u.fsf@subvertising.org> <86zfm2jjbo.fsf@gnu.org> <865xo59hhm.fsf@gnu.org> <86a5cfsr6a.fsf@gnu.org> <86v7v2pb8o.fsf@gnu.org> X-Spam-Score: -2.3 (--) X-Debbugs-Envelope-To: 74281 Cc: divya@subvertising.org, 74281@debbugs.gnu.org X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -3.3 (---) > From: Stefan Monnier > Cc: divya@subvertising.org, 74281@debbugs.gnu.org > Date: Sun, 29 Dec 2024 15:01:49 -0500 > > This said, AFAICT this performance problem has been with us since > Emacs-28 (commit cdadb7a97cbe), so it's not super urgent to fix it. > I think we're fine with the fix on `master`. Agreed. We can later consider backporting to Emacs 30.2. > It would be nice to get confirmation from Divya that it does fix the > problem he sees. Right. From debbugs-submit-bounces@debbugs.gnu.org Mon Dec 30 16:06:29 2024 Received: (at 74281) by debbugs.gnu.org; 30 Dec 2024 21:06:29 +0000 Received: from localhost ([127.0.0.1]:60207 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1tSMy5-0007kF-Ea for submit@debbugs.gnu.org; Mon, 30 Dec 2024 16:06:29 -0500 Received: from mailscanner.iro.umontreal.ca ([132.204.25.50]:59757) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1tSMy1-0007jy-Lw for 74281@debbugs.gnu.org; Mon, 30 Dec 2024 16:06:28 -0500 Received: from pmg3.iro.umontreal.ca (localhost [127.0.0.1]) by pmg3.iro.umontreal.ca (Proxmox) with ESMTP id 81189441D2B; Mon, 30 Dec 2024 16:06:14 -0500 (EST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=iro.umontreal.ca; s=mail; t=1735592767; bh=f2lTCP/y5dgfD1QhMIelo+HX0KcCGyv+ZXgwBJXKrVM=; h=From:To:Cc:Subject:In-Reply-To:References:Date:From; b=n3FvIEGTNfHqMW4Y7reIb6GsyBMgSPOk8Ho4A3bymXgirCNlO77ytVHmG9eky5yaI nCeY56ixjQxKW6OQyHJ9Y9S5ZaTI5Jq5dPMESGObijQ6Dkl4BB6iKW55SS4+4iRWHe D/B3az0KRVZgYFlzKGssSWUPkiFbsO+yJzTmiwbYIoU77GtmQWLBMcqelfWjk/DC9/ WKJaMc7yscE65RqWGAtrteaUalZSuGrxwuQqPWJbaTRKvA7DiaeFb0nlCpnqRgEwC/ wxLEa5nGEmjpyockDiu2yLZFODgiQFeQFc0gjTcw8z21dmBqXzh0prh1gewfWl5bXG 9B4os4n8bHXyA== Received: from mail01.iro.umontreal.ca (unknown [172.31.2.1]) by pmg3.iro.umontreal.ca (Proxmox) with ESMTP id D1E3E441DA1; Mon, 30 Dec 2024 16:06:07 -0500 (EST) Received: from alfajor (modemcable005.21-80-70.mc.videotron.ca [70.80.21.5]) by mail01.iro.umontreal.ca (Postfix) with ESMTPSA id A6BD91203A5; Mon, 30 Dec 2024 16:06:07 -0500 (EST) From: Stefan Monnier To: Divya Ranjan Subject: Re: bug#74281: 30.0.91; font-lock mode hangs on scrolling large Scheme file In-Reply-To: <6A6B56C8-2635-4FDA-82F6-A63BD22238CC@subvertising.org> (Divya Ranjan's message of "Mon, 30 Dec 2024 05:35:48 +0000") Message-ID: References: <8734k0cs1u.fsf@subvertising.org> <86zfm2jjbo.fsf@gnu.org> <865xo59hhm.fsf@gnu.org> <86a5cfsr6a.fsf@gnu.org> <66CF0D14-5C95-47C8-B96E-FB1DEE0BD065@subvertising.org> <6A6B56C8-2635-4FDA-82F6-A63BD22238CC@subvertising.org> Date: Mon, 30 Dec 2024 16:06:06 -0500 User-Agent: Gnus/5.13 (Gnus v5.13) MIME-Version: 1.0 Content-Type: text/plain X-SPAM-INFO: Spam detection results: 0 ALL_TRUSTED -1 Passed through trusted hosts only via SMTP AWL 0.048 Adjusted score from AWL reputation of From: address BAYES_00 -1.9 Bayes spam probability is 0 to 1% DKIM_SIGNED 0.1 Message has a DKIM or DK signature, not necessarily valid DKIM_VALID -0.1 Message has at least one valid DKIM or DK signature DKIM_VALID_AU -0.1 Message has a valid DKIM or DK signature from author's domain DKIM_VALID_EF -0.1 Message has a valid DKIM or DK signature from envelope-from domain X-SPAM-LEVEL: X-Spam-Score: -2.3 (--) X-Debbugs-Envelope-To: 74281 Cc: eliz@gnu.org, 74281@debbugs.gnu.org X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -3.3 (---) > Apologies, I mistyped during travelling, the file I was referring to was the > original file of the bug report. `tex.scm` is the file from the Guix source > tree: /gnu/packages/tex.scm Hmm... on my tests, I can reproduce in `emacs-30` the very slow font-locking you described when we're at the end of the buffer, but not on `master`. Just to confirm that you're running the "right" code, can you do `M-: font-lock--syntax-table-affects-ppss RET` from within that `tex.scm` buffer? It should return nil if my fix was applied. If it returns t then you're presumably still using the old code (or there's something else amiss). If it returns something else than nil or t then there's something else amiss. FWIW, even with the fix, Emacs is not quite able to keep up with `M-v` with an auto-repeat of 40/s when done from the end of the buffer, but: - When I release the key it catches up fairly quickly (hence the "not quite"). So I wouldn't describe it as "hangs". - This is on my 16 years old 2.5GHz Core 2 Duo (Thinkpad T61). - It's an Emacs compiled with `-Og` and with `--enable-checking`. Stefan From debbugs-submit-bounces@debbugs.gnu.org Thu Jan 02 09:12:21 2025 Received: (at submit) by debbugs.gnu.org; 2 Jan 2025 14:12:21 +0000 Received: from localhost ([127.0.0.1]:43270 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1tTLvx-0002Fx-Af for submit@debbugs.gnu.org; Thu, 02 Jan 2025 09:12:21 -0500 Received: from lists.gnu.org ([2001:470:142::17]:50076) by debbugs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.84_2) (envelope-from ) id 1tTLvu-0002Fj-Jf for submit@debbugs.gnu.org; Thu, 02 Jan 2025 09:12:19 -0500 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1tTLvo-0004vr-Rm for bug-gnu-emacs@gnu.org; Thu, 02 Jan 2025 09:12:12 -0500 Received: from latitanza.investici.org ([2001:888:2000:56::19]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1tTLvn-0005Wr-02 for bug-gnu-emacs@gnu.org; Thu, 02 Jan 2025 09:12:12 -0500 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=subvertising.org; s=stigmate; t=1735827127; bh=C6x+IzifTrjUhoikKTB5qgBHDWPcuPja/LDWVU8x/ek=; h=Date:From:To:Subject:In-Reply-To:References:From; b=eJt1ybeiPp4zZ1UUH4axJXHDfkNdkHSJPmu/3kMFSuFXDyAKOR2bpGr1maOqEm69k HdYooo7qJnWOjqoHAOKFLyISuGfN4s0+bKElR2rWYOeYipIoWJgkr5SqBrz8Lqk++e MYyhPO1Ca1ROyKjW+xS2HllI553izfMhvvBxvxwQ= Received: from 2.mail-backend.investici.org (unknown [10.0.0.12]) by latitanza.investici.org (Postfix) with ESMTP id 4YP7tv1WYFzGp3t for ; Thu, 2 Jan 2025 14:12:07 +0000 (UTC) Received: from 2.webmail.investici.org (localhost [127.0.0.1]) (Authenticated sender: divya@subvertising.org) by 2.mail-backend.investici.org (Postfix) with ESMTPA id 4YP7tv0XMdz2xGF for ; Thu, 2 Jan 2025 14:12:06 +0000 (UTC) MIME-Version: 1.0 Date: Thu, 02 Jan 2025 14:12:06 +0000 From: divya@subvertising.org To: bug-gnu-emacs@gnu.org Subject: Re: bug#74281: 30.0.91; font-lock mode hangs on scrolling large Scheme file In-Reply-To: References: <8734k0cs1u.fsf@subvertising.org> <86zfm2jjbo.fsf@gnu.org> <865xo59hhm.fsf@gnu.org> <86a5cfsr6a.fsf@gnu.org> <66CF0D14-5C95-47C8-B96E-FB1DEE0BD065@subvertising.org> <6A6B56C8-2635-4FDA-82F6-A63BD22238CC@subvertising.org> User-Agent: Roundcube Webmail Message-ID: X-Sender: divya@subvertising.org Content-Type: text/plain; charset=US-ASCII; format=flowed Content-Transfer-Encoding: 7bit Received-SPF: pass client-ip=2001:888:2000:56::19; envelope-from=divya@subvertising.org; helo=latitanza.investici.org X-Spam_score_int: -27 X-Spam_score: -2.8 X-Spam_bar: -- X-Spam_report: (-2.8 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_DNSWL_LOW=-0.7, SPF_HELO_PASS=-0.001, SPF_PASS=-0.001 autolearn=ham autolearn_force=no X-Spam_action: no action X-Spam-Score: 0.9 (/) X-Debbugs-Envelope-To: submit X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -0.1 (/) Hello again Stefan and Happy GNU/Year. > Hmm... on my tests, I can reproduce in `emacs-30` the very slow > font-locking you described when we're at the end of the buffer, but not > on `master`. Just to confirm that you're running the "right" code, can > you do `M-: font-lock--syntax-table-affects-ppss RET` from within that > `tex.scm` buffer? It should return nil if my fix was applied. If it > returns t then you're presumably still using the old code (or there's > something else amiss). If it returns something else than nil or t then > there's something else amiss. I just checked and my compiled build was of an older commit. The variable was set `t`. I built from the latest commit and indeed now I can scroll flawlessly in the reported file. > FWIW, even with the fix, Emacs is not quite able to keep up with `M-v` > with an auto-repeat of 40/s when done from the end of the buffer, but: > - When I release the key it catches up fairly quickly (hence the "not > quite"). So I wouldn't describe it as "hangs". > - This is on my 16 years old 2.5GHz Core 2 Duo (Thinkpad T61). > - It's an Emacs compiled with `-Og` and with `--enable-checking`. That's reasonable for the system. I do not notice any sort of lag with `M-v` on my system (Ryzen 7 5700G). Thank you Eli and Stefan for the prompt fix. Really admire the work you guys do. Regards, Divya Ranjan, Mathematics, Philosophy and Libre Software From debbugs-submit-bounces@debbugs.gnu.org Sat Jan 04 08:10:24 2025 Received: (at 74281) by debbugs.gnu.org; 4 Jan 2025 13:10:24 +0000 Received: from localhost ([127.0.0.1]:53869 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1tU3v2-0007Kc-7b for submit@debbugs.gnu.org; Sat, 04 Jan 2025 08:10:24 -0500 Received: from eggs.gnu.org ([2001:470:142:3::10]:40574) by debbugs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.84_2) (envelope-from ) id 1tU3v0-0007KO-Jm for 74281@debbugs.gnu.org; Sat, 04 Jan 2025 08:10:19 -0500 Received: from fencepost.gnu.org ([2001:470:142:3::e]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1tU3ut-0000Qf-6x; Sat, 04 Jan 2025 08:10:12 -0500 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=3Xrxk+6FXraTPBQrPsKELqToCAz4Rbgbxj+snPildNM=; b=e891ueW1e8pL +PaUhxacL+nK6ZNMgQlQ60+3JatLFC3NKkjvxeUWG1bZb1oQEQ0yUttSCIykSqgzHDltOdN7eqw36 qL6gp9fiJzHbqtif6goohL/1bCsUdHZRJEYMIlnG7nb8KOgO1Nmrt9vogkPhy4RwF2Yo+3CKKWorq m2MLABOP6llvtYnaeFxSm03kQYqLqivItlIJebiu5oRY2K8gBPtLFV0kh7+0WueQX6u5bWfmRPU2E hj46Os+3vBujG7EgO8A3MOXfxb0E/EYLQ0kLxXya8/C6koaed3b5yC8dyfHSGAqXufDXm89Jsz15s AK+nUbHJJ5BLel5PYlzd3A==; Date: Sat, 04 Jan 2025 15:10:06 +0200 Message-Id: <86ttaed8sx.fsf@gnu.org> From: Eli Zaretskii To: divya@subvertising.org, Stefan Monnier In-Reply-To: (bug-gnu-emacs@gnu.org) Subject: Re: bug#74281: 30.0.91; font-lock mode hangs on scrolling large Scheme file References: <8734k0cs1u.fsf@subvertising.org> <86zfm2jjbo.fsf@gnu.org> <865xo59hhm.fsf@gnu.org> <86a5cfsr6a.fsf@gnu.org> <66CF0D14-5C95-47C8-B96E-FB1DEE0BD065@subvertising.org> <6A6B56C8-2635-4FDA-82F6-A63BD22238CC@subvertising.org> X-Spam-Score: -2.3 (--) X-Debbugs-Envelope-To: 74281 Cc: 74281@debbugs.gnu.org X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -3.3 (---) > Date: Thu, 02 Jan 2025 14:12:06 +0000 > From: divya--- via "Bug reports for GNU Emacs, > the Swiss army knife of text editors" > > Hello again Stefan and Happy GNU/Year. > > > Hmm... on my tests, I can reproduce in `emacs-30` the very slow > > font-locking you described when we're at the end of the buffer, but not > > on `master`. Just to confirm that you're running the "right" code, can > > you do `M-: font-lock--syntax-table-affects-ppss RET` from within that > > `tex.scm` buffer? It should return nil if my fix was applied. If it > > returns t then you're presumably still using the old code (or there's > > something else amiss). If it returns something else than nil or t then > > there's something else amiss. > > I just checked and my compiled build was of an older commit. The > variable was set `t`. I built from the latest commit and indeed now I > can scroll flawlessly in the reported file. > > > FWIW, even with the fix, Emacs is not quite able to keep up with `M-v` > > with an auto-repeat of 40/s when done from the end of the buffer, but: > > - When I release the key it catches up fairly quickly (hence the "not > > quite"). So I wouldn't describe it as "hangs". > > - This is on my 16 years old 2.5GHz Core 2 Duo (Thinkpad T61). > > - It's an Emacs compiled with `-Og` and with `--enable-checking`. > > That's reasonable for the system. I do not notice any sort of lag with > `M-v` on my system (Ryzen 7 5700G). > > Thank you Eli and Stefan for the prompt fix. Really admire the work you > guys do. So should we now close this bug? From debbugs-submit-bounces@debbugs.gnu.org Sat Jan 04 09:54:49 2025 Received: (at 74281-done) by debbugs.gnu.org; 4 Jan 2025 14:54:49 +0000 Received: from localhost ([127.0.0.1]:54099 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1tU5Y9-0003c9-3S for submit@debbugs.gnu.org; Sat, 04 Jan 2025 09:54:49 -0500 Received: from mailscanner.iro.umontreal.ca ([132.204.25.50]:7808) by debbugs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.84_2) (envelope-from ) id 1tU5Y6-0003bs-GF for 74281-done@debbugs.gnu.org; Sat, 04 Jan 2025 09:54:47 -0500 Received: from pmg1.iro.umontreal.ca (localhost.localdomain [127.0.0.1]) by pmg1.iro.umontreal.ca (Proxmox) with ESMTP id 04F3A10004C; Sat, 4 Jan 2025 09:54:40 -0500 (EST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=iro.umontreal.ca; s=mail; t=1736002479; bh=5W70ZRO8dmt6+3HHq7Igh1Hc+vcARGkuQkF5NQS7/LU=; h=From:To:Cc:Subject:In-Reply-To:References:Date:From; b=nDKjoLJ3jhf4jBZXq7D87sPvCM/U8+8LTDmYnmXVm7KZc2PcpEmy9vqNRII06krTv bcOs56a7Rf4WVlA0f8goahYcjOOQEsUiVdR+Td/SveVOJoCIlg+JZQMSmLyqh3SmgR QiJ2lXMKAdzJ7dDBz9pYfV6FUJyOtoUfsnSPXZqPe8xlffD0W0KQpfJsJbuAs+9f1Z OSwmF7dLHRfrT+TTTl3z6aj/5IGdo9Ucbwo78uClphZBHtA3YfzCT39Hlf4BaBFjbF SGuVnbGPtTiQU6MRk7/Y6GXxPHy4Gmo0SOZy3kBx7/hwMlXY8s3lSNGULoRCQKPcEe YZNPgiDHqqc5A== Received: from mail01.iro.umontreal.ca (unknown [172.31.2.1]) by pmg1.iro.umontreal.ca (Proxmox) with ESMTP id 59207100042; Sat, 4 Jan 2025 09:54:39 -0500 (EST) Received: from pastel (104-195-236-84.cpe.teksavvy.com [104.195.236.84]) by mail01.iro.umontreal.ca (Postfix) with ESMTPSA id EF6A412033B; Sat, 4 Jan 2025 09:54:38 -0500 (EST) From: Stefan Monnier To: Eli Zaretskii Subject: Re: bug#74281: 30.0.91; font-lock mode hangs on scrolling large Scheme file In-Reply-To: <86ttaed8sx.fsf@gnu.org> (Eli Zaretskii's message of "Sat, 04 Jan 2025 15:10:06 +0200") Message-ID: References: <8734k0cs1u.fsf@subvertising.org> <86zfm2jjbo.fsf@gnu.org> <865xo59hhm.fsf@gnu.org> <86a5cfsr6a.fsf@gnu.org> <66CF0D14-5C95-47C8-B96E-FB1DEE0BD065@subvertising.org> <6A6B56C8-2635-4FDA-82F6-A63BD22238CC@subvertising.org> <86ttaed8sx.fsf@gnu.org> Date: Sat, 04 Jan 2025 09:54:30 -0500 User-Agent: Gnus/5.13 (Gnus v5.13) MIME-Version: 1.0 Content-Type: text/plain X-SPAM-INFO: Spam detection results: 0 ALL_TRUSTED -1 Passed through trusted hosts only via SMTP AWL -0.340 Adjusted score from AWL reputation of From: address BAYES_00 -1.9 Bayes spam probability is 0 to 1% DKIM_SIGNED 0.1 Message has a DKIM or DK signature, not necessarily valid DKIM_VALID -0.1 Message has at least one valid DKIM or DK signature DKIM_VALID_AU -0.1 Message has a valid DKIM or DK signature from author's domain DKIM_VALID_EF -0.1 Message has a valid DKIM or DK signature from envelope-from domain X-SPAM-LEVEL: X-Spam-Score: -2.3 (--) X-Debbugs-Envelope-To: 74281-done Cc: 74281-done@debbugs.gnu.org, divya@subvertising.org X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -3.3 (---) >> I just checked and my compiled build was of an older commit. The >> variable was set `t`. I built from the latest commit and indeed now I >> can scroll flawlessly in the reported file. Excellent, thanks for the confirmation! > So should we now close this bug? Yes, closing, Stefan From unknown Sun Jun 22 11:40:46 2025 Received: (at fakecontrol) by fakecontrolmessage; To: internal_control@debbugs.gnu.org From: Debbugs Internal Request Subject: Internal Control Message-Id: bug archived. Date: Sun, 02 Feb 2025 12:24:18 +0000 User-Agent: Fakemail v42.6.9 # This is a fake control message. # # The action: # bug archived. thanks # This fakemail brought to you by your local debbugs # administrator