Subject: bug#51886: 29.0.50; pixel-scroll-mode garbage collects like crazy, Re: bug#51886: 29.0.50; pixel-scroll-mode garbage collects like crazy

From: Robert Pluim <[email-masked]>
Date: Tue, 16 Nov 2021 15:35:11 +0100

>>>>> On Tue, 16 Nov 2021 15:38:36 +0200, Eli Zaretskii <[email-masked]> said:

    Eli> It doesn't want to pause, it wants to trigger redisplay.  Without that
    Eli> the stuff will not work.

Replacing them all with
          (when (not (zerop pixel-wait))
             (sit-for pixel-wait)

doesnʼt seem to have broken anything....

>>>>> On Tue, 16 Nov 2021 21:41:29 +0800, Po Lu <[email-masked]> said:

    Po> Eli Zaretskii <[email-masked]> writes:

    >>> I suspect itʼs the bit that counts from k to n by generating a list of
    >>> the integers from k to n and then running dolist over that.
    >> 
    >> Maybe, but I think we want a more direct evidence.

    Po> Sadly, it's not the case here.  Rewriting `pixel--whistlestop-pixel-up'
    Po> to not cons (such as with number-sequence) yields no visible
    Po> improvement.

Hmm. Changing the catch/throw in `pixel-scroll-up' to

          (while (and (pixel-point-at-top-p amt)
                      (>= (vertical-motion 1) 1)))

seems to help. As does removing mode-line-remote from mode-line-format
(the profiler said we were calling `file-remote-p' a lot).

Robert
--