GNU bug report logs - #39824
26.2; timers sometimes stop working when coming back from sleep

Previous Next

Package: emacs;

Reported by: ndame <emacsuser <at> freemail.hu>

Date: Fri, 28 Feb 2020 15:57:01 UTC

Severity: normal

Tags: notabug

Found in version 26.2

Done: Stefan Kangas <stefan <at> marxist.se>

Bug is archived. No further changes may be made.

To add a comment to this bug, you must first unarchive it, by sending
a message to control AT debbugs.gnu.org, with unarchive 39824 in the body.
You can then email your comments to 39824 AT debbugs.gnu.org in the normal way.

Toggle the display of automated, internal messages from the tracker.

View this report as an mbox folder, status mbox, maintainer mbox


Report forwarded to bug-gnu-emacs <at> gnu.org:
bug#39824; Package emacs. (Fri, 28 Feb 2020 15:57:02 GMT) Full text and rfc822 format available.

Acknowledgement sent to ndame <emacsuser <at> freemail.hu>:
New bug report received and forwarded. Copy sent to bug-gnu-emacs <at> gnu.org. (Fri, 28 Feb 2020 15:57:02 GMT) Full text and rfc822 format available.

Message #5 received at submit <at> debbugs.gnu.org (full text, mbox):

From: ndame <emacsuser <at> freemail.hu>
To: "bug-gnu-emacs <at> gnu.org" <bug-gnu-emacs <at> gnu.org>
Subject: 26.2; timers sometimes stop working when coming back from sleep
Date: Fri, 28 Feb 2020 15:52:51 +0000 (GMT)
[Message part 1 (text/plain, inline)]
I use Emacs 26.2 on Windows and usually I send my computer to sleep,
instead of switching it off. That means the same Emacs instance runs
for weeks or even months unless Emacs crashes for some reason.

I use several timers for housekeeping tasks and they usually work, but
from time to time one of them fails to start after coming back from
sleep.

When I do an M-x list-timers the affected timer is still there, but
its value in the Next column is negative. The value keeps decreasing
like for other timers, but since the value is negative it gets farther
and farther from zero, so it never fires after that.

I assume some calculation between the real time and the expected
elapsed time sets the timer value to negative after sleep.

A possible fix may be to ensure that the Next value of the timer
cannot be negative.
 
[Message part 2 (text/html, inline)]

Information forwarded to bug-gnu-emacs <at> gnu.org:
bug#39824; Package emacs. (Sun, 01 Mar 2020 19:32:01 GMT) Full text and rfc822 format available.

Message #8 received at 39824 <at> debbugs.gnu.org (full text, mbox):

From: Eli Zaretskii <eliz <at> gnu.org>
To: ndame <emacsuser <at> freemail.hu>
Cc: 39824 <at> debbugs.gnu.org
Subject: Re: bug#39824: 26.2;
 timers sometimes stop working when coming back from sleep
Date: Sun, 01 Mar 2020 21:31:25 +0200
> Date: Fri, 28 Feb 2020 15:52:51 +0000 (GMT)
> From: ndame <emacsuser <at> freemail.hu>
> 
> I use Emacs 26.2 on Windows and usually I send my computer to sleep,
> instead of switching it off. That means the same Emacs instance runs
> for weeks or even months unless Emacs crashes for some reason.
> 
> I use several timers for housekeeping tasks and they usually work, but
> from time to time one of them fails to start after coming back from
> sleep.
> 
> When I do an M-x list-timers the affected timer is still there, but
> its value in the Next column is negative. The value keeps decreasing
> like for other timers, but since the value is negative it gets farther
> and farther from zero, so it never fires after that.

Do I understand correctly that the timers you are talking about are
those you yourself coded?  If so, can you show the code which starts
one of those timers which you sometimes find with negative Next time?

Thanks.




Information forwarded to bug-gnu-emacs <at> gnu.org:
bug#39824; Package emacs. (Mon, 02 Mar 2020 05:29:02 GMT) Full text and rfc822 format available.

Message #11 received at 39824 <at> debbugs.gnu.org (full text, mbox):

From: ndame <emacsuser <at> freemail.hu>
To: Eli Zaretskii <eliz <at> gnu.org>
Cc: "39824 <at> debbugs.gnu.org" <39824 <at> debbugs.gnu.org>
Subject: Re: bug#39824: 26.2; timers sometimes stop working when coming back
 from sleep
Date: Mon, 2 Mar 2020 05:22:57 +0000 (GMT)
[Message part 1 (text/plain, inline)]
 
> Do I understand correctly that the timers you are talking about are
> those you yourself coded? If so, can you show the code which starts
> one of those timers which you sometimes find with negative Next time?

I did not do anything special, I just start them. E.g:

   (run-with-timer 10 30 'my-function)

This timer checks my todo list regularly and tells me if there is a scheduled
todo tasks imminent. Occasionally, it stops working with negative value for
Next in timer-list when the computer comes back from sleep.
[Message part 2 (text/html, inline)]

Information forwarded to bug-gnu-emacs <at> gnu.org:
bug#39824; Package emacs. (Mon, 02 Mar 2020 05:31:02 GMT) Full text and rfc822 format available.

Message #14 received at 39824 <at> debbugs.gnu.org (full text, mbox):

From: ndame <emacsuser <at> freemail.hu>
To: Eli Zaretskii <eliz <at> gnu.org>
Cc: "39824 <at> debbugs.gnu.org" <39824 <at> debbugs.gnu.org>
Subject: Re: bug#39824: 26.2; timers sometimes stop working when coming back
 from sleep
Date: Mon, 2 Mar 2020 05:29:33 +0000 (GMT)
[Message part 1 (text/plain, inline)]
> Occasionally, it stops working with negative value for
> Next in timer-list when the computer comes back from sleep.

Instead of timer-list, I wanted to write M-x list-timers.  So it has a negative
value in the Next column of list-timers display.
[Message part 2 (text/html, inline)]

Information forwarded to bug-gnu-emacs <at> gnu.org:
bug#39824; Package emacs. (Fri, 06 Mar 2020 09:15:02 GMT) Full text and rfc822 format available.

Message #17 received at 39824 <at> debbugs.gnu.org (full text, mbox):

From: Eli Zaretskii <eliz <at> gnu.org>
To: ndame <emacsuser <at> freemail.hu>
Cc: 39824 <at> debbugs.gnu.org
Subject: Re: bug#39824: 26.2; timers sometimes stop working when coming back
 from sleep
Date: Fri, 06 Mar 2020 11:14:15 +0200
> Date: Mon, 2 Mar 2020 05:22:57 +0000 (GMT)
> From: ndame <emacsuser <at> freemail.hu>
> Cc: "39824 <at> debbugs.gnu.org" <39824 <at> debbugs.gnu.org>
> 
> > Do I understand correctly that the timers you are talking about are
> > those you yourself coded? If so, can you show the code which starts
> > one of those timers which you sometimes find with negative Next time?
> 
> I did not do anything special, I just start them. E.g:
> 
>    (run-with-timer 10 30 'my-function)
> 
> This timer checks my todo list regularly and tells me if there is a scheduled
> todo tasks imminent. Occasionally, it stops working with negative value for
> Next in timer-list when the computer comes back from sleep.

When that happens next time, please show the exact value of the
relevant timer as a Lisp data structure.  (You should be able to find
it in the variable timer-list.)  Also, show the value returned by the
function current-time at that point.

In addition, please show the information collected by
"M-x report-emacs-bug RET", I don't think you included it with your
original report.

Thanks.




Information forwarded to bug-gnu-emacs <at> gnu.org:
bug#39824; Package emacs. (Fri, 06 Mar 2020 16:36:02 GMT) Full text and rfc822 format available.

Message #20 received at 39824 <at> debbugs.gnu.org (full text, mbox):

From: ndame <emacsuser <at> freemail.hu>
To: Eli Zaretskii <eliz <at> gnu.org>
Cc: "39824 <at> debbugs.gnu.org" <39824 <at> debbugs.gnu.org>
Subject: Re: bug#39824: 26.2; timers sometimes stop working when coming back
 from sleep
Date: Fri, 6 Mar 2020 16:30:24 +0000 (GMT)
[Message part 1 (text/plain, inline)]
 
> When that happens next time, please show the exact value of the
> relevant timer as a Lisp data structure. (You should be able to find
> it in the variable timer-list.) Also, show the value returned by the
> function current-time at that point.

Ok, will do if it happens again. I don't know what triggers it, because
it happens only occasionally.

The strange thing is it would be a logical explanation that emacs substracts
the new time from the timer and it makes it go negative (though I haven't 
checked how it is implemented), but usually only one of the timers go 
negative, not all of them, so the bug does not affect all timers when it 
happens.
[Message part 2 (text/html, inline)]

Information forwarded to bug-gnu-emacs <at> gnu.org:
bug#39824; Package emacs. (Fri, 06 Mar 2020 17:08:02 GMT) Full text and rfc822 format available.

Message #23 received at 39824 <at> debbugs.gnu.org (full text, mbox):

From: Eli Zaretskii <eliz <at> gnu.org>
To: ndame <emacsuser <at> freemail.hu>
Cc: 39824 <at> debbugs.gnu.org
Subject: Re: bug#39824: 26.2; timers sometimes stop working when coming back
 from sleep
Date: Fri, 06 Mar 2020 19:07:34 +0200
> Date: Fri, 6 Mar 2020 16:30:24 +0000 (GMT)
> From: ndame <emacsuser <at> freemail.hu>
> Cc: "39824 <at> debbugs.gnu.org" <39824 <at> debbugs.gnu.org>
> 
> Ok, will do if it happens again. I don't know what triggers it, because
> it happens only occasionally.

Thanks.

> The strange thing is it would be a logical explanation that emacs substracts
> the new time from the timer and it makes it go negative (though I haven't 
> checked how it is implemented), but usually only one of the timers go 
> negative, not all of them, so the bug does not affect all timers when it 
> happens.

AFAICS, Emacs doesn't subtract to compute the "next" time, it actually
_adds_.  That's why I asked for data: I don't see any immediate
suspects that could cause what you describe.




Information forwarded to bug-gnu-emacs <at> gnu.org:
bug#39824; Package emacs. (Sat, 21 Mar 2020 09:24:02 GMT) Full text and rfc822 format available.

Message #26 received at submit <at> debbugs.gnu.org (full text, mbox):

From: Gijs Hillenius <gijs <at> hillenius.net>
To: bug-gnu-emacs <at> gnu.org
Subject: Re: bug#39824: 26.2;
 timers sometimes stop working when coming back from sleep
Date: Sat, 21 Mar 2020 10:23:04 +0100
I might have the same issue here¹, I have this in init.el: 
(run-at-time "10:35" 21600 'org-mobile-push)

M-x list-timers shows:

     -365959.09   360.00 org-mobile-push

It is the only timer with a minus sign. M-x org-mobile-push works as
intended.

I will run emacs -Q and see what I can find out.

FWIW: This timer has been in my init el since 2015. It used to
temporarily make Emacs stutter for a second or two when it ran every
morning, so I would visibly notice it. This stuttering stopped already
months ago. At first I thought it was because the timer was set to a
moment that the laptop would be asleep, so I adjusted it .. but that has
not helped. It's when I noticed this bug report that I thought...


1) GNU Emacs 28.0.50 (build 1, x86_64-pc-linux-gnu, GTK+ Version
3.24.14, cairo version 1.16.0) of 2020-03-16, unofficial emacs-snapshot
build: http://emacs.secretsauce.net

On  6 March 2020 19:07 Eli Zaretskii, wrote:

>> Date: Fri, 6 Mar 2020 16:30:24 +0000 (GMT)
>> From: ndame <emacsuser <at> freemail.hu>
>> Cc: "39824 <at> debbugs.gnu.org" <39824 <at> debbugs.gnu.org>
>> 
>> Ok, will do if it happens again. I don't know what triggers it, because
>> it happens only occasionally.
>
> Thanks.
>
>> The strange thing is it would be a logical explanation that emacs substracts
>> the new time from the timer and it makes it go negative (though I haven't 
>> checked how it is implemented), but usually only one of the timers go 
>> negative, not all of them, so the bug does not affect all timers when it 
>> happens.
>
> AFAICS, Emacs doesn't subtract to compute the "next" time, it actually
> _adds_.  That's why I asked for data: I don't see any immediate
> suspects that could cause what you describe.
>
>
>
>

-- 
You will be held hostage by a radical group.





Information forwarded to bug-gnu-emacs <at> gnu.org:
bug#39824; Package emacs. (Tue, 24 Mar 2020 08:28:02 GMT) Full text and rfc822 format available.

Message #29 received at submit <at> debbugs.gnu.org (full text, mbox):

From: Gijs Hillenius <gijs <at> hillenius.net>
To: bug-gnu-emacs <at> gnu.org
Subject: Re: bug#39824: 26.2;
 timers sometimes stop working when coming back from sleep
Date: Tue, 24 Mar 2020 09:27:28 +0100
On  6 March 2020 11:14 Eli Zaretskii, wrote:

>> Date: Mon, 2 Mar 2020 05:22:57 +0000 (GMT)
>> From: ndame <emacsuser <at> freemail.hu>
>> Cc: "39824 <at> debbugs.gnu.org" <39824 <at> debbugs.gnu.org>
>> 
>> > Do I understand correctly that the timers you are talking about are
>> > those you yourself coded? If so, can you show the code which starts
>> > one of those timers which you sometimes find with negative Next time?
>> 
>> I did not do anything special, I just start them. E.g:
>> 
>>    (run-with-timer 10 30 'my-function)
>> 
>> This timer checks my todo list regularly and tells me if there is a scheduled
>> todo tasks imminent. Occasionally, it stops working with negative value for
>> Next in timer-list when the computer comes back from sleep.
>
> When that happens next time, please show the exact value of the
> relevant timer as a Lisp data structure.  (You should be able to find
> it in the variable timer-list.)  Also, show the value returned by the
> function current-time at that point.
>
> In addition, please show the information collected by
> "M-x report-emacs-bug RET", I don't think you included it with your
> original report.


Not the poster of the original bug, but I might have a similar issue:

Since Sunday, I've been running emacs¹ from GDB, but there is nothing
much to report. At startup, init.el sets  (run-at-time "10:35" 21600
'org-mobile-push). It ran on Sunday, but not on Monday (yesterday) -
despite a good night's sleep.

Today (Tuesday), M-x timer-list shows:

      -59170.00   360.00 org-mobile-push

and from describe-variable timer-list :

([t 24184 55076 0 21600 org-mobile-push nil nil 0]
 [nil 24185 50052 498034 nil undo-auto--boundary-timer nil nil 779000]
 [nil 24185 50075 990913 60 display-time-event-handler nil nil 704001]
I snip the rest)





In GNU Emacs 28.0.50 (build 1, x86_64-pc-linux-gnu, GTK+ Version 3.24.14, cairo version 1.16.0)
 of 2020-03-22, unofficial emacs-snapshot build: http://emacs.secretsauce.net built on lilbastard
Windowing system distributor 'The X.Org Foundation', version 11.0.12007000
System Description: Debian GNU/Linux bullseye/sid

Recent messages:
Auto-saving...done
Making completion list... [2 times]
Type C-x 1 to delete the help window.
<left-fringe> <drag-mouse-1> is undefined
Mark set [4 times]
Auto-saving...done
kill-line: End of buffer
Saving file /home/gijs/News/drafts/drafts/159...
Wrote /home/gijs/News/drafts/drafts/159
Making completion list... [2 times]

Configured using:
 'configure --build x86_64-linux-gnu --prefix=/usr
 --sharedstatedir=/var/lib --libexecdir=/usr/lib
 --localstatedir=/var/lib --infodir=/usr/share/info
 --mandir=/usr/share/man --with-pop=yes
 --enable-locallisppath=/etc/emacs-snapshot:/etc/emacs:/usr/local/share/emacs/28.0.50/site-lisp:/usr/local/share/emacs/site-lisp:/usr/share/emacs/28.0.50/site-lisp:/usr/share/emacs/site-lisp
 --build x86_64-linux-gnu --prefix=/usr --sharedstatedir=/var/lib
 --libexecdir=/usr/lib --localstatedir=/var/lib
 --infodir=/usr/share/info --mandir=/usr/share/man --with-pop=yes
 --enable-locallisppath=/etc/emacs-snapshot:/etc/emacs:/usr/local/share/emacs/28.0.50/site-lisp:/usr/local/share/emacs/site-lisp:/usr/share/emacs/28.0.50/site-lisp:/usr/share/emacs/site-lisp
 --with-x=yes --with-x-toolkit=gtk3 --with-toolkit-scroll-bars
 'CFLAGS=-g -O2
 -fdebug-prefix-map=/build/emacs-snapshot-aiyHlf/emacs-snapshot-20200322+emacs-27.0.90-508-g1242ae904a9=. -fstack-protector-strong
 -Wformat -Werror=format-security -Wall -fno-omit-frame-pointer'
 'CPPFLAGS=-Wdate-time -D_FORTIFY_SOURCE=2' LDFLAGS=-Wl,-z,relro'

Configured features:
XPM JPEG TIFF GIF PNG RSVG CAIRO SOUND GPM DBUS GSETTINGS GLIB NOTIFY
INOTIFY ACL LIBSELINUX GNUTLS LIBXML2 FREETYPE HARFBUZZ M17N_FLT LIBOTF
ZLIB TOOLKIT_SCROLL_BARS GTK3 X11 XDBE XIM MODULES THREADS PDUMPER LCMS2
GMP

Important settings:
  value of $LANG: en_US.UTF-8
  value of $XMODIFIERS: @im=ibus
  locale-coding-system: utf-8-unix

Major mode: Article

Minor modes in effect:
  recentf-mode: t
  display-time-mode: t
  pdf-occur-global-minor-mode: t
  tooltip-mode: t
  global-eldoc-mode: t
  electric-indent-mode: t
  mouse-wheel-mode: t
  menu-bar-mode: t
  file-name-shadow-mode: t
  global-font-lock-mode: t
  font-lock-mode: t
  blink-cursor-mode: t
  auto-composition-mode: t
  auto-encryption-mode: t
  auto-compression-mode: t
  buffer-read-only: t
  line-number-mode: t
  transient-mark-mode: t

Load-path shadows:
/usr/share/emacs/site-lisp/elpa/geiser-0.8.1/geiser-completion hides /usr/share/emacs/28.0.50/site-lisp/elpa/geiser-0.8.1/geiser-completion
/usr/share/emacs/site-lisp/elpa/geiser-0.8.1/geiser-autodoc hides /usr/share/emacs/28.0.50/site-lisp/elpa/geiser-0.8.1/geiser-autodoc
/usr/share/emacs/site-lisp/elpa/geiser-0.8.1/geiser-popup hides /usr/share/emacs/28.0.50/site-lisp/elpa/geiser-0.8.1/geiser-popup
/usr/share/emacs/site-lisp/elpa/geiser-0.8.1/geiser-custom hides /usr/share/emacs/28.0.50/site-lisp/elpa/geiser-0.8.1/geiser-custom
/usr/share/emacs/site-lisp/elpa/geiser-0.8.1/geiser-repl hides /usr/share/emacs/28.0.50/site-lisp/elpa/geiser-0.8.1/geiser-repl
/usr/share/emacs/site-lisp/elpa/geiser-0.8.1/geiser hides /usr/share/emacs/28.0.50/site-lisp/elpa/geiser-0.8.1/geiser
/usr/share/emacs/site-lisp/elpa/geiser-0.8.1/geiser-doc hides /usr/share/emacs/28.0.50/site-lisp/elpa/geiser-0.8.1/geiser-doc
/usr/share/emacs/site-lisp/elpa/geiser-0.8.1/geiser-impl hides /usr/share/emacs/28.0.50/site-lisp/elpa/geiser-0.8.1/geiser-impl
/usr/share/emacs/site-lisp/elpa/geiser-0.8.1/geiser-menu hides /usr/share/emacs/28.0.50/site-lisp/elpa/geiser-0.8.1/geiser-menu
/usr/share/emacs/site-lisp/elpa/geiser-0.8.1/geiser-version hides /usr/share/emacs/28.0.50/site-lisp/elpa/geiser-0.8.1/geiser-version
/usr/share/emacs/site-lisp/elpa/geiser-0.8.1/geiser-compile hides /usr/share/emacs/28.0.50/site-lisp/elpa/geiser-0.8.1/geiser-compile
/usr/share/emacs/site-lisp/elpa/geiser-0.8.1/geiser-load hides /usr/share/emacs/28.0.50/site-lisp/elpa/geiser-0.8.1/geiser-load
/usr/share/emacs/site-lisp/elpa/geiser-0.8.1/geiser-xref hides /usr/share/emacs/28.0.50/site-lisp/elpa/geiser-0.8.1/geiser-xref
/usr/share/emacs/site-lisp/elpa/geiser-0.8.1/geiser-mode hides /usr/share/emacs/28.0.50/site-lisp/elpa/geiser-0.8.1/geiser-mode
/usr/share/emacs/site-lisp/elpa/geiser-0.8.1/geiser-autoloads hides /usr/share/emacs/28.0.50/site-lisp/elpa/geiser-0.8.1/geiser-autoloads
/usr/share/emacs/site-lisp/elpa/geiser-0.8.1/geiser-company hides /usr/share/emacs/28.0.50/site-lisp/elpa/geiser-0.8.1/geiser-company
/usr/share/emacs/site-lisp/elpa/geiser-0.8.1/geiser-log hides /usr/share/emacs/28.0.50/site-lisp/elpa/geiser-0.8.1/geiser-log
/usr/share/emacs/site-lisp/elpa/geiser-0.8.1/geiser-image hides /usr/share/emacs/28.0.50/site-lisp/elpa/geiser-0.8.1/geiser-image
/usr/share/emacs/site-lisp/elpa/geiser-0.8.1/geiser-reload hides /usr/share/emacs/28.0.50/site-lisp/elpa/geiser-0.8.1/geiser-reload
/usr/share/emacs/site-lisp/elpa/geiser-0.8.1/geiser-base hides /usr/share/emacs/28.0.50/site-lisp/elpa/geiser-0.8.1/geiser-base
/usr/share/emacs/site-lisp/elpa/geiser-0.8.1/geiser-chicken hides /usr/share/emacs/28.0.50/site-lisp/elpa/geiser-0.8.1/geiser-chicken
/usr/share/emacs/site-lisp/elpa/geiser-0.8.1/geiser-racket hides /usr/share/emacs/28.0.50/site-lisp/elpa/geiser-0.8.1/geiser-racket
/usr/share/emacs/site-lisp/elpa/geiser-0.8.1/geiser-syntax hides /usr/share/emacs/28.0.50/site-lisp/elpa/geiser-0.8.1/geiser-syntax
/usr/share/emacs/site-lisp/elpa/geiser-0.8.1/geiser-debug hides /usr/share/emacs/28.0.50/site-lisp/elpa/geiser-0.8.1/geiser-debug
/usr/share/emacs/site-lisp/elpa/geiser-0.8.1/geiser-connection hides /usr/share/emacs/28.0.50/site-lisp/elpa/geiser-0.8.1/geiser-connection
/usr/share/emacs/site-lisp/elpa/geiser-0.8.1/geiser-edit hides /usr/share/emacs/28.0.50/site-lisp/elpa/geiser-0.8.1/geiser-edit
/usr/share/emacs/site-lisp/elpa/geiser-0.8.1/geiser-guile hides /usr/share/emacs/28.0.50/site-lisp/elpa/geiser-0.8.1/geiser-guile
/usr/share/emacs/site-lisp/elpa/geiser-0.8.1/geiser-pkg hides /usr/share/emacs/28.0.50/site-lisp/elpa/geiser-0.8.1/geiser-pkg
/usr/share/emacs/site-lisp/elpa/geiser-0.8.1/geiser-eval hides /usr/share/emacs/28.0.50/site-lisp/elpa/geiser-0.8.1/geiser-eval
/usr/share/emacs/28.0.50/site-lisp/debian-startup hides /usr/share/emacs/site-lisp/debian-startup
/usr/share/emacs/28.0.50/site-lisp/bbdb3/bbdb-message hides /usr/share/emacs/site-lisp/bbdb3/bbdb-message
/usr/share/emacs/28.0.50/site-lisp/bbdb3/bbdb-vm-aux hides /usr/share/emacs/site-lisp/bbdb3/bbdb-vm-aux
/usr/share/emacs/28.0.50/site-lisp/bbdb3/bbdb-loaddefs hides /usr/share/emacs/site-lisp/bbdb3/bbdb-loaddefs
/usr/share/emacs/28.0.50/site-lisp/bbdb3/bbdb-ispell hides /usr/share/emacs/site-lisp/bbdb3/bbdb-ispell
/usr/share/emacs/28.0.50/site-lisp/bbdb3/bbdb-gnus hides /usr/share/emacs/site-lisp/bbdb3/bbdb-gnus
/usr/share/emacs/28.0.50/site-lisp/bbdb3/bbdb-mua hides /usr/share/emacs/site-lisp/bbdb3/bbdb-mua
/usr/share/emacs/28.0.50/site-lisp/bbdb3/bbdb-site hides /usr/share/emacs/site-lisp/bbdb3/bbdb-site
/usr/share/emacs/28.0.50/site-lisp/bbdb3/bbdb-gnus-aux hides /usr/share/emacs/site-lisp/bbdb3/bbdb-gnus-aux
/usr/share/emacs/28.0.50/site-lisp/bbdb3/bbdb-tex hides /usr/share/emacs/site-lisp/bbdb3/bbdb-tex
/usr/share/emacs/28.0.50/site-lisp/bbdb3/bbdb-sc hides /usr/share/emacs/site-lisp/bbdb3/bbdb-sc
/usr/share/emacs/28.0.50/site-lisp/bbdb3/bbdb-snarf hides /usr/share/emacs/site-lisp/bbdb3/bbdb-snarf
/usr/share/emacs/28.0.50/site-lisp/bbdb3/bbdb-pgp hides /usr/share/emacs/site-lisp/bbdb3/bbdb-pgp
/usr/share/emacs/28.0.50/site-lisp/bbdb3/bbdb-migrate hides /usr/share/emacs/site-lisp/bbdb3/bbdb-migrate
/usr/share/emacs/28.0.50/site-lisp/bbdb3/bbdb-anniv hides /usr/share/emacs/site-lisp/bbdb3/bbdb-anniv
/usr/share/emacs/28.0.50/site-lisp/bbdb3/bbdb hides /usr/share/emacs/site-lisp/bbdb3/bbdb
/usr/share/emacs/28.0.50/site-lisp/bbdb3/bbdb-com hides /usr/share/emacs/site-lisp/bbdb3/bbdb-com
/usr/share/emacs/28.0.50/site-lisp/bbdb3/bbdb-wl hides /usr/share/emacs/site-lisp/bbdb3/bbdb-wl
/usr/share/emacs/28.0.50/site-lisp/bbdb3/bbdb-mhe hides /usr/share/emacs/site-lisp/bbdb3/bbdb-mhe
/usr/share/emacs/28.0.50/site-lisp/bbdb3/bbdb-rmail hides /usr/share/emacs/site-lisp/bbdb3/bbdb-rmail
/usr/share/emacs/28.0.50/site-lisp/bbdb3/bbdb-pkg hides /usr/share/emacs/site-lisp/bbdb3/bbdb-pkg
/usr/share/emacs/28.0.50/site-lisp/emms/emms-compat hides /usr/share/emacs/site-lisp/emms/emms-compat
/usr/share/emacs/28.0.50/site-lisp/emms/emms-mark hides /usr/share/emacs/site-lisp/emms/emms-mark
/usr/share/emacs/28.0.50/site-lisp/emms/later-do hides /usr/share/emacs/site-lisp/emms/later-do
/usr/share/emacs/28.0.50/site-lisp/emms/emms-librefm-scrobbler hides /usr/share/emacs/site-lisp/emms/emms-librefm-scrobbler
/usr/share/emacs/28.0.50/site-lisp/emms/emms-cue hides /usr/share/emacs/site-lisp/emms/emms-cue
/usr/share/emacs/28.0.50/site-lisp/emms/emms-player-mpv hides /usr/share/emacs/site-lisp/emms/emms-player-mpv
/usr/share/emacs/28.0.50/site-lisp/emms/emms-info-libtag hides /usr/share/emacs/site-lisp/emms/emms-info-libtag
/usr/share/emacs/28.0.50/site-lisp/emms/jack hides /usr/share/emacs/site-lisp/emms/jack
/usr/share/emacs/28.0.50/site-lisp/emms/emms-player-vlc hides /usr/share/emacs/site-lisp/emms/emms-player-vlc
/usr/share/emacs/28.0.50/site-lisp/emms/emms-streams hides /usr/share/emacs/site-lisp/emms/emms-streams
/usr/share/emacs/28.0.50/site-lisp/emms/emms-volume hides /usr/share/emacs/site-lisp/emms/emms-volume
/usr/share/emacs/28.0.50/site-lisp/emms/emms-mode-line hides /usr/share/emacs/site-lisp/emms/emms-mode-line
/usr/share/emacs/28.0.50/site-lisp/emms/emms-show-all hides /usr/share/emacs/site-lisp/emms/emms-show-all
/usr/share/emacs/28.0.50/site-lisp/emms/emms-info hides /usr/share/emacs/site-lisp/emms/emms-info
/usr/share/emacs/28.0.50/site-lisp/emms/emms-cache hides /usr/share/emacs/site-lisp/emms/emms-cache
/usr/share/emacs/28.0.50/site-lisp/emms/emms-url hides /usr/share/emacs/site-lisp/emms/emms-url
/usr/share/emacs/28.0.50/site-lisp/emms/emms-player-simple hides /usr/share/emacs/site-lisp/emms/emms-player-simple
/usr/share/emacs/28.0.50/site-lisp/emms/emms-auto hides /usr/share/emacs/site-lisp/emms/emms-auto
/usr/share/emacs/28.0.50/site-lisp/emms/emms-player-mplayer hides /usr/share/emacs/site-lisp/emms/emms-player-mplayer
/usr/share/emacs/28.0.50/site-lisp/emms/emms-player-xine hides /usr/share/emacs/site-lisp/emms/emms-player-xine
/usr/share/emacs/28.0.50/site-lisp/emms/emms-setup hides /usr/share/emacs/site-lisp/emms/emms-setup
/usr/share/emacs/28.0.50/site-lisp/emms/emms-tag-editor hides /usr/share/emacs/site-lisp/emms/emms-tag-editor
/usr/share/emacs/28.0.50/site-lisp/emms/emms-lyrics hides /usr/share/emacs/site-lisp/emms/emms-lyrics
/usr/share/emacs/28.0.50/site-lisp/emms/emms-librefm-stream hides /usr/share/emacs/site-lisp/emms/emms-librefm-stream
/usr/share/emacs/28.0.50/site-lisp/emms/emms-score hides /usr/share/emacs/site-lisp/emms/emms-score
/usr/share/emacs/28.0.50/site-lisp/emms/emms-playlist-mode hides /usr/share/emacs/site-lisp/emms/emms-playlist-mode
/usr/share/emacs/28.0.50/site-lisp/emms/emms-player-mpd hides /usr/share/emacs/site-lisp/emms/emms-player-mpd
/usr/share/emacs/28.0.50/site-lisp/emms/emms-info-ogginfo hides /usr/share/emacs/site-lisp/emms/emms-info-ogginfo
/usr/share/emacs/28.0.50/site-lisp/emms/emms-info-mp3info hides /usr/share/emacs/site-lisp/emms/emms-info-mp3info
/usr/share/emacs/28.0.50/site-lisp/emms/emms-maint hides /usr/share/emacs/site-lisp/emms/emms-maint
/usr/share/emacs/28.0.50/site-lisp/emms/emms-volume-amixer hides /usr/share/emacs/site-lisp/emms/emms-volume-amixer
/usr/share/emacs/28.0.50/site-lisp/emms/emms hides /usr/share/emacs/site-lisp/emms/emms
/usr/share/emacs/28.0.50/site-lisp/emms/emms-source-file hides /usr/share/emacs/site-lisp/emms/emms-source-file
/usr/share/emacs/28.0.50/site-lisp/emms/emms-i18n hides /usr/share/emacs/site-lisp/emms/emms-i18n
/usr/share/emacs/28.0.50/site-lisp/emms/emms-info-opusinfo hides /usr/share/emacs/site-lisp/emms/emms-info-opusinfo
/usr/share/emacs/28.0.50/site-lisp/emms/emms-source-playlist hides /usr/share/emacs/site-lisp/emms/emms-source-playlist
/usr/share/emacs/28.0.50/site-lisp/emms/emms-player-mpg321-remote hides /usr/share/emacs/site-lisp/emms/emms-player-mpg321-remote
/usr/share/emacs/28.0.50/site-lisp/emms/emms-info-metaflac hides /usr/share/emacs/site-lisp/emms/emms-info-metaflac
/usr/share/emacs/28.0.50/site-lisp/emms/emms-playlist-limit hides /usr/share/emacs/site-lisp/emms/emms-playlist-limit
/usr/share/emacs/28.0.50/site-lisp/emms/emms-history hides /usr/share/emacs/site-lisp/emms/emms-history
/usr/share/emacs/28.0.50/site-lisp/emms/emms-browser hides /usr/share/emacs/site-lisp/emms/emms-browser
/usr/share/emacs/28.0.50/site-lisp/emms/emms-stream-info hides /usr/share/emacs/site-lisp/emms/emms-stream-info
/usr/share/emacs/28.0.50/site-lisp/emms/emms-bookmarks hides /usr/share/emacs/site-lisp/emms/emms-bookmarks
/usr/share/emacs/28.0.50/site-lisp/emms/emms-mode-line-icon hides /usr/share/emacs/site-lisp/emms/emms-mode-line-icon
/usr/share/emacs/28.0.50/site-lisp/emms/emms-last-played hides /usr/share/emacs/site-lisp/emms/emms-last-played
/usr/share/emacs/28.0.50/site-lisp/emms/emms-playing-time hides /usr/share/emacs/site-lisp/emms/emms-playing-time
/usr/share/emacs/28.0.50/site-lisp/emms/emms-metaplaylist-mode hides /usr/share/emacs/site-lisp/emms/emms-metaplaylist-mode
/usr/share/emacs/28.0.50/site-lisp/emms/emms-playlist-sort hides /usr/share/emacs/site-lisp/emms/emms-playlist-sort
/usr/share/emacs/28.0.50/site-lisp/emms/emms-volume-pulse hides /usr/share/emacs/site-lisp/emms/emms-volume-pulse
/usr/share/emacs/28.0.50/site-lisp/elpa/boxquote-2.1/boxquote-pkg hides /usr/share/emacs/site-lisp/elpa/boxquote-2.1/boxquote-pkg
/usr/share/emacs/28.0.50/site-lisp/elpa/boxquote-2.1/boxquote-autoloads hides /usr/share/emacs/site-lisp/elpa/boxquote-2.1/boxquote-autoloads
/usr/share/emacs/28.0.50/site-lisp/elpa/boxquote-2.1/boxquote hides /usr/share/emacs/site-lisp/elpa/boxquote-2.1/boxquote
/usr/share/emacs/28.0.50/site-lisp/elpa/browse-kill-ring-2.0.0/browse-kill-ring-autoloads hides /usr/share/emacs/site-lisp/elpa/browse-kill-ring-2.0.0/browse-kill-ring-autoloads
/usr/share/emacs/28.0.50/site-lisp/elpa/browse-kill-ring-2.0.0/browse-kill-ring hides /usr/share/emacs/site-lisp/elpa/browse-kill-ring-2.0.0/browse-kill-ring
/usr/share/emacs/28.0.50/site-lisp/elpa/browse-kill-ring-2.0.0/browse-kill-ring-pkg hides /usr/share/emacs/site-lisp/elpa/browse-kill-ring-2.0.0/browse-kill-ring-pkg
/usr/share/emacs/28.0.50/site-lisp/elpa/dash-2.17.0/dash hides /usr/share/emacs/site-lisp/elpa/dash-2.17.0/dash
/usr/share/emacs/28.0.50/site-lisp/elpa/dash-2.17.0/dash-pkg hides /usr/share/emacs/site-lisp/elpa/dash-2.17.0/dash-pkg
/usr/share/emacs/28.0.50/site-lisp/elpa/dash-2.17.0/dash-autoloads hides /usr/share/emacs/site-lisp/elpa/dash-2.17.0/dash-autoloads
/usr/share/emacs/28.0.50/site-lisp/elpa/ghub-3.3.0/gsexp hides /usr/share/emacs/site-lisp/elpa/ghub-3.3.0/gsexp
/usr/share/emacs/28.0.50/site-lisp/elpa/ghub-3.3.0/ghub-autoloads hides /usr/share/emacs/site-lisp/elpa/ghub-3.3.0/ghub-autoloads
/usr/share/emacs/28.0.50/site-lisp/elpa/ghub-3.3.0/ghub-graphql hides /usr/share/emacs/site-lisp/elpa/ghub-3.3.0/ghub-graphql
/usr/share/emacs/28.0.50/site-lisp/elpa/ghub-3.3.0/glab hides /usr/share/emacs/site-lisp/elpa/ghub-3.3.0/glab
/usr/share/emacs/28.0.50/site-lisp/elpa/ghub-3.3.0/buck hides /usr/share/emacs/site-lisp/elpa/ghub-3.3.0/buck
/usr/share/emacs/28.0.50/site-lisp/elpa/ghub-3.3.0/ghub hides /usr/share/emacs/site-lisp/elpa/ghub-3.3.0/ghub
/usr/share/emacs/28.0.50/site-lisp/elpa/ghub-3.3.0/ghub-pkg hides /usr/share/emacs/site-lisp/elpa/ghub-3.3.0/ghub-pkg
/usr/share/emacs/28.0.50/site-lisp/elpa/ghub-3.3.0/gogs hides /usr/share/emacs/site-lisp/elpa/ghub-3.3.0/gogs
/usr/share/emacs/28.0.50/site-lisp/elpa/ghub-3.3.0/gtea hides /usr/share/emacs/site-lisp/elpa/ghub-3.3.0/gtea
/usr/share/emacs/28.0.50/site-lisp/elpa/git-commit-2.90.1/git-commit hides /usr/share/emacs/site-lisp/elpa/git-commit-2.90.1/git-commit
/usr/share/emacs/28.0.50/site-lisp/elpa/git-commit-2.90.1/git-commit-autoloads hides /usr/share/emacs/site-lisp/elpa/git-commit-2.90.1/git-commit-autoloads
/usr/share/emacs/28.0.50/site-lisp/elpa/git-commit-2.90.1/git-commit-pkg hides /usr/share/emacs/site-lisp/elpa/git-commit-2.90.1/git-commit-pkg
/usr/share/emacs/28.0.50/site-lisp/elpa/let-alist-1.0.6/let-alist hides /usr/share/emacs/site-lisp/elpa/let-alist-1.0.6/let-alist
/usr/share/emacs/28.0.50/site-lisp/elpa/let-alist-1.0.6/let-alist-autoloads hides /usr/share/emacs/site-lisp/elpa/let-alist-1.0.6/let-alist-autoloads
/usr/share/emacs/28.0.50/site-lisp/elpa/let-alist-1.0.6/let-alist-pkg hides /usr/share/emacs/site-lisp/elpa/let-alist-1.0.6/let-alist-pkg
/usr/share/emacs/28.0.50/site-lisp/elpa/magit-2.90.1/magit-branch hides /usr/share/emacs/site-lisp/elpa/magit-2.90.1/magit-branch
/usr/share/emacs/28.0.50/site-lisp/elpa/magit-2.90.1/magit-apply hides /usr/share/emacs/site-lisp/elpa/magit-2.90.1/magit-apply
/usr/share/emacs/28.0.50/site-lisp/elpa/magit-2.90.1/magit-mode hides /usr/share/emacs/site-lisp/elpa/magit-2.90.1/magit-mode
/usr/share/emacs/28.0.50/site-lisp/elpa/magit-2.90.1/magit-patch hides /usr/share/emacs/site-lisp/elpa/magit-2.90.1/magit-patch
/usr/share/emacs/28.0.50/site-lisp/elpa/magit-2.90.1/magit-remote hides /usr/share/emacs/site-lisp/elpa/magit-2.90.1/magit-remote
/usr/share/emacs/28.0.50/site-lisp/elpa/magit-2.90.1/magit-obsolete hides /usr/share/emacs/site-lisp/elpa/magit-2.90.1/magit-obsolete
/usr/share/emacs/28.0.50/site-lisp/elpa/magit-2.90.1/magit-process hides /usr/share/emacs/site-lisp/elpa/magit-2.90.1/magit-process
/usr/share/emacs/28.0.50/site-lisp/elpa/magit-2.90.1/magit-clone hides /usr/share/emacs/site-lisp/elpa/magit-2.90.1/magit-clone
/usr/share/emacs/28.0.50/site-lisp/elpa/magit-2.90.1/magit-margin hides /usr/share/emacs/site-lisp/elpa/magit-2.90.1/magit-margin
/usr/share/emacs/28.0.50/site-lisp/elpa/magit-2.90.1/magit-tag hides /usr/share/emacs/site-lisp/elpa/magit-2.90.1/magit-tag
/usr/share/emacs/28.0.50/site-lisp/elpa/magit-2.90.1/magit-pkg hides /usr/share/emacs/site-lisp/elpa/magit-2.90.1/magit-pkg
/usr/share/emacs/28.0.50/site-lisp/elpa/magit-2.90.1/magit-commit hides /usr/share/emacs/site-lisp/elpa/magit-2.90.1/magit-commit
/usr/share/emacs/28.0.50/site-lisp/elpa/magit-2.90.1/magit-notes hides /usr/share/emacs/site-lisp/elpa/magit-2.90.1/magit-notes
/usr/share/emacs/28.0.50/site-lisp/elpa/magit-2.90.1/magit-git hides /usr/share/emacs/site-lisp/elpa/magit-2.90.1/magit-git
/usr/share/emacs/28.0.50/site-lisp/elpa/magit-2.90.1/magit hides /usr/share/emacs/site-lisp/elpa/magit-2.90.1/magit
/usr/share/emacs/28.0.50/site-lisp/elpa/magit-2.90.1/magit-imenu hides /usr/share/emacs/site-lisp/elpa/magit-2.90.1/magit-imenu
/usr/share/emacs/28.0.50/site-lisp/elpa/magit-2.90.1/magit-diff hides /usr/share/emacs/site-lisp/elpa/magit-2.90.1/magit-diff
/usr/share/emacs/28.0.50/site-lisp/elpa/magit-2.90.1/magit-merge hides /usr/share/emacs/site-lisp/elpa/magit-2.90.1/magit-merge
/usr/share/emacs/28.0.50/site-lisp/elpa/magit-2.90.1/magit-wip hides /usr/share/emacs/site-lisp/elpa/magit-2.90.1/magit-wip
/usr/share/emacs/28.0.50/site-lisp/elpa/magit-2.90.1/magit-fetch hides /usr/share/emacs/site-lisp/elpa/magit-2.90.1/magit-fetch
/usr/share/emacs/28.0.50/site-lisp/elpa/magit-2.90.1/magit-stash hides /usr/share/emacs/site-lisp/elpa/magit-2.90.1/magit-stash
/usr/share/emacs/28.0.50/site-lisp/elpa/magit-2.90.1/magit-core hides /usr/share/emacs/site-lisp/elpa/magit-2.90.1/magit-core
/usr/share/emacs/28.0.50/site-lisp/elpa/magit-2.90.1/magit-files hides /usr/share/emacs/site-lisp/elpa/magit-2.90.1/magit-files
/usr/share/emacs/28.0.50/site-lisp/elpa/magit-2.90.1/magit-pull hides /usr/share/emacs/site-lisp/elpa/magit-2.90.1/magit-pull
/usr/share/emacs/28.0.50/site-lisp/elpa/magit-2.90.1/magit-utils hides /usr/share/emacs/site-lisp/elpa/magit-2.90.1/magit-utils
/usr/share/emacs/28.0.50/site-lisp/elpa/magit-2.90.1/magit-submodule hides /usr/share/emacs/site-lisp/elpa/magit-2.90.1/magit-submodule
/usr/share/emacs/28.0.50/site-lisp/elpa/magit-2.90.1/magit-autorevert hides /usr/share/emacs/site-lisp/elpa/magit-2.90.1/magit-autorevert
/usr/share/emacs/28.0.50/site-lisp/elpa/magit-2.90.1/magit-status hides /usr/share/emacs/site-lisp/elpa/magit-2.90.1/magit-status
/usr/share/emacs/28.0.50/site-lisp/elpa/magit-2.90.1/magit-log hides /usr/share/emacs/site-lisp/elpa/magit-2.90.1/magit-log
/usr/share/emacs/28.0.50/site-lisp/elpa/magit-2.90.1/magit-extras hides /usr/share/emacs/site-lisp/elpa/magit-2.90.1/magit-extras
/usr/share/emacs/28.0.50/site-lisp/elpa/magit-2.90.1/magit-subtree hides /usr/share/emacs/site-lisp/elpa/magit-2.90.1/magit-subtree
/usr/share/emacs/28.0.50/site-lisp/elpa/magit-2.90.1/magit-section hides /usr/share/emacs/site-lisp/elpa/magit-2.90.1/magit-section
/usr/share/emacs/28.0.50/site-lisp/elpa/magit-2.90.1/magit-refs hides /usr/share/emacs/site-lisp/elpa/magit-2.90.1/magit-refs
/usr/share/emacs/28.0.50/site-lisp/elpa/magit-2.90.1/magit-bisect hides /usr/share/emacs/site-lisp/elpa/magit-2.90.1/magit-bisect
/usr/share/emacs/28.0.50/site-lisp/elpa/magit-2.90.1/magit-collab hides /usr/share/emacs/site-lisp/elpa/magit-2.90.1/magit-collab
/usr/share/emacs/28.0.50/site-lisp/elpa/magit-2.90.1/magit-reset hides /usr/share/emacs/site-lisp/elpa/magit-2.90.1/magit-reset
/usr/share/emacs/28.0.50/site-lisp/elpa/magit-2.90.1/magit-gitignore hides /usr/share/emacs/site-lisp/elpa/magit-2.90.1/magit-gitignore
/usr/share/emacs/28.0.50/site-lisp/elpa/magit-2.90.1/magit-ediff hides /usr/share/emacs/site-lisp/elpa/magit-2.90.1/magit-ediff
/usr/share/emacs/28.0.50/site-lisp/elpa/magit-2.90.1/magit-sequence hides /usr/share/emacs/site-lisp/elpa/magit-2.90.1/magit-sequence
/usr/share/emacs/28.0.50/site-lisp/elpa/magit-2.90.1/magit-push hides /usr/share/emacs/site-lisp/elpa/magit-2.90.1/magit-push
/usr/share/emacs/28.0.50/site-lisp/elpa/magit-2.90.1/git-rebase hides /usr/share/emacs/site-lisp/elpa/magit-2.90.1/git-rebase
/usr/share/emacs/28.0.50/site-lisp/elpa/magit-2.90.1/magit-bookmark hides /usr/share/emacs/site-lisp/elpa/magit-2.90.1/magit-bookmark
/usr/share/emacs/28.0.50/site-lisp/elpa/magit-2.90.1/magit-blame hides /usr/share/emacs/site-lisp/elpa/magit-2.90.1/magit-blame
/usr/share/emacs/28.0.50/site-lisp/elpa/magit-2.90.1/magit-repos hides /usr/share/emacs/site-lisp/elpa/magit-2.90.1/magit-repos
/usr/share/emacs/28.0.50/site-lisp/elpa/magit-2.90.1/magit-autoloads hides /usr/share/emacs/site-lisp/elpa/magit-2.90.1/magit-autoloads
/usr/share/emacs/28.0.50/site-lisp/elpa/magit-2.90.1/magit-worktree hides /usr/share/emacs/site-lisp/elpa/magit-2.90.1/magit-worktree
/usr/share/emacs/28.0.50/site-lisp/elpa/magit-popup-2.13.2/magit-popup-autoloads hides /usr/share/emacs/site-lisp/elpa/magit-popup-2.13.2/magit-popup-autoloads
/usr/share/emacs/28.0.50/site-lisp/elpa/magit-popup-2.13.2/magit-popup hides /usr/share/emacs/site-lisp/elpa/magit-popup-2.13.2/magit-popup
/usr/share/emacs/28.0.50/site-lisp/elpa/magit-popup-2.13.2/magit-popup-pkg hides /usr/share/emacs/site-lisp/elpa/magit-popup-2.13.2/magit-popup-pkg
/usr/share/emacs/28.0.50/site-lisp/elpa/markdown-mode-2.3snapshot210/markdown-mode hides /usr/share/emacs/site-lisp/elpa/markdown-mode-2.3snapshot210/markdown-mode
/usr/share/emacs/28.0.50/site-lisp/elpa/markdown-mode-2.3snapshot210/markdown-mode-pkg hides /usr/share/emacs/site-lisp/elpa/markdown-mode-2.3snapshot210/markdown-mode-pkg
/usr/share/emacs/28.0.50/site-lisp/elpa/markdown-mode-2.3snapshot210/markdown-mode-autoloads hides /usr/share/emacs/site-lisp/elpa/markdown-mode-2.3snapshot210/markdown-mode-autoloads
/usr/share/emacs/28.0.50/site-lisp/elpa/pdf-tools-0.90/pdf-tools hides /usr/share/emacs/site-lisp/elpa/pdf-tools-0.90/pdf-tools
/usr/share/emacs/28.0.50/site-lisp/elpa/pdf-tools-0.90/pdf-view hides /usr/share/emacs/site-lisp/elpa/pdf-tools-0.90/pdf-view
/usr/share/emacs/28.0.50/site-lisp/elpa/pdf-tools-0.90/pdf-misc hides /usr/share/emacs/site-lisp/elpa/pdf-tools-0.90/pdf-misc
/usr/share/emacs/28.0.50/site-lisp/elpa/pdf-tools-0.90/pdf-info hides /usr/share/emacs/site-lisp/elpa/pdf-tools-0.90/pdf-info
/usr/share/emacs/28.0.50/site-lisp/elpa/pdf-tools-0.90/pdf-occur hides /usr/share/emacs/site-lisp/elpa/pdf-tools-0.90/pdf-occur
/usr/share/emacs/28.0.50/site-lisp/elpa/pdf-tools-0.90/pdf-history hides /usr/share/emacs/site-lisp/elpa/pdf-tools-0.90/pdf-history
/usr/share/emacs/28.0.50/site-lisp/elpa/pdf-tools-0.90/pdf-links hides /usr/share/emacs/site-lisp/elpa/pdf-tools-0.90/pdf-links
/usr/share/emacs/28.0.50/site-lisp/elpa/pdf-tools-0.90/pdf-loader hides /usr/share/emacs/site-lisp/elpa/pdf-tools-0.90/pdf-loader
/usr/share/emacs/28.0.50/site-lisp/elpa/pdf-tools-0.90/pdf-isearch hides /usr/share/emacs/site-lisp/elpa/pdf-tools-0.90/pdf-isearch
/usr/share/emacs/28.0.50/site-lisp/elpa/pdf-tools-0.90/pdf-sync hides /usr/share/emacs/site-lisp/elpa/pdf-tools-0.90/pdf-sync
/usr/share/emacs/28.0.50/site-lisp/elpa/pdf-tools-0.90/pdf-tools-autoloads hides /usr/share/emacs/site-lisp/elpa/pdf-tools-0.90/pdf-tools-autoloads
/usr/share/emacs/28.0.50/site-lisp/elpa/pdf-tools-0.90/pdf-tools-pkg hides /usr/share/emacs/site-lisp/elpa/pdf-tools-0.90/pdf-tools-pkg
/usr/share/emacs/28.0.50/site-lisp/elpa/pdf-tools-0.90/pdf-dev hides /usr/share/emacs/site-lisp/elpa/pdf-tools-0.90/pdf-dev
/usr/share/emacs/28.0.50/site-lisp/elpa/pdf-tools-0.90/pdf-util hides /usr/share/emacs/site-lisp/elpa/pdf-tools-0.90/pdf-util
/usr/share/emacs/28.0.50/site-lisp/elpa/pdf-tools-0.90/pdf-annot hides /usr/share/emacs/site-lisp/elpa/pdf-tools-0.90/pdf-annot
/usr/share/emacs/28.0.50/site-lisp/elpa/pdf-tools-0.90/pdf-cache hides /usr/share/emacs/site-lisp/elpa/pdf-tools-0.90/pdf-cache
/usr/share/emacs/28.0.50/site-lisp/elpa/pdf-tools-0.90/pdf-virtual hides /usr/share/emacs/site-lisp/elpa/pdf-tools-0.90/pdf-virtual
/usr/share/emacs/28.0.50/site-lisp/elpa/pdf-tools-0.90/pdf-outline hides /usr/share/emacs/site-lisp/elpa/pdf-tools-0.90/pdf-outline
/usr/share/emacs/28.0.50/site-lisp/elpa/slime-2.24/slime-tests hides /usr/share/emacs/site-lisp/elpa/slime-2.24/slime-tests
/usr/share/emacs/28.0.50/site-lisp/elpa/slime-2.24/slime-pkg hides /usr/share/emacs/site-lisp/elpa/slime-2.24/slime-pkg
/usr/share/emacs/28.0.50/site-lisp/elpa/slime-2.24/slime hides /usr/share/emacs/site-lisp/elpa/slime-2.24/slime
/usr/share/emacs/28.0.50/site-lisp/elpa/slime-2.24/slime-autoloads hides /usr/share/emacs/site-lisp/elpa/slime-2.24/slime-autoloads
/usr/share/emacs/28.0.50/site-lisp/elpa/tablist-1.0/tablist hides /usr/share/emacs/site-lisp/elpa/tablist-1.0/tablist
/usr/share/emacs/28.0.50/site-lisp/elpa/tablist-1.0/tablist-pkg hides /usr/share/emacs/site-lisp/elpa/tablist-1.0/tablist-pkg
/usr/share/emacs/28.0.50/site-lisp/elpa/tablist-1.0/tablist-filter hides /usr/share/emacs/site-lisp/elpa/tablist-1.0/tablist-filter
/usr/share/emacs/28.0.50/site-lisp/elpa/tablist-1.0/tablist-autoloads hides /usr/share/emacs/site-lisp/elpa/tablist-1.0/tablist-autoloads
/usr/share/emacs/28.0.50/site-lisp/elpa/treepy-0.1.1/treepy-pkg hides /usr/share/emacs/site-lisp/elpa/treepy-0.1.1/treepy-pkg
/usr/share/emacs/28.0.50/site-lisp/elpa/treepy-0.1.1/treepy hides /usr/share/emacs/site-lisp/elpa/treepy-0.1.1/treepy
/usr/share/emacs/28.0.50/site-lisp/elpa/treepy-0.1.1/treepy-autoloads hides /usr/share/emacs/site-lisp/elpa/treepy-0.1.1/treepy-autoloads
/usr/share/emacs/28.0.50/site-lisp/elpa/with-editor-2.6.0/with-editor-pkg hides /usr/share/emacs/site-lisp/elpa/with-editor-2.6.0/with-editor-pkg
/usr/share/emacs/28.0.50/site-lisp/elpa/with-editor-2.6.0/with-editor hides /usr/share/emacs/site-lisp/elpa/with-editor-2.6.0/with-editor
/usr/share/emacs/28.0.50/site-lisp/elpa/with-editor-2.6.0/with-editor-autoloads hides /usr/share/emacs/site-lisp/elpa/with-editor-2.6.0/with-editor-autoloads
/usr/share/emacs/28.0.50/site-lisp/elpa/writegood-mode-2.0/writegood-mode hides /usr/share/emacs/site-lisp/elpa/writegood-mode-2.0/writegood-mode
/usr/share/emacs/28.0.50/site-lisp/elpa/writegood-mode-2.0/writegood-mode-pkg hides /usr/share/emacs/site-lisp/elpa/writegood-mode-2.0/writegood-mode-pkg
/usr/share/emacs/28.0.50/site-lisp/elpa/writegood-mode-2.0/writegood-mode-autoloads hides /usr/share/emacs/site-lisp/elpa/writegood-mode-2.0/writegood-mode-autoloads
/usr/share/emacs/28.0.50/site-lisp/elpa/boxquote-2.1/boxquote-pkg hides /usr/share/emacs/site-lisp/elpa-src/boxquote-2.1/boxquote-pkg
/usr/share/emacs/28.0.50/site-lisp/elpa/boxquote-2.1/boxquote-autoloads hides /usr/share/emacs/site-lisp/elpa-src/boxquote-2.1/boxquote-autoloads
/usr/share/emacs/28.0.50/site-lisp/elpa/boxquote-2.1/boxquote hides /usr/share/emacs/site-lisp/elpa-src/boxquote-2.1/boxquote
/usr/share/emacs/28.0.50/site-lisp/elpa/browse-kill-ring-2.0.0/browse-kill-ring-autoloads hides /usr/share/emacs/site-lisp/elpa-src/browse-kill-ring-2.0.0/browse-kill-ring-autoloads
/usr/share/emacs/28.0.50/site-lisp/elpa/browse-kill-ring-2.0.0/browse-kill-ring-pkg hides /usr/share/emacs/site-lisp/elpa-src/browse-kill-ring-2.0.0/browse-kill-ring-pkg
/usr/share/emacs/28.0.50/site-lisp/elpa/browse-kill-ring-2.0.0/browse-kill-ring hides /usr/share/emacs/site-lisp/elpa-src/browse-kill-ring-2.0.0/browse-kill-ring
/usr/share/emacs/28.0.50/site-lisp/elpa/dash-2.17.0/dash-pkg hides /usr/share/emacs/site-lisp/elpa-src/dash-2.17.0/dash-pkg
/usr/share/emacs/28.0.50/site-lisp/elpa/dash-2.17.0/dash hides /usr/share/emacs/site-lisp/elpa-src/dash-2.17.0/dash
/usr/share/emacs/28.0.50/site-lisp/elpa/dash-2.17.0/dash-autoloads hides /usr/share/emacs/site-lisp/elpa-src/dash-2.17.0/dash-autoloads
/usr/share/emacs/site-lisp/elpa/geiser-0.8.1/geiser-popup hides /usr/share/emacs/site-lisp/elpa-src/geiser-0.8.1/geiser-popup
/usr/share/emacs/site-lisp/elpa/geiser-0.8.1/geiser-custom hides /usr/share/emacs/site-lisp/elpa-src/geiser-0.8.1/geiser-custom
/usr/share/emacs/site-lisp/elpa/geiser-0.8.1/geiser hides /usr/share/emacs/site-lisp/elpa-src/geiser-0.8.1/geiser
/usr/share/emacs/site-lisp/elpa/geiser-0.8.1/geiser-autodoc hides /usr/share/emacs/site-lisp/elpa-src/geiser-0.8.1/geiser-autodoc
/usr/share/emacs/site-lisp/elpa/geiser-0.8.1/geiser-menu hides /usr/share/emacs/site-lisp/elpa-src/geiser-0.8.1/geiser-menu
/usr/share/emacs/site-lisp/elpa/geiser-0.8.1/geiser-compile hides /usr/share/emacs/site-lisp/elpa-src/geiser-0.8.1/geiser-compile
/usr/share/emacs/site-lisp/elpa/geiser-0.8.1/geiser-load hides /usr/share/emacs/site-lisp/elpa-src/geiser-0.8.1/geiser-load
/usr/share/emacs/site-lisp/elpa/geiser-0.8.1/geiser-xref hides /usr/share/emacs/site-lisp/elpa-src/geiser-0.8.1/geiser-xref
/usr/share/emacs/site-lisp/elpa/geiser-0.8.1/geiser-autoloads hides /usr/share/emacs/site-lisp/elpa-src/geiser-0.8.1/geiser-autoloads
/usr/share/emacs/site-lisp/elpa/geiser-0.8.1/geiser-company hides /usr/share/emacs/site-lisp/elpa-src/geiser-0.8.1/geiser-company
/usr/share/emacs/site-lisp/elpa/geiser-0.8.1/geiser-image hides /usr/share/emacs/site-lisp/elpa-src/geiser-0.8.1/geiser-image
/usr/share/emacs/site-lisp/elpa/geiser-0.8.1/geiser-completion hides /usr/share/emacs/site-lisp/elpa-src/geiser-0.8.1/geiser-completion
/usr/share/emacs/site-lisp/elpa/geiser-0.8.1/geiser-reload hides /usr/share/emacs/site-lisp/elpa-src/geiser-0.8.1/geiser-reload
/usr/share/emacs/site-lisp/elpa/geiser-0.8.1/geiser-repl hides /usr/share/emacs/site-lisp/elpa-src/geiser-0.8.1/geiser-repl
/usr/share/emacs/site-lisp/elpa/geiser-0.8.1/geiser-base hides /usr/share/emacs/site-lisp/elpa-src/geiser-0.8.1/geiser-base
/usr/share/emacs/site-lisp/elpa/geiser-0.8.1/geiser-version hides /usr/share/emacs/site-lisp/elpa-src/geiser-0.8.1/geiser-version
/usr/share/emacs/site-lisp/elpa/geiser-0.8.1/geiser-debug hides /usr/share/emacs/site-lisp/elpa-src/geiser-0.8.1/geiser-debug
/usr/share/emacs/site-lisp/elpa/geiser-0.8.1/geiser-connection hides /usr/share/emacs/site-lisp/elpa-src/geiser-0.8.1/geiser-connection
/usr/share/emacs/site-lisp/elpa/geiser-0.8.1/geiser-log hides /usr/share/emacs/site-lisp/elpa-src/geiser-0.8.1/geiser-log
/usr/share/emacs/site-lisp/elpa/geiser-0.8.1/geiser-guile hides /usr/share/emacs/site-lisp/elpa-src/geiser-0.8.1/geiser-guile
/usr/share/emacs/site-lisp/elpa/geiser-0.8.1/geiser-doc hides /usr/share/emacs/site-lisp/elpa-src/geiser-0.8.1/geiser-doc
/usr/share/emacs/site-lisp/elpa/geiser-0.8.1/geiser-pkg hides /usr/share/emacs/site-lisp/elpa-src/geiser-0.8.1/geiser-pkg
/usr/share/emacs/site-lisp/elpa/geiser-0.8.1/geiser-eval hides /usr/share/emacs/site-lisp/elpa-src/geiser-0.8.1/geiser-eval
/usr/share/emacs/site-lisp/elpa/geiser-0.8.1/geiser-racket hides /usr/share/emacs/site-lisp/elpa-src/geiser-0.8.1/geiser-racket
/usr/share/emacs/site-lisp/elpa/geiser-0.8.1/geiser-edit hides /usr/share/emacs/site-lisp/elpa-src/geiser-0.8.1/geiser-edit
/usr/share/emacs/site-lisp/elpa/geiser-0.8.1/geiser-mode hides /usr/share/emacs/site-lisp/elpa-src/geiser-0.8.1/geiser-mode
/usr/share/emacs/site-lisp/elpa/geiser-0.8.1/geiser-chicken hides /usr/share/emacs/site-lisp/elpa-src/geiser-0.8.1/geiser-chicken
/usr/share/emacs/site-lisp/elpa/geiser-0.8.1/geiser-impl hides /usr/share/emacs/site-lisp/elpa-src/geiser-0.8.1/geiser-impl
/usr/share/emacs/site-lisp/elpa/geiser-0.8.1/geiser-syntax hides /usr/share/emacs/site-lisp/elpa-src/geiser-0.8.1/geiser-syntax
/usr/share/emacs/28.0.50/site-lisp/elpa/ghub-3.3.0/ghub-autoloads hides /usr/share/emacs/site-lisp/elpa-src/ghub-3.3.0/ghub-autoloads
/usr/share/emacs/28.0.50/site-lisp/elpa/ghub-3.3.0/ghub hides /usr/share/emacs/site-lisp/elpa-src/ghub-3.3.0/ghub
/usr/share/emacs/28.0.50/site-lisp/elpa/ghub-3.3.0/gsexp hides /usr/share/emacs/site-lisp/elpa-src/ghub-3.3.0/gsexp
/usr/share/emacs/28.0.50/site-lisp/elpa/ghub-3.3.0/glab hides /usr/share/emacs/site-lisp/elpa-src/ghub-3.3.0/glab
/usr/share/emacs/28.0.50/site-lisp/elpa/ghub-3.3.0/buck hides /usr/share/emacs/site-lisp/elpa-src/ghub-3.3.0/buck
/usr/share/emacs/28.0.50/site-lisp/elpa/ghub-3.3.0/ghub-pkg hides /usr/share/emacs/site-lisp/elpa-src/ghub-3.3.0/ghub-pkg
/usr/share/emacs/28.0.50/site-lisp/elpa/ghub-3.3.0/gogs hides /usr/share/emacs/site-lisp/elpa-src/ghub-3.3.0/gogs
/usr/share/emacs/28.0.50/site-lisp/elpa/ghub-3.3.0/gtea hides /usr/share/emacs/site-lisp/elpa-src/ghub-3.3.0/gtea
/usr/share/emacs/28.0.50/site-lisp/elpa/ghub-3.3.0/ghub-graphql hides /usr/share/emacs/site-lisp/elpa-src/ghub-3.3.0/ghub-graphql
/usr/share/emacs/28.0.50/site-lisp/elpa/git-commit-2.90.1/git-commit-autoloads hides /usr/share/emacs/site-lisp/elpa-src/git-commit-2.90.1/git-commit-autoloads
/usr/share/emacs/28.0.50/site-lisp/elpa/git-commit-2.90.1/git-commit hides /usr/share/emacs/site-lisp/elpa-src/git-commit-2.90.1/git-commit
/usr/share/emacs/28.0.50/site-lisp/elpa/git-commit-2.90.1/git-commit-pkg hides /usr/share/emacs/site-lisp/elpa-src/git-commit-2.90.1/git-commit-pkg
/usr/share/emacs/28.0.50/site-lisp/elpa/let-alist-1.0.6/let-alist-autoloads hides /usr/share/emacs/site-lisp/elpa-src/let-alist-1.0.6/let-alist-autoloads
/usr/share/emacs/28.0.50/site-lisp/elpa/let-alist-1.0.6/let-alist hides /usr/share/emacs/site-lisp/elpa-src/let-alist-1.0.6/let-alist
/usr/share/emacs/28.0.50/site-lisp/elpa/let-alist-1.0.6/let-alist-pkg hides /usr/share/emacs/site-lisp/elpa-src/let-alist-1.0.6/let-alist-pkg
/usr/share/emacs/28.0.50/site-lisp/elpa/magit-2.90.1/magit-branch hides /usr/share/emacs/site-lisp/elpa-src/magit-2.90.1/magit-branch
/usr/share/emacs/28.0.50/site-lisp/elpa/magit-2.90.1/magit-apply hides /usr/share/emacs/site-lisp/elpa-src/magit-2.90.1/magit-apply
/usr/share/emacs/28.0.50/site-lisp/elpa/magit-2.90.1/magit-mode hides /usr/share/emacs/site-lisp/elpa-src/magit-2.90.1/magit-mode
/usr/share/emacs/28.0.50/site-lisp/elpa/magit-2.90.1/magit-patch hides /usr/share/emacs/site-lisp/elpa-src/magit-2.90.1/magit-patch
/usr/share/emacs/28.0.50/site-lisp/elpa/magit-2.90.1/magit-remote hides /usr/share/emacs/site-lisp/elpa-src/magit-2.90.1/magit-remote
/usr/share/emacs/28.0.50/site-lisp/elpa/magit-2.90.1/magit-obsolete hides /usr/share/emacs/site-lisp/elpa-src/magit-2.90.1/magit-obsolete
/usr/share/emacs/28.0.50/site-lisp/elpa/magit-2.90.1/magit-process hides /usr/share/emacs/site-lisp/elpa-src/magit-2.90.1/magit-process
/usr/share/emacs/28.0.50/site-lisp/elpa/magit-2.90.1/magit-margin hides /usr/share/emacs/site-lisp/elpa-src/magit-2.90.1/magit-margin
/usr/share/emacs/28.0.50/site-lisp/elpa/magit-2.90.1/magit-tag hides /usr/share/emacs/site-lisp/elpa-src/magit-2.90.1/magit-tag
/usr/share/emacs/28.0.50/site-lisp/elpa/magit-2.90.1/magit-commit hides /usr/share/emacs/site-lisp/elpa-src/magit-2.90.1/magit-commit
/usr/share/emacs/28.0.50/site-lisp/elpa/magit-2.90.1/magit-git hides /usr/share/emacs/site-lisp/elpa-src/magit-2.90.1/magit-git
/usr/share/emacs/28.0.50/site-lisp/elpa/magit-2.90.1/magit-fetch hides /usr/share/emacs/site-lisp/elpa-src/magit-2.90.1/magit-fetch
/usr/share/emacs/28.0.50/site-lisp/elpa/magit-2.90.1/magit-core hides /usr/share/emacs/site-lisp/elpa-src/magit-2.90.1/magit-core
/usr/share/emacs/28.0.50/site-lisp/elpa/magit-2.90.1/magit-wip hides /usr/share/emacs/site-lisp/elpa-src/magit-2.90.1/magit-wip
/usr/share/emacs/28.0.50/site-lisp/elpa/magit-2.90.1/magit-files hides /usr/share/emacs/site-lisp/elpa-src/magit-2.90.1/magit-files
/usr/share/emacs/28.0.50/site-lisp/elpa/magit-2.90.1/magit-utils hides /usr/share/emacs/site-lisp/elpa-src/magit-2.90.1/magit-utils
/usr/share/emacs/28.0.50/site-lisp/elpa/magit-2.90.1/magit-submodule hides /usr/share/emacs/site-lisp/elpa-src/magit-2.90.1/magit-submodule
/usr/share/emacs/28.0.50/site-lisp/elpa/magit-2.90.1/magit-imenu hides /usr/share/emacs/site-lisp/elpa-src/magit-2.90.1/magit-imenu
/usr/share/emacs/28.0.50/site-lisp/elpa/magit-2.90.1/magit hides /usr/share/emacs/site-lisp/elpa-src/magit-2.90.1/magit
/usr/share/emacs/28.0.50/site-lisp/elpa/magit-2.90.1/magit-log hides /usr/share/emacs/site-lisp/elpa-src/magit-2.90.1/magit-log
/usr/share/emacs/28.0.50/site-lisp/elpa/magit-2.90.1/magit-extras hides /usr/share/emacs/site-lisp/elpa-src/magit-2.90.1/magit-extras
/usr/share/emacs/28.0.50/site-lisp/elpa/magit-2.90.1/magit-autorevert hides /usr/share/emacs/site-lisp/elpa-src/magit-2.90.1/magit-autorevert
/usr/share/emacs/28.0.50/site-lisp/elpa/magit-2.90.1/magit-diff hides /usr/share/emacs/site-lisp/elpa-src/magit-2.90.1/magit-diff
/usr/share/emacs/28.0.50/site-lisp/elpa/magit-2.90.1/magit-refs hides /usr/share/emacs/site-lisp/elpa-src/magit-2.90.1/magit-refs
/usr/share/emacs/28.0.50/site-lisp/elpa/magit-2.90.1/magit-status hides /usr/share/emacs/site-lisp/elpa-src/magit-2.90.1/magit-status
/usr/share/emacs/28.0.50/site-lisp/elpa/magit-2.90.1/magit-collab hides /usr/share/emacs/site-lisp/elpa-src/magit-2.90.1/magit-collab
/usr/share/emacs/28.0.50/site-lisp/elpa/magit-2.90.1/magit-reset hides /usr/share/emacs/site-lisp/elpa-src/magit-2.90.1/magit-reset
/usr/share/emacs/28.0.50/site-lisp/elpa/magit-2.90.1/magit-pkg hides /usr/share/emacs/site-lisp/elpa-src/magit-2.90.1/magit-pkg
/usr/share/emacs/28.0.50/site-lisp/elpa/magit-2.90.1/magit-gitignore hides /usr/share/emacs/site-lisp/elpa-src/magit-2.90.1/magit-gitignore
/usr/share/emacs/28.0.50/site-lisp/elpa/magit-2.90.1/magit-pull hides /usr/share/emacs/site-lisp/elpa-src/magit-2.90.1/magit-pull
/usr/share/emacs/28.0.50/site-lisp/elpa/magit-2.90.1/magit-sequence hides /usr/share/emacs/site-lisp/elpa-src/magit-2.90.1/magit-sequence
/usr/share/emacs/28.0.50/site-lisp/elpa/magit-2.90.1/git-rebase hides /usr/share/emacs/site-lisp/elpa-src/magit-2.90.1/git-rebase
/usr/share/emacs/28.0.50/site-lisp/elpa/magit-2.90.1/magit-section hides /usr/share/emacs/site-lisp/elpa-src/magit-2.90.1/magit-section
/usr/share/emacs/28.0.50/site-lisp/elpa/magit-2.90.1/magit-push hides /usr/share/emacs/site-lisp/elpa-src/magit-2.90.1/magit-push
/usr/share/emacs/28.0.50/site-lisp/elpa/magit-2.90.1/magit-bisect hides /usr/share/emacs/site-lisp/elpa-src/magit-2.90.1/magit-bisect
/usr/share/emacs/28.0.50/site-lisp/elpa/magit-2.90.1/magit-blame hides /usr/share/emacs/site-lisp/elpa-src/magit-2.90.1/magit-blame
/usr/share/emacs/28.0.50/site-lisp/elpa/magit-2.90.1/magit-clone hides /usr/share/emacs/site-lisp/elpa-src/magit-2.90.1/magit-clone
/usr/share/emacs/28.0.50/site-lisp/elpa/magit-2.90.1/magit-stash hides /usr/share/emacs/site-lisp/elpa-src/magit-2.90.1/magit-stash
/usr/share/emacs/28.0.50/site-lisp/elpa/magit-2.90.1/magit-autoloads hides /usr/share/emacs/site-lisp/elpa-src/magit-2.90.1/magit-autoloads
/usr/share/emacs/28.0.50/site-lisp/elpa/magit-2.90.1/magit-worktree hides /usr/share/emacs/site-lisp/elpa-src/magit-2.90.1/magit-worktree
/usr/share/emacs/28.0.50/site-lisp/elpa/magit-2.90.1/magit-subtree hides /usr/share/emacs/site-lisp/elpa-src/magit-2.90.1/magit-subtree
/usr/share/emacs/28.0.50/site-lisp/elpa/magit-2.90.1/magit-notes hides /usr/share/emacs/site-lisp/elpa-src/magit-2.90.1/magit-notes
/usr/share/emacs/28.0.50/site-lisp/elpa/magit-2.90.1/magit-merge hides /usr/share/emacs/site-lisp/elpa-src/magit-2.90.1/magit-merge
/usr/share/emacs/28.0.50/site-lisp/elpa/magit-2.90.1/magit-ediff hides /usr/share/emacs/site-lisp/elpa-src/magit-2.90.1/magit-ediff
/usr/share/emacs/28.0.50/site-lisp/elpa/magit-2.90.1/magit-bookmark hides /usr/share/emacs/site-lisp/elpa-src/magit-2.90.1/magit-bookmark
/usr/share/emacs/28.0.50/site-lisp/elpa/magit-2.90.1/magit-repos hides /usr/share/emacs/site-lisp/elpa-src/magit-2.90.1/magit-repos
/usr/share/emacs/28.0.50/site-lisp/elpa/magit-popup-2.13.2/magit-popup-autoloads hides /usr/share/emacs/site-lisp/elpa-src/magit-popup-2.13.2/magit-popup-autoloads
/usr/share/emacs/28.0.50/site-lisp/elpa/magit-popup-2.13.2/magit-popup hides /usr/share/emacs/site-lisp/elpa-src/magit-popup-2.13.2/magit-popup
/usr/share/emacs/28.0.50/site-lisp/elpa/magit-popup-2.13.2/magit-popup-pkg hides /usr/share/emacs/site-lisp/elpa-src/magit-popup-2.13.2/magit-popup-pkg
/usr/share/emacs/28.0.50/site-lisp/elpa/markdown-mode-2.3snapshot210/markdown-mode hides /usr/share/emacs/site-lisp/elpa-src/markdown-mode-2.3snapshot210/markdown-mode
/usr/share/emacs/28.0.50/site-lisp/elpa/markdown-mode-2.3snapshot210/markdown-mode-pkg hides /usr/share/emacs/site-lisp/elpa-src/markdown-mode-2.3snapshot210/markdown-mode-pkg
/usr/share/emacs/28.0.50/site-lisp/elpa/markdown-mode-2.3snapshot210/markdown-mode-autoloads hides /usr/share/emacs/site-lisp/elpa-src/markdown-mode-2.3snapshot210/markdown-mode-autoloads
/usr/share/emacs/28.0.50/site-lisp/elpa/pdf-tools-0.90/pdf-tools hides /usr/share/emacs/site-lisp/elpa-src/pdf-tools-0.90/pdf-tools
/usr/share/emacs/28.0.50/site-lisp/elpa/pdf-tools-0.90/pdf-view hides /usr/share/emacs/site-lisp/elpa-src/pdf-tools-0.90/pdf-view
/usr/share/emacs/28.0.50/site-lisp/elpa/pdf-tools-0.90/pdf-info hides /usr/share/emacs/site-lisp/elpa-src/pdf-tools-0.90/pdf-info
/usr/share/emacs/28.0.50/site-lisp/elpa/pdf-tools-0.90/pdf-occur hides /usr/share/emacs/site-lisp/elpa-src/pdf-tools-0.90/pdf-occur
/usr/share/emacs/28.0.50/site-lisp/elpa/pdf-tools-0.90/pdf-history hides /usr/share/emacs/site-lisp/elpa-src/pdf-tools-0.90/pdf-history
/usr/share/emacs/28.0.50/site-lisp/elpa/pdf-tools-0.90/pdf-links hides /usr/share/emacs/site-lisp/elpa-src/pdf-tools-0.90/pdf-links
/usr/share/emacs/28.0.50/site-lisp/elpa/pdf-tools-0.90/pdf-loader hides /usr/share/emacs/site-lisp/elpa-src/pdf-tools-0.90/pdf-loader
/usr/share/emacs/28.0.50/site-lisp/elpa/pdf-tools-0.90/pdf-isearch hides /usr/share/emacs/site-lisp/elpa-src/pdf-tools-0.90/pdf-isearch
/usr/share/emacs/28.0.50/site-lisp/elpa/pdf-tools-0.90/pdf-sync hides /usr/share/emacs/site-lisp/elpa-src/pdf-tools-0.90/pdf-sync
/usr/share/emacs/28.0.50/site-lisp/elpa/pdf-tools-0.90/pdf-misc hides /usr/share/emacs/site-lisp/elpa-src/pdf-tools-0.90/pdf-misc
/usr/share/emacs/28.0.50/site-lisp/elpa/pdf-tools-0.90/pdf-tools-autoloads hides /usr/share/emacs/site-lisp/elpa-src/pdf-tools-0.90/pdf-tools-autoloads
/usr/share/emacs/28.0.50/site-lisp/elpa/pdf-tools-0.90/pdf-tools-pkg hides /usr/share/emacs/site-lisp/elpa-src/pdf-tools-0.90/pdf-tools-pkg
/usr/share/emacs/28.0.50/site-lisp/elpa/pdf-tools-0.90/pdf-util hides /usr/share/emacs/site-lisp/elpa-src/pdf-tools-0.90/pdf-util
/usr/share/emacs/28.0.50/site-lisp/elpa/pdf-tools-0.90/pdf-annot hides /usr/share/emacs/site-lisp/elpa-src/pdf-tools-0.90/pdf-annot
/usr/share/emacs/28.0.50/site-lisp/elpa/pdf-tools-0.90/pdf-cache hides /usr/share/emacs/site-lisp/elpa-src/pdf-tools-0.90/pdf-cache
/usr/share/emacs/28.0.50/site-lisp/elpa/pdf-tools-0.90/pdf-virtual hides /usr/share/emacs/site-lisp/elpa-src/pdf-tools-0.90/pdf-virtual
/usr/share/emacs/28.0.50/site-lisp/elpa/pdf-tools-0.90/pdf-dev hides /usr/share/emacs/site-lisp/elpa-src/pdf-tools-0.90/pdf-dev
/usr/share/emacs/28.0.50/site-lisp/elpa/pdf-tools-0.90/pdf-outline hides /usr/share/emacs/site-lisp/elpa-src/pdf-tools-0.90/pdf-outline
/usr/share/emacs/28.0.50/site-lisp/elpa/slime-2.24/slime-pkg hides /usr/share/emacs/site-lisp/elpa-src/slime-2.24/slime-pkg
/usr/share/emacs/28.0.50/site-lisp/elpa/slime-2.24/slime-tests hides /usr/share/emacs/site-lisp/elpa-src/slime-2.24/slime-tests
/usr/share/emacs/28.0.50/site-lisp/elpa/slime-2.24/slime-autoloads hides /usr/share/emacs/site-lisp/elpa-src/slime-2.24/slime-autoloads
/usr/share/emacs/28.0.50/site-lisp/elpa/slime-2.24/slime hides /usr/share/emacs/site-lisp/elpa-src/slime-2.24/slime
/usr/share/emacs/28.0.50/site-lisp/elpa/tablist-1.0/tablist-pkg hides /usr/share/emacs/site-lisp/elpa-src/tablist-1.0/tablist-pkg
/usr/share/emacs/28.0.50/site-lisp/elpa/tablist-1.0/tablist-filter hides /usr/share/emacs/site-lisp/elpa-src/tablist-1.0/tablist-filter
/usr/share/emacs/28.0.50/site-lisp/elpa/tablist-1.0/tablist-autoloads hides /usr/share/emacs/site-lisp/elpa-src/tablist-1.0/tablist-autoloads
/usr/share/emacs/28.0.50/site-lisp/elpa/tablist-1.0/tablist hides /usr/share/emacs/site-lisp/elpa-src/tablist-1.0/tablist
/usr/share/emacs/28.0.50/site-lisp/elpa/treepy-0.1.1/treepy-pkg hides /usr/share/emacs/site-lisp/elpa-src/treepy-0.1.1/treepy-pkg
/usr/share/emacs/28.0.50/site-lisp/elpa/treepy-0.1.1/treepy hides /usr/share/emacs/site-lisp/elpa-src/treepy-0.1.1/treepy
/usr/share/emacs/28.0.50/site-lisp/elpa/treepy-0.1.1/treepy-autoloads hides /usr/share/emacs/site-lisp/elpa-src/treepy-0.1.1/treepy-autoloads
/usr/share/emacs/28.0.50/site-lisp/elpa/with-editor-2.6.0/with-editor-pkg hides /usr/share/emacs/site-lisp/elpa-src/with-editor-2.6.0/with-editor-pkg
/usr/share/emacs/28.0.50/site-lisp/elpa/with-editor-2.6.0/with-editor-autoloads hides /usr/share/emacs/site-lisp/elpa-src/with-editor-2.6.0/with-editor-autoloads
/usr/share/emacs/28.0.50/site-lisp/elpa/with-editor-2.6.0/with-editor hides /usr/share/emacs/site-lisp/elpa-src/with-editor-2.6.0/with-editor
/usr/share/emacs/28.0.50/site-lisp/elpa/writegood-mode-2.0/writegood-mode hides /usr/share/emacs/site-lisp/elpa-src/writegood-mode-2.0/writegood-mode
/usr/share/emacs/28.0.50/site-lisp/elpa/writegood-mode-2.0/writegood-mode-pkg hides /usr/share/emacs/site-lisp/elpa-src/writegood-mode-2.0/writegood-mode-pkg
/usr/share/emacs/28.0.50/site-lisp/elpa/writegood-mode-2.0/writegood-mode-autoloads hides /usr/share/emacs/site-lisp/elpa-src/writegood-mode-2.0/writegood-mode-autoloads
/usr/share/emacs/28.0.50/site-lisp/elpa/let-alist-1.0.6/let-alist hides /usr/share/emacs/28.0.50/lisp/emacs-lisp/let-alist

Features:
(shadow emacsbug eieio-opt speedbar ezimage dframe iso-transl thingatpt
help-fns radix-tree shr-color color calc-menu calc calc-loaddefs
calc-macs boxquote rect org-mobile view cal-china lunar solar cal-dst
cal-bahai cal-islam cal-hebrew holidays hol-loaddefs doc-view misearch
multi-isearch mule-util cal-move org-duration org-clock ox-odt rng-loc
rng-uri rng-parse rng-match rng-dt rng-util rng-pttrn nxml-parse nxml-ns
nxml-enc xmltok nxml-util ox-latex ox-icalendar ox-html table ox-ascii
ox-publish ox wcheck-mode org-agenda tabify gnus-uu yenc mailalias
smtpmail bbdb-message sendmail flow-fill mm-archive sort smiley
gnus-cite gnus-bcklg gnus-async gnus-ml disp-table gnus-topic qp vc-git
diff-mode mail-extr bbdb-gnus-aux utf-7 gnutls nnfolder cl-extra
bbdb-gnus network-stream nsm gnus-delay gnus-draft gnus-agent gnus-srvr
gnus-score score-mode nnvirtual nntp gnus-cache gnus-msg nndraft nnmh
gnus-icalendar org-capture gnus-art mm-uu mml2015 mm-view mml-smime
smime dig icalendar nnir gnus-sum url url-proxy url-privacy url-expand
url-methods url-history mailcap shr url-cookie url-domsuf url-util svg
xml dom gnus-group gnus-undo bbdb-v3-pgp gnus-start gnus-cloud nnimap
nnmail mail-source utf7 netrc nnoo parse-time iso8601 gnus-spec gnus-int
gnus-range message rmc puny rfc822 mml mml-sec mm-decode mm-bodies
mm-encode mail-parse rfc2231 gmm-utils mailheader gnus-win gnus nnheader
gnus-util rmail rmail-loaddefs rfc2047 rfc2045 ietf-drums mail-utils
mm-util mail-prsvr cl-print timer-list help-mode novice org-element
avl-tree generator org-drill pcase org-learn org-id hi-lock server
preview-latex tex-site auto-loads recentf tree-widget diary-lib
diary-loaddefs cl sdcv-mode org-pdfview org-crypt org ob ob-tangle
ob-ref ob-lob ob-table ob-exp org-macro org-footnote org-src ob-comint
org-pcomplete pcomplete org-list org-faces org-entities time-date
noutline outline easy-mmode org-version ob-emacs-lisp ob-core ob-eval
org-table ol org-keys org-compat org-macs org-loaddefs cal-menu calendar
cal-loaddefs bbdb-mua bbdb-com crm mailabbrev bbdb bbdb-site timezone
bbdb-loaddefs edmacro kmacro time windmove epa-file epa derived epg
epg-config pdf-occur ibuf-ext ibuffer ibuffer-loaddefs tablist
tablist-filter semantic/wisent/comp semantic/wisent
semantic/wisent/wisent semantic/util-modes semantic/util semantic
semantic/tag semantic/lex semantic/fw mode-local find-func cedet dired
dired-loaddefs pdf-isearch let-alist pdf-misc imenu pdf-tools compile
comint ansi-color ring cus-edit cus-start cus-load wid-edit pdf-view
bookmark text-property-search pp jka-compr pdf-cache pdf-info tq
pdf-util advice format-spec image-mode exif info slime-autoloads package
easymenu browse-url url-handlers url-parse auth-source cl-seq eieio
eieio-core cl-macs eieio-loaddefs password-cache json subr-x map
url-vars seq byte-opt gv bytecomp byte-compile cconv cl-loaddefs cl-lib
tooltip eldoc electric uniquify ediff-hook vc-hooks lisp-float-type
mwheel term/x-win x-win term/common-win x-dnd tool-bar dnd fontset image
regexp-opt fringe tabulated-list replace newcomment text-mode elisp-mode
lisp-mode prog-mode register page tab-bar menu-bar rfn-eshadow isearch
timer select scroll-bar mouse jit-lock font-lock syntax facemenu
font-core term/tty-colors frame minibuffer cl-generic cham georgian
utf-8-lang misc-lang vietnamese tibetan thai tai-viet lao korean
japanese eucjp-ms cp51932 hebrew greek romanian slovak czech european
ethiopic indian cyrillic chinese composite charscript charprop
case-table epa-hook jka-cmpr-hook help simple abbrev obarray
cl-preloaded nadvice loaddefs button faces cus-face macroexp files
text-properties overlay sha1 md5 base64 format env code-pages mule
custom widget hashtable-print-readable backquote threads dbusbind
inotify lcms2 dynamic-setting system-font-setting font-render-setting
cairo move-toolbar gtk x-toolkit x multi-tty make-network-process emacs)

Memory information:
((conses 16 888841 100017)
 (symbols 48 36293 5)
 (strings 32 246773 24632)
 (string-bytes 1 8715033)
 (vectors 16 88769)
 (vector-slots 8 1978764 143130)
 (floats 8 997 480)
 (intervals 56 46572 420)
 (buffers 1000 94))





Information forwarded to bug-gnu-emacs <at> gnu.org:
bug#39824; Package emacs. (Wed, 25 Mar 2020 14:38:02 GMT) Full text and rfc822 format available.

Message #32 received at 39824 <at> debbugs.gnu.org (full text, mbox):

From: Eli Zaretskii <eliz <at> gnu.org>
To: Gijs Hillenius <gijs <at> hillenius.net>
Cc: 39824 <at> debbugs.gnu.org
Subject: Re: bug#39824: 26.2;
 timers sometimes stop working when coming back from sleep
Date: Wed, 25 Mar 2020 16:37:10 +0200
> From: Gijs Hillenius <gijs <at> hillenius.net>
> Date: Tue, 24 Mar 2020 09:27:28 +0100
> 
> Since Sunday, I've been running emacs¹ from GDB, but there is nothing
> much to report. At startup, init.el sets  (run-at-time "10:35" 21600
> 'org-mobile-push). It ran on Sunday, but not on Monday (yesterday) -
> despite a good night's sleep.
> 
> Today (Tuesday), M-x timer-list shows:
> 
>       -59170.00   360.00 org-mobile-push
> 
> and from describe-variable timer-list :
> 
> ([t 24184 55076 0 21600 org-mobile-push nil nil 0]

The time of this timer is 23-Mar-2020 16:35 +0100.  This probably
means the timer did run at 10:35 that day, but you seem to say it
didn't.  Are you sure?  If it didn't run, we might have 2 mysteries
here instead of just one (the second one being how come the timer
didn't run, but the time it should run was updated).

Anyway, the real problem is that t in the first element of the vector.
It means the timer will never be run, because t means "running now",
something that should only be seen by code that is directly or
indirectly called by the timer function itself.  So it should never be
seen when you examine timer-list via M-: etc.

When Emacs finds a timer which is "ripe", i.e. its time has passed, it
updates its next time, then marks it with that t, then calls the timer
function, then replaces t with nil if the timer is to be repeated (as
it is in this case).  So the main question to be answered is: how come
that t remained in the timer?  I looked at timer-event-handler, the
function we call to run the timer, and didn't see there any way we
could fail to update the timer with nil after its function returns,
but I'm probably missing something because it factually did happen.

Can you instrument timer-event-handler, such that it will record in
some buffer everything that happens with the timer that calls
org-mobile-push?  In particular, is it possible that you put the
machine to sleep while the timer is running?  If so, what happens then
(I don't know how your system deals with sleep, and what do running
programs do during the sleep time)?  With such instrumentation in
place, when this problem happens next, we might get some idea
regarding what causes this strange situation.

Thanks.




Information forwarded to bug-gnu-emacs <at> gnu.org:
bug#39824; Package emacs. (Wed, 25 Mar 2020 14:56:01 GMT) Full text and rfc822 format available.

Message #35 received at 39824 <at> debbugs.gnu.org (full text, mbox):

From: Gijs Hillenius <gijs <at> hillenius.net>
To: Eli Zaretskii <eliz <at> gnu.org>
Cc: 39824 <at> debbugs.gnu.org
Subject: Re: bug#39824: 26.2; timers sometimes stop working when coming back
 from sleep
Date: Wed, 25 Mar 2020 15:55:47 +0100
On 25 March 2020 16:37 Eli Zaretskii, wrote:

>> From: Gijs Hillenius <gijs <at> hillenius.net>
>> Date: Tue, 24 Mar 2020 09:27:28 +0100
>> 
>> Since Sunday, I've been running emacs¹ from GDB, but there is nothing
>> much to report. At startup, init.el sets  (run-at-time "10:35" 21600
>> 'org-mobile-push). It ran on Sunday, but not on Monday (yesterday) -
>> despite a good night's sleep.
>> 
>> Today (Tuesday), M-x timer-list shows:
>> 
>>       -59170.00   360.00 org-mobile-push
>> 
>> and from describe-variable timer-list :
>> 
>> ([t 24184 55076 0 21600 org-mobile-push nil nil 0]
>
> The time of this timer is 23-Mar-2020 16:35 +0100.  This probably
> means the timer did run at 10:35 that day, but you seem to say it
> didn't.  Are you sure?  If it didn't run, we might have 2 mysteries
> here instead of just one (the second one being how come the timer
> didn't run, but the time it should run was updated).

It's safe to assume it ran on Monday. (Sorry)

[...]

> Can you instrument timer-event-handler, such that it will record in
> some buffer everything that happens with the timer that calls
> org-mobile-push?  In particular, is it possible that you put the
> machine to sleep while the timer is running?

Yes! This'll be fun!




Information forwarded to bug-gnu-emacs <at> gnu.org:
bug#39824; Package emacs. (Wed, 01 Apr 2020 07:10:01 GMT) Full text and rfc822 format available.

Message #38 received at 39824 <at> debbugs.gnu.org (full text, mbox):

From: Gijs Hillenius <gijs <at> hillenius.net>
To: Eli Zaretskii <eliz <at> gnu.org>
Cc: 39824 <at> debbugs.gnu.org
Subject: Re: bug#39824: 26.2; timers sometimes stop working when coming back
 from sleep
Date: Wed, 01 Apr 2020 09:09:35 +0200
Hello

I need a bit of help with instrumenting this correctly:

I've instrumented (run-at-time "10:35" 21600 'org-mobile-push)

using (evel-defun) C-M-x

This shows org-mobile-push runs without errors. In *Messages*:

(snip)
Edebug: edebug-anon11
Tracing...
Result: [nil 24189 51396 0 21600 org-mobile-push nil nil 0]
Creating agendas...
Preparing diary...done

[...] ten lines equal to this ^ one

Preparing diary...done
Agenda written to Org file /home/gijs/d/MobileOrg/agendas.org
Creating agendas...done
Saving all Org buffers... done
Copying files...
Writing index file...
Writing checksums...
Files for mobile viewer staged
[nil 24190 7460 0 21600 org-mobile-push nil nil 0]

M-x list-timers tells me:

      -71245.81   360.00 org-mobile-push

and eh, a little later, the variable value of list-timers shows:

([t 24188 52132 0 21600 org-mobile-push nil nil 0]


But then...  I guess (eval-defun) has run. I was expecting it to run
again in six hours?  I can wait all day, put the laptop to sleep, but
the timer won't repeat. The next day the list-timer will show a minus
sign for org-mobile-push, for example

-54728.53   360.00 org-mobile-push

and looking at /home/gijs/d/MobileOrg/agendas.org will show me the files
were updated only when I eval-defun'ed (run-at-time "10:35" 21600
'org-mobile-push) the day before. Not at 10:35, not "six hours" later,
not the next morning.

Did I evel-defun'ed org-mobile-push, instead of run-at-time?





Information forwarded to bug-gnu-emacs <at> gnu.org:
bug#39824; Package emacs. (Fri, 03 Apr 2020 12:37:01 GMT) Full text and rfc822 format available.

Message #41 received at 39824 <at> debbugs.gnu.org (full text, mbox):

From: Eli Zaretskii <eliz <at> gnu.org>
To: Gijs Hillenius <gijs <at> hillenius.net>
Cc: 39824 <at> debbugs.gnu.org
Subject: Re: bug#39824: 26.2; timers sometimes stop working when coming back
 from sleep
Date: Fri, 03 Apr 2020 15:35:48 +0300
> From: Gijs Hillenius <gijs <at> hillenius.net>
> Cc: 39824 <at> debbugs.gnu.org
> Date: Wed, 01 Apr 2020 09:09:35 +0200
> 
> I need a bit of help with instrumenting this correctly:

See below for some ideas.

> I've instrumented (run-at-time "10:35" 21600 'org-mobile-push)
> 
> using (evel-defun) C-M-x
> 
> This shows org-mobile-push runs without errors. In *Messages*:
> 
> (snip)
> Edebug: edebug-anon11
> Tracing...
> Result: [nil 24189 51396 0 21600 org-mobile-push nil nil 0]

This time corresponds to 2020-03-27 10:35:00.  Did you show the timer
before or after the call to timer-inc-time in timer-event-handler,
which calls your timer function?  If this is after timer-inc-time was
called, then the above is the time of the _next_ timer invocation.  I
think it would be useful to log in *Messages* also the value of
current-time when the timer runs.

> Creating agendas...
> Preparing diary...done
> 
> [...] ten lines equal to this ^ one
> 
> Preparing diary...done
> Agenda written to Org file /home/gijs/d/MobileOrg/agendas.org
> Creating agendas...done
> Saving all Org buffers... done
> Copying files...
> Writing index file...
> Writing checksums...
> Files for mobile viewer staged
> [nil 24190 7460 0 21600 org-mobile-push nil nil 0]

This time corresponds to 2020-03-27 16:35:00, the next time your timer
should fire.

> M-x list-timers tells me:
> 
>       -71245.81   360.00 org-mobile-push
> 
> and eh, a little later, the variable value of list-timers shows:
> 
> ([t 24188 52132 0 21600 org-mobile-push nil nil 0]

But this time corresponds to 2020-03-26 16:35:00, i.e. the _previous_
day.  How could this have happened?

> But then...  I guess (eval-defun) has run. I was expecting it to run
> again in six hours?  I can wait all day, put the laptop to sleep, but
> the timer won't repeat. The next day the list-timer will show a minus
> sign for org-mobile-push, for example
> 
> -54728.53   360.00 org-mobile-push
> 
> and looking at /home/gijs/d/MobileOrg/agendas.org will show me the files
> were updated only when I eval-defun'ed (run-at-time "10:35" 21600
> 'org-mobile-push) the day before. Not at 10:35, not "six hours" later,
> not the next morning.

So you are saying that the messages in *Messages* that report the
update of /home/gijs/d/MobileOrg/agendas.org on 2020-03-27 10:35:00
are a lie, and no update actually happened at that time?  That would
be surprising, since Emacs says it wrote the file.  Or am I missing
something?  Maybe the time value shown there is the time of the _next_
timer trigger?

> Did I evel-defun'ed org-mobile-push, instead of run-at-time?

I cannot know that.  But what I had in mind was to add 'message' calls
in timer-event-handler, where it calls the timer function, increments
the time to calculate the next time the timer should run, and sets the
first element of the timer vector to nil.  Then we might have a better
idea what happens there when this strange problem occurs.  In
particular, I now wonder how come timer-inc-time returned the time for
the _previous_ day (assuming it was that function which did it).

Thanks.




Information forwarded to bug-gnu-emacs <at> gnu.org:
bug#39824; Package emacs. (Wed, 08 Apr 2020 14:55:01 GMT) Full text and rfc822 format available.

Message #44 received at 39824 <at> debbugs.gnu.org (full text, mbox):

From: Gijs Hillenius <gijs <at> hillenius.net>
To: Eli Zaretskii <eliz <at> gnu.org>
Cc: 39824 <at> debbugs.gnu.org
Subject: I can't reproduce this any longer (was: bug#39824: 26.2; timers
 sometimes stop working when coming back from sleep)
Date: Wed, 08 Apr 2020 16:54:32 +0200
Hello Eli et all,

I'm not the original reporter of this bug

but thought I had something similar..

I have dilligently been testing my issue with run-at-time, but since
this Monday the timer has been working flawlessly; every six hours at
10:35, and at 16:35, and immediately after waking from sleep (usually
some twenty minutes after 07). I don't encounter negative times in M-x
list-timers anymore..

So, I guess it was just me, or perhaps Emacs master has fixed something
- I have the latest snapshot since Sunday.

I have lots of notes/logs if that is useful, but for now I'm no longer
investigating this bug.




Information forwarded to bug-gnu-emacs <at> gnu.org:
bug#39824; Package emacs. (Wed, 08 Apr 2020 15:13:01 GMT) Full text and rfc822 format available.

Message #47 received at 39824 <at> debbugs.gnu.org (full text, mbox):

From: Eli Zaretskii <eliz <at> gnu.org>
To: Gijs Hillenius <gijs <at> hillenius.net>
Cc: 39824 <at> debbugs.gnu.org
Subject: Re: I can't reproduce this any longer (was: bug#39824: 26.2; timers
 sometimes stop working when coming back from sleep)
Date: Wed, 08 Apr 2020 18:11:53 +0300
> From: Gijs Hillenius <gijs <at> hillenius.net>
> Cc: 39824 <at> debbugs.gnu.org
> Date: Wed, 08 Apr 2020 16:54:32 +0200
> 
> I have dilligently been testing my issue with run-at-time, but since
> this Monday the timer has been working flawlessly; every six hours at
> 10:35, and at 16:35, and immediately after waking from sleep (usually
> some twenty minutes after 07). I don't encounter negative times in M-x
> list-timers anymore..
> 
> So, I guess it was just me, or perhaps Emacs master has fixed something
> - I have the latest snapshot since Sunday.
> 
> I have lots of notes/logs if that is useful, but for now I'm no longer
> investigating this bug.

OK, thanks for your efforts.




Information forwarded to bug-gnu-emacs <at> gnu.org:
bug#39824; Package emacs. (Sun, 19 Apr 2020 15:07:03 GMT) Full text and rfc822 format available.

Message #50 received at submit <at> debbugs.gnu.org (full text, mbox):

From: ndame <ndame <at> protonmail.com>
To: "bug-gnu-emacs <at> gnu.org" <bug-gnu-emacs <at> gnu.org>
Subject: bug#39824: 26.2;
 timers sometimes stop working when coming back from sleep
Date: Sun, 19 Apr 2020 13:28:15 +0000
[Message part 1 (text/plain, inline)]
> Anyway, the real problem is that t in the first element of the vector.
> It means the timer will never be run, because t means "running now",
> something that should only be seen by code that is directly or
> indirectly called by the timer function itself.  So it should never be
> seen when you examine timer-list via M-: etc.
>
> When Emacs finds a timer which is "ripe", i.e. its time has passed, it
> updates its next time, then marks it with that t, then calls the timer
> function, then replaces t with nil if the timer is to be repeated (as
> it is in this case).  So the main question to be answered is: how come
> that t remained in the timer?  I looked at timer-event-handler, the
> function we call to run the timer, and didn't see there any way we
> could fail to update the timer with nil after its function returns,
> but I'm probably missing something because it factually did happen.

The negative timer problem happened to me today.

I checked and I also had t as the first element of the timer structure.

I'm quite positive it happened when there was an error when running
the timer function.

Is it possible there is no unwind-protect-like code around running
the timer and that's why the first element is not set t when the
timer function has an error.
[Message part 2 (text/html, inline)]

Information forwarded to bug-gnu-emacs <at> gnu.org:
bug#39824; Package emacs. (Sun, 19 Apr 2020 15:07:03 GMT) Full text and rfc822 format available.

Message #53 received at submit <at> debbugs.gnu.org (full text, mbox):

From: ndame <ndame <at> protonmail.com>
To: "bug-gnu-emacs <at> gnu.org" <bug-gnu-emacs <at> gnu.org>
Subject: bug#39824: 26.2;
 timers sometimes stop working when coming back from sleep
Date: Sun, 19 Apr 2020 13:59:23 +0000
[Message part 1 (text/plain, inline)]
I proably found the problem.

debug-on-error has to be on

If you run a timer with an error:

(run-with-timer 0 1 (lambda ()
                      (print garbage)))

then the backtrace window comes up. If you press q there then you'll have a negative timer
in the list.

This probably is because function timer-event-handler uses condition-case-unless-debug,
so if you  press q then you go back to top level and the rest of the code doesn't run.

I understand condition-case-unless-debug is used, so one can debug a timer, but on the
other hand if debug is on for some other reason and the user press q  automatically
to get rid of the backtrace window then the timer list will have some garbage in it.
[Message part 2 (text/html, inline)]

Information forwarded to bug-gnu-emacs <at> gnu.org:
bug#39824; Package emacs. (Sun, 19 Apr 2020 15:30:02 GMT) Full text and rfc822 format available.

Message #56 received at 39824 <at> debbugs.gnu.org (full text, mbox):

From: Eli Zaretskii <eliz <at> gnu.org>
To: ndame <ndame <at> protonmail.com>, ndame <ndame <at> protonmail.com>
Cc: 39824 <at> debbugs.gnu.org
Subject: Re: bug#39824: 26.2;
 timers sometimes stop working when coming back from sleep
Date: Sun, 19 Apr 2020 18:28:59 +0300
> Date: Sun, 19 Apr 2020 13:59:23 +0000
> From: ndame via "Bug reports for GNU Emacs,
>  the Swiss army knife of text editors" <bug-gnu-emacs <at> gnu.org>
> 
> If you run a timer with an error:
> 
> (run-with-timer 0 1 (lambda ()
>                       (print garbage)))
> 
> then the backtrace window comes up. If you press q there then you'll have a negative timer 
> in the list.
> 
> This probably is because function timer-event-handler uses condition-case-unless-debug, 
> so if you  press q then you go back to top level and the rest of the code doesn't run.
> 
> I understand condition-case-unless-debug is used, so one can debug a timer, but on the 
> other hand if debug is on for some other reason and the user press q  automatically
> to get rid of the backtrace window then the timer list will have some garbage in it.

If a timer signals an error, it is TRT to disable it, right?
Otherwise, it will keep signaling errors over and over and over again,
right?




Information forwarded to bug-gnu-emacs <at> gnu.org:
bug#39824; Package emacs. (Sun, 19 Apr 2020 16:19:02 GMT) Full text and rfc822 format available.

Message #59 received at 39824 <at> debbugs.gnu.org (full text, mbox):

From: ndame <ndame <at> protonmail.com>
To: Eli Zaretskii <eliz <at> gnu.org>
Cc: "39824 <at> debbugs.gnu.org" <39824 <at> debbugs.gnu.org>
Subject: Re: bug#39824: 26.2;
 timers sometimes stop working when coming back from sleep
Date: Sun, 19 Apr 2020 15:54:51 +0000
> If a timer signals an error, it is TRT to disable it, right?
> Otherwise, it will keep signaling errors over and over and over again,
> right?

Naturally, but in this case the timer stays in the timer list with
an ever decreasing negative value. It won't fire again, but it will
stay in the timer list.

Anyway, I just wanted to explain which you asked earlier: "So the
main question to be answered is: how come that t remained in the timer?
I looked at timer-event-handler, the
function we call to run the timer, and didn't see there any way we
could fail to update the timer with nil after its function returns"






Information forwarded to bug-gnu-emacs <at> gnu.org:
bug#39824; Package emacs. (Sun, 19 Apr 2020 16:48:02 GMT) Full text and rfc822 format available.

Message #62 received at 39824 <at> debbugs.gnu.org (full text, mbox):

From: Eli Zaretskii <eliz <at> gnu.org>
To: ndame <ndame <at> protonmail.com>
Cc: 39824 <at> debbugs.gnu.org
Subject: Re: bug#39824: 26.2;
 timers sometimes stop working when coming back from sleep
Date: Sun, 19 Apr 2020 19:46:58 +0300
> Date: Sun, 19 Apr 2020 15:54:51 +0000
> From: ndame <ndame <at> protonmail.com>
> Cc: "39824 <at> debbugs.gnu.org" <39824 <at> debbugs.gnu.org>
> 
> Anyway, I just wanted to explain which you asked earlier: "So the
> main question to be answered is: how come that t remained in the timer?

Thanks, but it still remains to be shown that the offending timer (the
real-life one) did indeed signal an error, or at least could have.




Information forwarded to bug-gnu-emacs <at> gnu.org:
bug#39824; Package emacs. (Sun, 19 Apr 2020 17:35:02 GMT) Full text and rfc822 format available.

Message #65 received at 39824 <at> debbugs.gnu.org (full text, mbox):

From: ndame <ndame <at> protonmail.com>
To: Eli Zaretskii <eliz <at> gnu.org>
Cc: "39824 <at> debbugs.gnu.org" <39824 <at> debbugs.gnu.org>
Subject: Re: bug#39824: 26.2;
 timers sometimes stop working when coming back from sleep
Date: Sun, 19 Apr 2020 17:34:46 +0000
>
> Thanks, but it still remains to be shown that the offending timer (the
> real-life one) did indeed signal an error, or at least could have.

I can't speak for the other reporter in the thread, only for my original
report about sleep.

I have a timer which runs every 15 minutes and it accesses the network.
It often occurred that the computer woke up from sleep, but the network was
not yet available (e.g. the cable was not plugged in). The timer run
instantly, because the 15 min cycle was long overdue and it had a network
error.

I usually have debug on to see what happened if there is an error and
dismissed this error backtrace with q, so it's very much possible I got
the negative timer from there.

Since then I pay attention to have the network available when I wake up
the computer, so it's likely that's why I don't have the negative timer
anymore.





Information forwarded to bug-gnu-emacs <at> gnu.org:
bug#39824; Package emacs. (Sun, 19 Apr 2020 18:55:02 GMT) Full text and rfc822 format available.

Message #68 received at 39824 <at> debbugs.gnu.org (full text, mbox):

From: Eli Zaretskii <eliz <at> gnu.org>
To: ndame <ndame <at> protonmail.com>
Cc: 39824 <at> debbugs.gnu.org
Subject: Re: bug#39824: 26.2;
 timers sometimes stop working when coming back from sleep
Date: Sun, 19 Apr 2020 21:53:54 +0300
> Date: Sun, 19 Apr 2020 17:34:46 +0000
> From: ndame <ndame <at> protonmail.com>
> Cc: "39824 <at> debbugs.gnu.org" <39824 <at> debbugs.gnu.org>
> 
> I have a timer which runs every 15 minutes and it accesses the network.
> It often occurred that the computer woke up from sleep, but the network was
> not yet available (e.g. the cable was not plugged in). The timer run
> instantly, because the 15 min cycle was long overdue and it had a network
> error.
> 
> I usually have debug on to see what happened if there is an error and
> dismissed this error backtrace with q, so it's very much possible I got
> the negative timer from there.
> 
> Since then I pay attention to have the network available when I wake up
> the computer, so it's likely that's why I don't have the negative timer
> anymore.

Which means using this combination is probably not a good idea in your
case (unless you _want_ such timers to be disabled when these errors
happen).

IOW, the problem as you describe it happens entirely under your
control: you can cause it at will and you can make it go away at will.




Information forwarded to bug-gnu-emacs <at> gnu.org:
bug#39824; Package emacs. (Sun, 23 Aug 2020 12:59:01 GMT) Full text and rfc822 format available.

Message #71 received at 39824 <at> debbugs.gnu.org (full text, mbox):

From: Eli Zaretskii <eliz <at> gnu.org>
To: Stefan Kangas <stefan <at> marxist.se>
Cc: 39824 <at> debbugs.gnu.org
Subject: Re: bug#39824: 26.2; timers sometimes stop working when coming back
 from sleep
Date: Sun, 23 Aug 2020 15:58:27 +0300
> From: Stefan Kangas <stefan <at> marxist.se>
> Date: Sun, 23 Aug 2020 08:45:10 -0400
> 
> > Which means using this combination is probably not a good idea in your
> > case (unless you _want_ such timers to be disabled when these errors
> > happen).
> >
> > IOW, the problem as you describe it happens entirely under your
> > control: you can cause it at will and you can make it go away at will.
> 
> I have skimmed this thread.  Is it correct to say that there is no bug
> here?  If not, could someone please summarize what is the outstanding
> issue here?

I think there's no Emacs bug here: the timer runs exactly as
expected.  If there's a need to defer the timer when network is not
available, it should be done in the user's timer function.




Information forwarded to bug-gnu-emacs <at> gnu.org:
bug#39824; Package emacs. (Sun, 23 Aug 2020 13:37:02 GMT) Full text and rfc822 format available.

Message #74 received at 39824 <at> debbugs.gnu.org (full text, mbox):

From: Stefan Kangas <stefan <at> marxist.se>
To: Eli Zaretskii <eliz <at> gnu.org>
Cc: 39824 <at> debbugs.gnu.org
Subject: Re: bug#39824: 26.2; timers sometimes stop working when coming back
 from sleep
Date: Sun, 23 Aug 2020 09:36:26 -0400
tags 39824 + notabug
close 39824
thanks

Eli Zaretskii <eliz <at> gnu.org> writes:

> I think there's no Emacs bug here: the timer runs exactly as
> expected.  If there's a need to defer the timer when network is not
> available, it should be done in the user's timer function.

Thanks, I'm therefore closing this bug report.

Best regards,
Stefan Kangas




Added tag(s) notabug. Request was from Stefan Kangas <stefan <at> marxist.se> to control <at> debbugs.gnu.org. (Sun, 23 Aug 2020 13:37:02 GMT) Full text and rfc822 format available.

bug closed, send any further explanations to 39824 <at> debbugs.gnu.org and ndame <emacsuser <at> freemail.hu> Request was from Stefan Kangas <stefan <at> marxist.se> to control <at> debbugs.gnu.org. (Sun, 23 Aug 2020 13:37:02 GMT) Full text and rfc822 format available.

bug archived. Request was from Debbugs Internal Request <help-debbugs <at> gnu.org> to internal_control <at> debbugs.gnu.org. (Mon, 21 Sep 2020 11:24:03 GMT) Full text and rfc822 format available.

This bug report was last modified 3 years and 216 days ago.

Previous Next


GNU bug tracking system
Copyright (C) 1999 Darren O. Benham, 1997,2003 nCipher Corporation Ltd, 1994-97 Ian Jackson.