Subject: 28.0.50; Native compilation branch freeze in cc-mode
From: Damien <[email-masked]>
To: [email-masked]
Date: Tue, 16 Mar 2021 15:24:22 +0000
List-Id: <debbugs-submit.debbugs.gnu.org>

Using the native compilation branch, Create tmp.cpp with this:

```
// In state_machine
private: auto
state_machine::stop_bbbbbbb(states::recording &&s,
aaaaaa::bbbbbbb_stopped_reason reason)
-> fsm::state_machine<
aaaaaa::bbbbbbb::state_machine,
std::variant<aaaaa::bbbb::cccccc::ddddddd::eeeeee::aaaaaa_connected,
aaaaa::bbbb::cccccc::ddddddd::eeeeee::aaaaaa_disconnected,
aaaaa::bbbb::cccccc::ddddddd::eeeeee::aaaaaa_state,
aaaaa::bbbb::cccccc::ddddddd::eeeeee::aaaaaa_info,
aaaaa::bbbb::cccccc::ddddddd::eeeeee::aaaaaa_battery,
aaaaa::bbbb::cccccc::ddddddd::eeeeee::account_error,
aaaaa::bbbb::cccccc::ddddddd::eeeeee::account_valid>,
std::variant<aaaaa::bbbb::aaaaaa::bbbbbbb::states::init>>::state
```

Open using `emacs -Q tmp.cpp` and emacs freezes.

I managed to get some backtrace using `kill -USR2`:

* #f(compiled-function () #<bytecode 0xb89cd227791443a>)()
font-lock-default-fontify-region(35 597 nil)
c-font-lock-fontify-region(48 548 nil)
font-lock-fontify-region(48 548)
#f(compiled-function (fun) #<bytecode 0x1f23231d0aa2fbbe>)(font-lock-fontify-region)
run-hook-wrapped(#f(compiled-function (fun) #<bytecode 0x1f23231d0aa2fbbe>) font-lock-fontify-region)
jit-lock--run-functions(48 548)
jit-lock-fontify-now(48 548)
jit-lock-function(48)
redisplay_internal\ \(C\ function\)()

but at that point emacs is nearly unusable.

In GNU Emacs 28.0.50 (build 8, x86_64-pc-linux-gnu, GTK+ Version 3.24.23, cairo version 1.16.0)
of 2021-03-16 built on workstation.lan
Repository revision: f3abb1711811f43d1504d8e48f0d27e015b46d6c
Repository branch: feature/native-comp
Windowing system distributor 'The X.Org Foundation', version 11.0.12009000
System Description: Ubuntu 20.10

Configured using:
'configure --with-nativecomp --with-mailutils --with-pgtk --with-gnutls
--with-modules --with-json --without-gpm --with-file-notification=yes
--with-xwidgets --without-selinux --with-libsystemd CC=gcc-10'

Configured features:
ACL CAIRO DBUS FREETYPE GIF GLIB GMP GNUTLS GSETTINGS HARFBUZZ JPEG JSON
LIBSYSTEMD LIBXML2 MODULES NOTIFY INOTIFY PDUMPER PNG SOUND THREADS TIFF
TOOLKIT_SCROLL_BARS X11 XDBE XIM XPM XWIDGETS GTK3 ZLIB

Important settings:
value of $LC_MONETARY: fr_BE.UTF-8
value of $LC_NUMERIC: fr_BE.UTF-8
value of $LC_TIME: fr_BE.UTF-8
value of $LANG: en_US.UTF-8
value of $XMODIFIERS: @im=ibus
locale-coding-system: utf-8-unix

Major mode: Magit

Minor modes in effect:
bloom-global-minor-mode: t
global-company-mode: t
company-mode: t
magit-wip-after-apply-mode: t
global-git-commit-mode: t
magit-auto-revert-mode: t
pdf-occur-global-minor-mode: t
yas-global-mode: t
yas-minor-mode: t
smartparens-global-mode: t
show-paren-mode: t
marginalia-mode: t
selectrum-prescient-mode: t
prescient-persist-mode: t
global-ligature-mode: t
ligature-mode: t
shell-dirtrack-mode: t
envrc-global-mode: t
envrc-mode: t
bepo-global-mode: t
which-key-mode: t
savehist-mode: t
Info-breadcrumbs-in-mode-line-mode: t
override-global-mode: t
selectrum-mode: t
tooltip-mode: t
global-eldoc-mode: t
electric-indent-mode: t
mouse-wheel-mode: t
menu-bar-mode: t
file-name-shadow-mode: t
global-font-lock-mode: t
font-lock-mode: t
blink-cursor-mode: t
auto-composition-mode: t
auto-encryption-mode: t
auto-compression-mode: t
buffer-read-only: t
line-number-mode: t
transient-mark-mode: t

Load-path shadows:
~/.emacs.d/pkg/bloomlife/aio-let hides ~/.emacs.d/pkg/jiracs/aio-let
~/.emacs.d/pkg/dash-docs/dash-docs hides /home/dam/.emacs.d/var/elpa/dash-docs-20200516.1943/dash-docs
~/.emacs.d/pkg/use-package/use-package-ensure-system-package hides /home/dam/.emacs.d/var/elpa/use-package-ensure-system-package-20180913.1501/use-package-ensure-system-package
~/.emacs.d/pkg/use-package/use-package-ensure hides /home/dam/.emacs.d/var/elpa/use-package-20210207.1926/use-package-ensure
~/.emacs.d/pkg/use-package/use-package hides /home/dam/.emacs.d/var/elpa/use-package-20210207.1926/use-package
~/.emacs.d/pkg/use-package/use-package-bind-key hides /home/dam/.emacs.d/var/elpa/use-package-20210207.1926/use-package-bind-key
~/.emacs.d/pkg/use-package/use-package-lint hides /home/dam/.emacs.d/var/elpa/use-package-20210207.1926/use-package-lint
~/.emacs.d/pkg/use-package/use-package-diminish hides /home/dam/.emacs.d/var/elpa/use-package-20210207.1926/use-package-diminish
~/.emacs.d/pkg/use-package/use-package-delight hides /home/dam/.emacs.d/var/elpa/use-package-20210207.1926/use-package-delight
~/.emacs.d/pkg/use-package/use-package-jump hides /home/dam/.emacs.d/var/elpa/use-package-20210207.1926/use-package-jump
~/.emacs.d/pkg/use-package/use-package-core hides /home/dam/.emacs.d/var/elpa/use-package-20210207.1926/use-package-core
~/.emacs.d/pkg/use-package/bind-key hides /home/dam/.emacs.d/var/elpa/bind-key-20210210.1609/bind-key

Features:
(shadow sort mail-extr emacsbug sendmail mule-util face-remap vc-mtn
vc-hg vc-bzr vc-src vc-sccs vc-cvs vc-rcs vc checkdoc lisp-mnt form-feed
company-oddmuse company-keywords company-etags company-gtags
company-dabbrev-code company-dabbrev company-files company-clang
company-capf company-cmake company-semantic company-template
company-bbdb bloomlife bloom-mode eglot array jsonrpc ert ewoc debug
backtrace sonar circleci bitbucket bloom-sensor gdb-mi bloom-tools
bloom-org bloom-magit bloom-project bloom-test-runner bloom-common
bloom-build bloom-cmake bloom-conan bloom-bbw bloom-target bloom-pkg
atlassian atlassian-jira atlassian-common request jiracs json-bind
aio-let jiracs-mode jiracs-db jiracs-common aio company-terraform
company-terraform-data terraform-mode hcl-mode company racer
smartparens-rust rust-mode rubocop robe etags fileloop generator
inf-ruby rbenv ruby-mode smie smartparens-python python tramp-sh
smartparens-scala scala-mode scala-mode-prettify-symbols
scala-mode-imenu scala-mode-map scala-mode-fontlock scala-mode-indent
scala-mode-paragraph scala-mode-syntax scala-mode-lib java-imports
pcache eieio-base elisp-format flyspell test-runner-ert elfmt cask-mode
djinni-mode gud-lldb cmake-api test-runner-catch2 eldoc-cmake cmake-mode
smartparens-rst rst android pbuf gud xref forge-list forge-commands
forge-semi forge-bitbucket buck forge-gogs gogs forge-gitea gtea
forge-gitlab glab forge-github forge-notify forge-revnote forge-pullreq
forge-issue forge-topic bug-reference forge-post forge-repo forge
forge-core forge-db closql emacsql-sqlite emacsql emacsql-compiler
ghub-graphql treepy gsexp ghub url-http url-gw nsm url-auth magit-extras
magit-bookmark magit-submodule magit-obsolete magit-blame magit-stash
magit-reflog magit-bisect magit-push magit-pull magit-fetch magit-clone
magit-remote magit-commit magit-sequence magit-notes magit-worktree
magit-tag magit-merge magit-branch magit-reset magit-files magit-refs
magit-status magit magit-repos magit-apply magit-wip magit-log
which-func magit-diff smerge-mode git-commit log-edit message rmc rfc822
mml mml-sec epa epg epg-config mm-decode mm-bodies mm-encode mail-parse
rfc2231 mailabbrev gmm-utils mailheader pcvs-util add-log magit-core
magit-autorevert magit-margin magit-transient magit-process with-editor
server magit-mode magit-git magit-section magit-utils git-timemachine
transient vc-git diff-mode vc-dispatcher flymake-cursor flymake-proc
flymake warnings diff ispell reformatter test-runner ag vc-svn
find-dired dired-collapse dired-rainbow dired-narrow delsel dired-filter
f s dired-hacks-utils dired-x dired-aux plantuml-mode pdf-occur ibuf-ext
ibuffer ibuffer-loaddefs tablist tablist-filter semantic/wisent/comp
semantic/wisent semantic/wisent/wisent semantic/util-modes semantic/util
semantic semantic/tag semantic/lex semantic/fw mode-local find-func
cedet pdf-isearch let-alist pdf-misc imenu pdf-tools pdf-view jka-compr
pdf-cache pdf-info tq pdf-util xwwp eww xdg url-queue shr kinsoku svg
dom mm-url gnus nnheader gnus-util rmail rmail-loaddefs rfc2047 rfc2045
ietf-drums mail-utils mm-util mail-prsvr xwidget image-mode dired
dired-loaddefs exif bookmark smartparens-markdown markdown-mode noutline
outline yasnippet wgrep grep compile text-property-search cap-words
superword subword string-inflection smartparens-config smartparens-text
smartparens-c smartparens-ruby smartparens dash cc-mode cc-fonts
cc-guess cc-menus cc-cmds cc-styles cc-align cc-engine cc-vars cc-defs
paren mmm-mode mmm-univ mmm-class mmm-region mmm-auto mmm-vars mmm-utils
mmm-compat iedit iedit-lib autorevert filenotify marginalia project
selectrum-prescient selectrum minibuf-eldef crm prescient all-the-icons
all-the-icons-faces data-material data-weathericons data-octicons
data-fileicons data-faicons data-alltheicons ligature
solarized-dark-high-contrast-theme solarized-palettes solarized-theme
solarized solarized-faces color use-theme pcase tramp tramp-loaddefs
trampver tramp-integration files-x tramp-compat shell pcomplete comint
ring parse-time iso8601 time-date ls-lisp envrc inheritenv ansi-color
eshell esh-cmd esh-ext esh-opt esh-proc esh-io esh-arg esh-module
esh-groups esh-util bepo which-key time savehist recentf tree-widget
advice info+ exec-path-from-shell diminish dash-docs
use-package-dash-docs gnutls puny thingatpt format-spec xml async
no-littering use-package-ensure-system-package system-packages cl-extra
help-mode use-package use-package-ensure use-package-delight
use-package-diminish use-package-bind-key bind-key use-package-core
derived edmacro kmacro easy-mmode cl rx info cus-edit pp cus-start
cus-load wid-edit package browse-url url url-proxy url-privacy
url-expand url-methods url-history url-cookie url-domsuf url-util
mailcap url-handlers url-parse auth-source cl-seq eieio eieio-core
cl-macs eieio-loaddefs password-cache json subr-x map url-vars seq
byte-opt gv bytecomp byte-compile cconv cl-loaddefs cl-lib iso-transl
tooltip eldoc electric uniquify ediff-hook vc-hooks lisp-float-type
mwheel term/x-win x-win term/common-win x-dnd tool-bar dnd fontset image
regexp-opt fringe tabulated-list replace newcomment text-mode elisp-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
facemenu font-core term/tty-colors frame minibuffer cl-generic 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 charscript charprop
case-table epa-hook jka-cmpr-hook help simple abbrev obarray
cl-preloaded nadvice button loaddefs faces cus-face macroexp files
window text-properties overlay sha1 md5 base64 format env code-pages
mule custom widget hashtable-print-readable backquote threads
xwidget-internal dbusbind inotify dynamic-setting system-font-setting
font-render-setting cairo move-toolbar gtk x-toolkit x multi-tty
make-network-process emacs)

Memory information:
((conses 16 705250 558960)
(symbols 48 45820 1)
(strings 32 175645 34938)
(string-bytes 1 6557321)
(vectors 16 76584)
(vector-slots 8 1715804 487208)
(floats 8 1183 1016)
(intervals 56 749 5)
(buffers 992 21))