Subject: 30.0.50; Inconsistent Syntax Highlighting

From: Amol Surati <[email-masked]>
Date: Sat, 13 Apr 2024 18:12:54 +0530

--text follows this line--

The problem is not found in terminal emacs built from the released 29.3.tar.gz,
or with emacs running under GUI (i.e. under PGTK).

The problem is seen with terminal emacs built from the master branch, at various
commit levels.

Problem: When a large file (for e.g. vulkan_core.h) is opened, certain
constructs have their syntax highlighting broken. The video found at [1] shows
the behaviour. At the end of the video, one can see one instance of the problem;
the syntax highlighting for the enum constant
'VK_STRUCTURE_TYPE_EVENT_CREATE_INFO = 10,' abruptly breaks. The entire
identifier VK_STRUCTURE_TYPE_EVENT_CREATE_INFO must be one colour. Instead,
'VK_STRUCTURE_TYPE_EVENT_CREA' is of the expected colour, while
'TE_INFO' is of the colour that is expected with '= 10,'. You may want to
download the video and then play it, if Google Drive plays it at a resolution
that is lower than the video's native resolution.

Within this same session, there were other such enum constants with broken
highlighting, though they have not been captured in the video.
The termscript is attached at [2].

The graphics session is Wayland with swaywm as its compositor; XWayland is
not enabled. The terminal emulator is 'foot'. Another terminal emulator,
'alacritty' was also tested; the problem occurred there too.

The problem doesn't seem to occur with small-sized files; After reducing the
vulkan_core.h to contain only around 235 lines, emacs was able to show the
(reduced) file with consistent highlighting.

Thank you,
Amol Surati

[1] https://drive.google.com/file/d/1C2pSlh3x1g91lUsErryLnLP5995Jcg6c/
[2] https://pastebin.com/UiKSZWm7
------------------------------------------------------------------------

In GNU Emacs 30.0.50 (build 1, x86_64-pc-linux-gnu)
Repository revision: 8b210a636fe426f47bccdb111af61d6310755dde
Repository branch: master
System Description: Arch Linux

Configured using:
 'configure --prefix=/home/user/tools/emacs --without-all
 --with-native-compilation=aot --with-zlib --without-x --without-json
 --without-sound --with-small-ja-dic --disable-build-details
 --without-sqlite3 --with-compress-install 'CFLAGS=-O2 -mtune=native
 -march=native -fomit-frame-pointer''

Configured features:
GMP NATIVE_COMP PDUMPER SECCOMP XIM ZLIB

Important settings:
  value of $LANG: en_US.UTF-8
  locale-coding-system: utf-8-unix

Major mode: Lisp Interaction

Minor modes in effect:
  global-display-fill-column-indicator-mode: t
  display-fill-column-indicator-mode: t
  save-place-mode: t
  tooltip-mode: t
  global-eldoc-mode: t
  eldoc-mode: t
  show-paren-mode: t
  electric-indent-mode: t
  file-name-shadow-mode: t
  global-font-lock-mode: t
  font-lock-mode: t
  minibuffer-regexp-mode: t
  column-number-mode: t
  line-number-mode: t
  indent-tabs-mode: t
  transient-mark-mode: t
  auto-composition-mode: t
  auto-encryption-mode: t
  auto-compression-mode: t
  auto-save-visited-mode: t

Load-path shadows:
None found.

Features:
(shadow sort regexp-opt mail-extr emacsbug message mailcap yank-media
puny dired dnd dired-loaddefs rfc822 mml mml-sec password-cache epa
derived epg rfc6068 epg-config gnus-util text-property-search time-date
mm-decode mm-bodies mm-encode mail-parse rfc2231 mailabbrev gmm-utils
mailheader sendmail rfc2047 rfc2045 ietf-drums mm-util mail-prsvr
mail-utils term/xterm xterm byte-opt gv bytecomp byte-compile
modus-vivendi-theme modus-themes subr-x easy-mmode
display-fill-column-indicator saveplace cl-seq cl-loaddefs cl-lib rmc
iso-transl tooltip cconv eldoc paren electric uniquify ediff-hook
vc-hooks lisp-float-type elisp-mode tabulated-list replace newcomment
text-mode lisp-mode prog-mode register page tab-bar menu-bar rfn-eshadow
isearch easymenu timer select 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 multi-tty make-network-process
native-compile emacs)

Memory information:
((conses 16 126813 13455) (symbols 48 8344 0) (strings 32 19368 1588)
 (string-bytes 1 634561) (vectors 16 7702) (vector-slots 8 94144 6327)
 (floats 8 50 8) (intervals 56 241 1) (buffers 984 11))