GNU bug report logs -
#79141
31.0.50; The tab-bar-format-align-right cache doesn't take face changes and per-frame faces into account
Previous Next
Full log
Message #32 received at 79141 <at> debbugs.gnu.org (full text, mbox):
> From: Juri Linkov <juri <at> linkov.net>
> Cc: Daniel Mendler <mail <at> daniel-mendler.de>, steven <at> stebalien.com,
> 79141 <at> debbugs.gnu.org
> Date: Sun, 10 Aug 2025 21:52:32 +0300
>
> >> >> 1. Have a per-frame cache.
> >> >> 2. Update a global `face-modification-tick' (similar to
> >> >> `buffer-modification-tick') whenever faces are updated, invalidating the
> >> >> cache whenever this changes.
> >> >
> >> > Please be advised that the current code invalidates the frame's face
> >> > cache and frees all the faces whenever some face is changed. That's
> >> > because we don't currently track face dependencies, and so have no
> >> > idea what other faces will change as result of changing some face. So
> >> > if you want a more efficient face cache, you first need to solve this
> >> > dependency-tracking issue.
> >>
> >> Couldn't this face cache invalidation logic be used here? Whenever such
> >> a face cache invalidation happens, the proposed `face-modification-tick'
> >> variable would be incremented.
> >
> > I don't quite understand what would that tick be used for, but we
> > already have in Emacs indications that the face cache was invalidated,
> > so maybe there's no need for introducing that tick.
>
> Are these indications exposed to Lisp?
No. Faces are generally managed in C, not in Lisp. But like I said:
I don't have a clear idea what should the proposed modification hook be
used for, so I'm not sure whether we need to expose anything to Lisp.
If you or someone else could describe the proposed use of such a tick,
I could try providing a more useful advice.
This bug report was last modified 2 days ago.
Previous Next
GNU bug tracking system
Copyright (C) 1999 Darren O. Benham,
1997,2003 nCipher Corporation Ltd,
1994-97 Ian Jackson.