Subject: Re: bug#29095: Bug: The '20a09de953f437109a098fa8c4d380663d921481' merge increased my Emacs configuration loading time from 9 s to 60 s

From: martin rudalics <[email-masked]>
Date: Thu, 09 Nov 2017 08:28:46 +0100

>> But as long as a user doesn't switch to that workspace she won't observe
 >> that making a new frame is slower. So I seem to be missing something.
 >
 > She can observe it indirectly via lisp code.

But Alexander said

  Furthermore, other operations like navigation across windows or
  performing an incremental search are also noticeably slower, i.e. they
  stutter annoyingly, and from what I see is a result of extensive GC
  spam which did not occur in previous versions.  Looks like something

so he must have had a direct, immediate experience.

 >> Anyway, we probably should add to /etc/PROBLEMS lines like
 >>
 >> "If a new Emacs frame is supposed to appear on a different virtual
 >> workspace, Emacs may not be notified about the visibility of the frame
 >> until the user switches to that workspace.
 >
 > Hmm, not sure.  This sounds to me like "Emacs may not be notified about
 > the visibility of the frame until the frame is visible".  Which doesn't
 > seem like something which belongs in /etc/PROBLEMS.

Apparently there are corner cases (like that of the virtual workspaces)
where we cannot fulfill a contract that ‘make-frame’ and
‘make-frame-visible’ supply a visible frame at the time the operation
terminates.  So either we should not provide such a contract in the
first place or mention that in some cases there are obvious problems.

 > I was operating under the assumption that the timeout is for the benefit
 > of the user's lisp code, not their interactions with the UI.  Not sure
 > the timeout would be that helpful for missing messages; under normal
 > circumstances it's not even hit, and 100ms goes by pretty quickly for a
 > human...

I think that Lisp code (1) must be able to deal with the fact that any
frame is currently invisible and (2) should never wait until a frame
gets visible.  In my experience being nice to Lisp code sooner or later
fails.

 > I would still like to phase it out.  Maybe we could set the default to
 > nil for Emacs 27?

I'd set the default to nil for the release.  Did we have any open bugs
when you added that option?

martin