FYI I was following the instructions here: https://github.com/tonsky/FiraCode/wiki/Emacs-instructions#using-composition-char-table to get Fira Code ligatures globally. It so happens that C-modes will add “//“ to the mode name in certain configurations; I just pared this down to a minimal repro case. 

--
Evan Moses
emoses@gmail.com


On Jul 24, 2020, at 11:25 PM, Eli Zaretskii <eliz@gnu.org> wrote:


From: Evan Moses <emoses@gmail.com>
Date: Fri, 24 Jul 2020 14:35:50 -0700

To reproduce, evaluate this

(set-char-table-range composition-function-table 47 '([".\\(?:\\(?:\\*\\*\\|//\\|==\\)\\|[*/=>]\\)" 0
font-shape-gstring]))

And then evaluate

(setq mode-name "test//")

Emacs will become unresponsive and consume 100% CPU.

It doesn't hang here.  Could this be macOS-specific?  Or maybe the
problem happens only with some fonts?  Does it happen in "emacs -Q"?

In any case, did you really mean for Emacs to produce ligatures on the
mode line?  More generally, what kind of ligatures are you trying to
produce with this setup?