Subject: bug#64596: 30.0.50; On FIXME: in src/buffer.c:1481 (force-mode-line-update)

From: Ihor Radchenko <[email-masked]>
Date: Tue, 18 Jul 2023 09:52:28 +0000

Eli Zaretskii <[email-masked]> writes:

>> May someone then detail these steps in the top commentary in xdisp.c +
>> highlight that redisplay term is generally used when deciding if we need
>> to update.
>
> It's already in the large commentary at the beginning of xdisp.c
> (search for "update_window" to find the description of "update").  It
> just "drowns" in the sea of the information there

I saw this. But "update" is not used consistently across that
commentary.

If we read at the very beginning:

    /* New redisplay written by Gerd Moellmann <[email-masked]>.
    
       Redisplay.
    
       Emacs separates the task of updating the display from code
       modifying global state, e.g. buffer text. ...
    
       Updating the display is triggered by the Lisp interpreter when it
       decides it's time to do it....

Which immediately creates an impression that "redisplay" and "update"
are referring to the same thing.
It would be nice the highlight the distinction rightaway there.

Further,

       You will find a lot of redisplay optimizations when you start
       looking at the innards of redisplay.  The overall goal of all these
       optimizations is to make redisplay fast because it is done
       frequently.  Some of these optimizations are implemented by the
       following functions:

focuses on optimizations related to window, but says nothing about
checking frames. It talks not about buffers displayed in multiple
windows either.

The rest of the commentary is diving deep into the "update" part.
Redisplay and its optimizations are not described in sufficient detail.

-- 
Ihor Radchenko // yantar92,
Org mode contributor,
Learn more about Org mode at <https://orgmode.org/>.
Support Org development at <https://liberapay.com/org-mode>,
or support my work at <https://liberapay.com/yantar92>