[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: Emacs design and architecture. How about copy-on-write?
From: |
Ihor Radchenko |
Subject: |
Re: Emacs design and architecture. How about copy-on-write? |
Date: |
Thu, 21 Sep 2023 10:48:25 +0000 |
Dmitry Gutov <dmitry@gutov.dev> writes:
>> I think that there is at least one way to address long lines using
>> asynchronous redisplay - put a placeholder on the problematic line and
>> continue calculating the actual rendering in the background instead.
>> That will not force us to compromise between rendering time and
>> accuracy, as we do now, with long-line-threshold.
>
> Until you're laid out the long line, you don't know which screen line it
> will finish at, or at which height specifically (it might have images,
> or taller text due to faces, etc). So you can't render the remainder of
> the buffer either.
What I had in mind is the processing to happen in two stages: (1)
calculate "quick-and-dirty" layout; (2) start calculating "accurate"
layout. If calculating "accurate" layout takes long time, go ahead and
draw the "quick-and-dirty" version on the glass, while "accurate"
version continues being computed in the background.
Of course, this threshold should be configurable.
>> Similar approach might be used to render mode lines - render a
>> placeholder until it is fully calculated, keeping Emacs responsive.
>
> I hope by "placeholder" you mean the previous rendered image of it.
More precisely, what I had in mind is the old glyph matrix + some
indication that the rendering is not up-to-date (like classic sand clock
icon)
> ... But then the mode-line won't be refreshed at 60fps still, which
> some said is a good goal? (I tentatively agree).
I also agree that it is a good goal.
The scenario I had in mind is poorly written third-party mode line
packages that, for example, query git on every redisplay. There is
nothing we can do about poor Elisp code in third-party packages, but the
proposed approach will at least prevent Emacs being laggy or hanging in
the eyes of the user.
--
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>
- Re: Emacs design and architecture. How about copy-on-write?, (continued)
- Re: Emacs design and architecture. How about copy-on-write?, Eli Zaretskii, 2023/09/21
- Re: Emacs design and architecture. How about copy-on-write?, Po Lu, 2023/09/21
- Re: Emacs design and architecture. How about copy-on-write?, Eli Zaretskii, 2023/09/21
- Re: Emacs design and architecture. How about copy-on-write?, Po Lu, 2023/09/21
- Re: Emacs design and architecture. How about copy-on-write?, Ihor Radchenko, 2023/09/21
- Re: Emacs design and architecture. How about copy-on-write?, Dmitry Gutov, 2023/09/21
- Re: Emacs design and architecture. How about copy-on-write?,
Ihor Radchenko <=
- Re: Emacs design and architecture. How about copy-on-write?, Dmitry Gutov, 2023/09/21
- Re: Emacs design and architecture. How about copy-on-write?, Ihor Radchenko, 2023/09/21
- Re: Emacs design and architecture. How about copy-on-write?, Dmitry Gutov, 2023/09/21
- Debouncing slow mode line constructs (was: Emacs design and architecture. How about copy-on-write?), Ihor Radchenko, 2023/09/21
- Re: Debouncing slow mode line constructs (was: Emacs design and architecture. How about copy-on-write?), Dmitry Gutov, 2023/09/21
- Re: Debouncing slow mode line constructs (was: Emacs design and architecture. How about copy-on-write?), Ihor Radchenko, 2023/09/22
- Re: Debouncing slow mode line constructs (was: Emacs design and architecture. How about copy-on-write?), Eli Zaretskii, 2023/09/22
- Re: Debouncing slow mode line constructs (was: Emacs design and architecture. How about copy-on-write?), Ihor Radchenko, 2023/09/22
- Re: Debouncing slow mode line constructs (was: Emacs design and architecture. How about copy-on-write?), Eli Zaretskii, 2023/09/22
- Re: Debouncing slow mode line constructs (was: Emacs design and architecture. How about copy-on-write?), Ihor Radchenko, 2023/09/22