Subject: bug#59068: 29.0.50; noverlay causing indirect append issues

From: Michael Kleehammer <[email-masked]>
Date: Sun, 06 Nov 2022 23:42:00 -0600

Michael Kleehammer <[email-masked]> writes:

I've extracted enough from edit-indirect to reproduce the problem and attached
it.  Eval the file and follow the instructions at the bottom.

With the noverlay builds of Emacs, each commit is inserted above the original
text.  With previous builds it is not.

Let me know if I can help or if the example is not clear enough.  I'm still
working on my elisp skills, so making it a unit-test style function would take
me quite a while.

> I compiled master at b7a76f288cc and two different indirect editing
> packages, edit-indirect and separedit, now have the same bug.  When I
> build with 69121c33e4a, which is a commit right before the noverlay
> feature was merged in, I cannot reproduce the bug.
>
> Unfortunately I don't know enough indirect buffers or overlays to
> reproduce the bug with -Q, so I'll have to describe how to reproduce the
> issue using edit-indirect.  If someone can suggest how to reproduce this
> with only native functions, I'll be happy to test it.
>
> I realize the bug is manifesting in non-core packages, but it certainly
> appears like noverlay could have a bug they uncover.  Since the recent
> email about noverlay said the only change should be speed, it is
> probably worth someone looking into that knows what it could be.
>
> Both edit-indirect and separedit offer indirect editing of a string or
> comment block in another buffer.  Usually you make changes and commit
> the buffer which replaces the original string or comment and deletes the
> indirect buffer.  This still works fine.
>
> However, both allow you to save which replaces the original while
> keeping the indirect buffer open for further editing.  Subsequent saves
> are supposed to keep replacing the original, but they now *append* to
> the original.
>
> For example:
>
> - Mark two lines of text in a buffer.
> - Execute the edit-indirect-region command which will create an indirect
>   buffer with only the two lines.
> - In indirect buffer add some text like "1" to one of the lines and save
>   the buffer using C-x C-s.
> - Verify it overwrote the two lines in the original buffer.
> - In the indirect, change the "1" to "1 2" and save again.
> - Now the original will show 4 lines: two lines with the "1" change and
>   two lines with the "1 2" change.
>
> Before noverlay was merged in, the second save would result in only the
> two lines with the "1 2" change.
>
> Interestingly, neither org-mode's indirect editing of a source block using
> org-edit-special (C-') nor the pop-to-org package exhibits the bug.
>
>
>
> In GNU Emacs 29.0.50 (build 1, x86_64-pc-linux-gnu, GTK+ Version
>  3.24.33, cairo version 1.16.0) of 2022-10-31 built on pop-os
> Repository revision: b7a76f288cc9d3a962cd5790203dc89303e81c97
> Repository branch: master
> Windowing system distributor 'The X.Org Foundation', version 11.0.12101003
> System Description: Pop!_OS 22.04 LTS
>
> Configured features:
> CAIRO DBUS FREETYPE GIF GLIB GMP GNUTLS GSETTINGS HARFBUZZ JPEG JSON
> LIBSELINUX LIBSYSTEMD LIBXML2 MODULES NOTIFY INOTIFY PDUMPER PNG SECCOMP
> SOUND SQLITE3 THREADS TIFF TOOLKIT_SCROLL_BARS X11 XDBE XIM XINPUT2 XPM
> GTK3 ZLIB
>
> Important settings:
>   value of $LC_COLLATE: C
>   value of $LC_MONETARY: en_US.UTF-8
>   value of $LC_NUMERIC: en_US.UTF-8
>   value of $LC_TIME: en_US.UTF-8
>   value of $LANG: en_US.UTF-8
>   value of $XMODIFIERS: @im=ibus
>   locale-coding-system: utf-8-unix
>
> Major mode: Magit
>
> Minor modes in effect:
>   magit-auto-revert-mode: t
>   evil-commentary-mode: t
>   global-undo-tree-mode: t
>   undo-tree-mode: t
>   which-function-mode: t
>   global-evil-surround-mode: t
>   evil-surround-mode: t
>   global-hl-prog-extra-mode: t
>   midnight-mode: t
>   global-corfu-mode: t
>   corfu-mode: t
>   evil-goggles-mode: t
>   global-git-commit-mode: t
>   marginalia-mode: t
>   vertico-mode: t
>   prescient-persist-mode: t
>   global-evil-matchit-mode: t
>   evil-matchit-mode: t
>   ws-butler-global-mode: t
>   ws-butler-mode: t
>   global-evil-collection-unimpaired-mode: t
>   evil-collection-unimpaired-mode: t
>   smart-jump-mode: t
>   pcre-mode: t
>   recentf-mode: t
>   global-so-long-mode: t
>   save-place-mode: t
>   electric-pair-mode: t
>   yas-global-mode: t
>   yas-minor-mode: t
>   shell-dirtrack-mode: t
>   evil-mode: t
>   evil-local-mode: t
>   windmove-mode: t
>   which-key-mode: t
>   override-global-mode: t
>   global-eldoc-mode: t
>   show-paren-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
>   buffer-read-only: t
>   line-number-mode: t
>   transient-mark-mode: t
>   auto-composition-mode: t
>   auto-encryption-mode: t
>   auto-compression-mode: t
>
> Load-path shadows:
> /home/mkleehammer/.emacs.d/elpa/transient-20221028.1430/transient
> hides /usr/local/share/emacs/29.0.50/lisp/transient
> /home/mkleehammer/.emacs.d/elpa/string-edit-20220604.2128/string-edit
> hides /usr/local/share/emacs/29.0.50/lisp/textmodes/string-edit
> /home/mkleehammer/.emacs.d/elpa/org-plus-contrib-20210531/org-id hides
> /usr/local/share/emacs/29.0.50/lisp/org/org-id
> /home/mkleehammer/.emacs.d/elpa/org-plus-contrib-20210531/org-faces
> hides /usr/local/share/emacs/29.0.50/lisp/org/org-faces
> /home/mkleehammer/.emacs.d/elpa/org-plus-contrib-20210531/org-timer
> hides /usr/local/share/emacs/29.0.50/lisp/org/org-timer
> /home/mkleehammer/.emacs.d/elpa/org-plus-contrib-20210531/ox-icalendar
> hides /usr/local/share/emacs/29.0.50/lisp/org/ox-icalendar
> /home/mkleehammer/.emacs.d/elpa/org-plus-contrib-20210531/ob-shell
> hides /usr/local/share/emacs/29.0.50/lisp/org/ob-shell
> /home/mkleehammer/.emacs.d/elpa/org-plus-contrib-20210531/ox-org hides
> /usr/local/share/emacs/29.0.50/lisp/org/ox-org
> /home/mkleehammer/.emacs.d/elpa/org-plus-contrib-20210531/ox-man hides
> /usr/local/share/emacs/29.0.50/lisp/org/ox-man
> /home/mkleehammer/.emacs.d/elpa/org-plus-contrib-20210531/org-inlinetask
> hides /usr/local/share/emacs/29.0.50/lisp/org/org-inlinetask
> /home/mkleehammer/.emacs.d/elpa/org-plus-contrib-20210531/ob-core
> hides /usr/local/share/emacs/29.0.50/lisp/org/ob-core
> /home/mkleehammer/.emacs.d/elpa/org-plus-contrib-20210531/ob-C hides
> /usr/local/share/emacs/29.0.50/lisp/org/ob-C
> /home/mkleehammer/.emacs.d/elpa/org-plus-contrib-20210531/org-pcomplete
> hides /usr/local/share/emacs/29.0.50/lisp/org/org-pcomplete
> /home/mkleehammer/.emacs.d/elpa/org-plus-contrib-20210531/ob-groovy
> hides /usr/local/share/emacs/29.0.50/lisp/org/ob-groovy
> /home/mkleehammer/.emacs.d/elpa/org-plus-contrib-20210531/ob-dot hides
> /usr/local/share/emacs/29.0.50/lisp/org/ob-dot
> /home/mkleehammer/.emacs.d/elpa/org-plus-contrib-20210531/org-clock
> hides /usr/local/share/emacs/29.0.50/lisp/org/org-clock
> /home/mkleehammer/.emacs.d/elpa/org-plus-contrib-20210531/org-footnote
> hides /usr/local/share/emacs/29.0.50/lisp/org/org-footnote
> /home/mkleehammer/.emacs.d/elpa/org-plus-contrib-20210531/ob-eshell
> hides /usr/local/share/emacs/29.0.50/lisp/org/ob-eshell
> /home/mkleehammer/.emacs.d/elpa/org-plus-contrib-20210531/ob-js hides
> /usr/local/share/emacs/29.0.50/lisp/org/ob-js
> /home/mkleehammer/.emacs.d/elpa/org-plus-contrib-20210531/ol-bbdb
> hides /usr/local/share/emacs/29.0.50/lisp/org/ol-bbdb
> /home/mkleehammer/.emacs.d/elpa/org-plus-contrib-20210531/org-tempo
> hides /usr/local/share/emacs/29.0.50/lisp/org/org-tempo
> /home/mkleehammer/.emacs.d/elpa/org-plus-contrib-20210531/ol-man hides
> /usr/local/share/emacs/29.0.50/lisp/org/ol-man
> /home/mkleehammer/.emacs.d/elpa/org-plus-contrib-20210531/ox-md hides
> /usr/local/share/emacs/29.0.50/lisp/org/ox-md
> /home/mkleehammer/.emacs.d/elpa/org-plus-contrib-20210531/ox hides
> /usr/local/share/emacs/29.0.50/lisp/org/ox
> /home/mkleehammer/.emacs.d/elpa/org-plus-contrib-20210531/org-keys
> hides /usr/local/share/emacs/29.0.50/lisp/org/org-keys
> /home/mkleehammer/.emacs.d/elpa/org-plus-contrib-20210531/org-colview
> hides /usr/local/share/emacs/29.0.50/lisp/org/org-colview
> /home/mkleehammer/.emacs.d/elpa/org-plus-contrib-20210531/ob-forth
> hides /usr/local/share/emacs/29.0.50/lisp/org/ob-forth
> /home/mkleehammer/.emacs.d/elpa/org-plus-contrib-20210531/ob-sass
> hides /usr/local/share/emacs/29.0.50/lisp/org/ob-sass
> /home/mkleehammer/.emacs.d/elpa/org-plus-contrib-20210531/ob-sql hides
> /usr/local/share/emacs/29.0.50/lisp/org/ob-sql
> /home/mkleehammer/.emacs.d/elpa/org-plus-contrib-20210531/org-protocol
> hides /usr/local/share/emacs/29.0.50/lisp/org/org-protocol
> /home/mkleehammer/.emacs.d/elpa/org-plus-contrib-20210531/ol hides
> /usr/local/share/emacs/29.0.50/lisp/org/ol
> /home/mkleehammer/.emacs.d/elpa/org-plus-contrib-20210531/ob-tangle
> hides /usr/local/share/emacs/29.0.50/lisp/org/ob-tangle
> /home/mkleehammer/.emacs.d/elpa/org-plus-contrib-20210531/ob-python
> hides /usr/local/share/emacs/29.0.50/lisp/org/ob-python
> /home/mkleehammer/.emacs.d/elpa/org-plus-contrib-20210531/ob-scheme
> hides /usr/local/share/emacs/29.0.50/lisp/org/ob-scheme
> /home/mkleehammer/.emacs.d/elpa/org-plus-contrib-20210531/org-ctags
> hides /usr/local/share/emacs/29.0.50/lisp/org/org-ctags
> /home/mkleehammer/.emacs.d/elpa/org-plus-contrib-20210531/ol-eww hides
> /usr/local/share/emacs/29.0.50/lisp/org/ol-eww
> /home/mkleehammer/.emacs.d/elpa/org-plus-contrib-20210531/org-table
> hides /usr/local/share/emacs/29.0.50/lisp/org/org-table
> /home/mkleehammer/.emacs.d/elpa/org-plus-contrib-20210531/ob-haskell
> hides /usr/local/share/emacs/29.0.50/lisp/org/ob-haskell
> /home/mkleehammer/.emacs.d/elpa/org-plus-contrib-20210531/ob-latex
> hides /usr/local/share/emacs/29.0.50/lisp/org/ob-latex
> /home/mkleehammer/.emacs.d/elpa/org-plus-contrib-20210531/org-src
> hides /usr/local/share/emacs/29.0.50/lisp/org/org-src
> /home/mkleehammer/.emacs.d/elpa/org-plus-contrib-20210531/ob-ocaml
> hides /usr/local/share/emacs/29.0.50/lisp/org/ob-ocaml
> /home/mkleehammer/.emacs.d/elpa/org-plus-contrib-20210531/org hides
> /usr/local/share/emacs/29.0.50/lisp/org/org
> /home/mkleehammer/.emacs.d/elpa/org-plus-contrib-20210531/ob-makefile
> hides /usr/local/share/emacs/29.0.50/lisp/org/ob-makefile
> /home/mkleehammer/.emacs.d/elpa/org-plus-contrib-20210531/ol-bibtex
> hides /usr/local/share/emacs/29.0.50/lisp/org/ol-bibtex
> /home/mkleehammer/.emacs.d/elpa/org-plus-contrib-20210531/org-goto
> hides /usr/local/share/emacs/29.0.50/lisp/org/org-goto
> /home/mkleehammer/.emacs.d/elpa/org-plus-contrib-20210531/ob-exp hides
> /usr/local/share/emacs/29.0.50/lisp/org/ob-exp
> /home/mkleehammer/.emacs.d/elpa/org-plus-contrib-20210531/ox-latex
> hides /usr/local/share/emacs/29.0.50/lisp/org/ox-latex
> /home/mkleehammer/.emacs.d/elpa/org-plus-contrib-20210531/ob-ref hides
> /usr/local/share/emacs/29.0.50/lisp/org/ob-ref
> /home/mkleehammer/.emacs.d/elpa/org-plus-contrib-20210531/ob-plantuml
> hides /usr/local/share/emacs/29.0.50/lisp/org/ob-plantuml
> /home/mkleehammer/.emacs.d/elpa/org-plus-contrib-20210531/ob-table
> hides /usr/local/share/emacs/29.0.50/lisp/org/ob-table
> /home/mkleehammer/.emacs.d/elpa/org-plus-contrib-20210531/ob-lob hides
> /usr/local/share/emacs/29.0.50/lisp/org/ob-lob
> /home/mkleehammer/.emacs.d/elpa/org-plus-contrib-20210531/org-version
> hides /usr/local/share/emacs/29.0.50/lisp/org/org-version
> /home/mkleehammer/.emacs.d/elpa/org-plus-contrib-20210531/ol-gnus
> hides /usr/local/share/emacs/29.0.50/lisp/org/ol-gnus
> /home/mkleehammer/.emacs.d/elpa/org-plus-contrib-20210531/ob-comint
> hides /usr/local/share/emacs/29.0.50/lisp/org/ob-comint
> /home/mkleehammer/.emacs.d/elpa/org-plus-contrib-20210531/ob-lilypond
> hides /usr/local/share/emacs/29.0.50/lisp/org/ob-lilypond
> /home/mkleehammer/.emacs.d/elpa/org-plus-contrib-20210531/ob-eval
> hides /usr/local/share/emacs/29.0.50/lisp/org/ob-eval
> /home/mkleehammer/.emacs.d/elpa/org-plus-contrib-20210531/ol-mhe hides
> /usr/local/share/emacs/29.0.50/lisp/org/ol-mhe
> /home/mkleehammer/.emacs.d/elpa/org-plus-contrib-20210531/org-capture
> hides /usr/local/share/emacs/29.0.50/lisp/org/org-capture
> /home/mkleehammer/.emacs.d/elpa/org-plus-contrib-20210531/org-lint
> hides /usr/local/share/emacs/29.0.50/lisp/org/org-lint
> /home/mkleehammer/.emacs.d/elpa/org-plus-contrib-20210531/ob-lua hides
> /usr/local/share/emacs/29.0.50/lisp/org/ob-lua
> /home/mkleehammer/.emacs.d/elpa/org-plus-contrib-20210531/org-datetree
> hides /usr/local/share/emacs/29.0.50/lisp/org/org-datetree
> /home/mkleehammer/.emacs.d/elpa/org-plus-contrib-20210531/org-install
> hides /usr/local/share/emacs/29.0.50/lisp/org/org-install
> /home/mkleehammer/.emacs.d/elpa/org-plus-contrib-20210531/org-agenda
> hides /usr/local/share/emacs/29.0.50/lisp/org/org-agenda
> /home/mkleehammer/.emacs.d/elpa/org-plus-contrib-20210531/ob-gnuplot
> hides /usr/local/share/emacs/29.0.50/lisp/org/ob-gnuplot
> /home/mkleehammer/.emacs.d/elpa/org-plus-contrib-20210531/ob-fortran
> hides /usr/local/share/emacs/29.0.50/lisp/org/ob-fortran
> /home/mkleehammer/.emacs.d/elpa/org-plus-contrib-20210531/ox-beamer
> hides /usr/local/share/emacs/29.0.50/lisp/org/ox-beamer
> /home/mkleehammer/.emacs.d/elpa/org-plus-contrib-20210531/ob-perl
> hides /usr/local/share/emacs/29.0.50/lisp/org/ob-perl
> /home/mkleehammer/.emacs.d/elpa/org-plus-contrib-20210531/ox-koma-letter
> hides /usr/local/share/emacs/29.0.50/lisp/org/ox-koma-letter
> /home/mkleehammer/.emacs.d/elpa/org-plus-contrib-20210531/ob hides
> /usr/local/share/emacs/29.0.50/lisp/org/ob
> /home/mkleehammer/.emacs.d/elpa/org-plus-contrib-20210531/ob-R hides
> /usr/local/share/emacs/29.0.50/lisp/org/ob-R
> /home/mkleehammer/.emacs.d/elpa/org-plus-contrib-20210531/ob-maxima
> hides /usr/local/share/emacs/29.0.50/lisp/org/ob-maxima
> /home/mkleehammer/.emacs.d/elpa/org-plus-contrib-20210531/org-plot
> hides /usr/local/share/emacs/29.0.50/lisp/org/org-plot
> /home/mkleehammer/.emacs.d/elpa/org-plus-contrib-20210531/ob-ditaa
> hides /usr/local/share/emacs/29.0.50/lisp/org/ob-ditaa
> /home/mkleehammer/.emacs.d/elpa/org-plus-contrib-20210531/ob-sed hides
> /usr/local/share/emacs/29.0.50/lisp/org/ob-sed
> /home/mkleehammer/.emacs.d/elpa/org-plus-contrib-20210531/org-compat
> hides /usr/local/share/emacs/29.0.50/lisp/org/org-compat
> /home/mkleehammer/.emacs.d/elpa/org-plus-contrib-20210531/org-mouse
> hides /usr/local/share/emacs/29.0.50/lisp/org/org-mouse
> /home/mkleehammer/.emacs.d/elpa/org-plus-contrib-20210531/ob-awk hides
> /usr/local/share/emacs/29.0.50/lisp/org/ob-awk
> /home/mkleehammer/.emacs.d/elpa/org-plus-contrib-20210531/ol-irc hides
> /usr/local/share/emacs/29.0.50/lisp/org/ol-irc
> /home/mkleehammer/.emacs.d/elpa/org-plus-contrib-20210531/org-feed
> hides /usr/local/share/emacs/29.0.50/lisp/org/org-feed
> /home/mkleehammer/.emacs.d/elpa/org-plus-contrib-20210531/org-entities
> hides /usr/local/share/emacs/29.0.50/lisp/org/org-entities
> /home/mkleehammer/.emacs.d/elpa/org-plus-contrib-20210531/org-attach
> hides /usr/local/share/emacs/29.0.50/lisp/org/org-attach
> /home/mkleehammer/.emacs.d/elpa/org-plus-contrib-20210531/ob-lisp
> hides /usr/local/share/emacs/29.0.50/lisp/org/ob-lisp
> /home/mkleehammer/.emacs.d/elpa/org-plus-contrib-20210531/org-macro
> hides /usr/local/share/emacs/29.0.50/lisp/org/org-macro
> /home/mkleehammer/.emacs.d/elpa/org-plus-contrib-20210531/ox-publish
> hides /usr/local/share/emacs/29.0.50/lisp/org/ox-publish
> /home/mkleehammer/.emacs.d/elpa/org-plus-contrib-20210531/ob-css hides
> /usr/local/share/emacs/29.0.50/lisp/org/ob-css
> /home/mkleehammer/.emacs.d/elpa/org-plus-contrib-20210531/ox-odt hides
> /usr/local/share/emacs/29.0.50/lisp/org/ox-odt
> /home/mkleehammer/.emacs.d/elpa/org-plus-contrib-20210531/org-habit
> hides /usr/local/share/emacs/29.0.50/lisp/org/org-habit
> /home/mkleehammer/.emacs.d/elpa/org-plus-contrib-20210531/org-archive
> hides /usr/local/share/emacs/29.0.50/lisp/org/org-archive
> /home/mkleehammer/.emacs.d/elpa/org-plus-contrib-20210531/org-refile
> hides /usr/local/share/emacs/29.0.50/lisp/org/org-refile
> /home/mkleehammer/.emacs.d/elpa/org-plus-contrib-20210531/ol-eshell
> hides /usr/local/share/emacs/29.0.50/lisp/org/ol-eshell
> /home/mkleehammer/.emacs.d/elpa/org-plus-contrib-20210531/ob-org hides
> /usr/local/share/emacs/29.0.50/lisp/org/ob-org
> /home/mkleehammer/.emacs.d/elpa/org-plus-contrib-20210531/ol-w3m hides
> /usr/local/share/emacs/29.0.50/lisp/org/ol-w3m
> /home/mkleehammer/.emacs.d/elpa/org-plus-contrib-20210531/ob-emacs-lisp
> hides /usr/local/share/emacs/29.0.50/lisp/org/ob-emacs-lisp
> /home/mkleehammer/.emacs.d/elpa/org-plus-contrib-20210531/ob-processing
> hides /usr/local/share/emacs/29.0.50/lisp/org/ob-processing
> /home/mkleehammer/.emacs.d/elpa/org-plus-contrib-20210531/org-loaddefs
> hides /usr/local/share/emacs/29.0.50/lisp/org/org-loaddefs
> /home/mkleehammer/.emacs.d/elpa/org-plus-contrib-20210531/ol-info
> hides /usr/local/share/emacs/29.0.50/lisp/org/ol-info
> /home/mkleehammer/.emacs.d/elpa/org-plus-contrib-20210531/org-macs
> hides /usr/local/share/emacs/29.0.50/lisp/org/org-macs
> /home/mkleehammer/.emacs.d/elpa/org-plus-contrib-20210531/ob-matlab
> hides /usr/local/share/emacs/29.0.50/lisp/org/ob-matlab
> /home/mkleehammer/.emacs.d/elpa/org-plus-contrib-20210531/ox-ascii
> hides /usr/local/share/emacs/29.0.50/lisp/org/ox-ascii
> /home/mkleehammer/.emacs.d/elpa/org-plus-contrib-20210531/org-attach-git
> hides /usr/local/share/emacs/29.0.50/lisp/org/org-attach-git
> /home/mkleehammer/.emacs.d/elpa/org-plus-contrib-20210531/ob-ruby
> hides /usr/local/share/emacs/29.0.50/lisp/org/ob-ruby
> /home/mkleehammer/.emacs.d/elpa/org-plus-contrib-20210531/ob-java
> hides /usr/local/share/emacs/29.0.50/lisp/org/ob-java
> /home/mkleehammer/.emacs.d/elpa/org-plus-contrib-20210531/ox-html
> hides /usr/local/share/emacs/29.0.50/lisp/org/ox-html
> /home/mkleehammer/.emacs.d/elpa/org-plus-contrib-20210531/ob-julia
> hides /usr/local/share/emacs/29.0.50/lisp/org/ob-julia
> /home/mkleehammer/.emacs.d/elpa/org-plus-contrib-20210531/ob-calc
> hides /usr/local/share/emacs/29.0.50/lisp/org/ob-calc
> /home/mkleehammer/.emacs.d/elpa/org-plus-contrib-20210531/ob-octave
> hides /usr/local/share/emacs/29.0.50/lisp/org/ob-octave
> /home/mkleehammer/.emacs.d/elpa/org-plus-contrib-20210531/org-num
> hides /usr/local/share/emacs/29.0.50/lisp/org/org-num
> /home/mkleehammer/.emacs.d/elpa/org-plus-contrib-20210531/ob-sqlite
> hides /usr/local/share/emacs/29.0.50/lisp/org/ob-sqlite
> /home/mkleehammer/.emacs.d/elpa/org-plus-contrib-20210531/ol-docview
> hides /usr/local/share/emacs/29.0.50/lisp/org/ol-docview
> /home/mkleehammer/.emacs.d/elpa/org-plus-contrib-20210531/org-mobile
> hides /usr/local/share/emacs/29.0.50/lisp/org/org-mobile
> /home/mkleehammer/.emacs.d/elpa/org-plus-contrib-20210531/ob-clojure
> hides /usr/local/share/emacs/29.0.50/lisp/org/ob-clojure
> /home/mkleehammer/.emacs.d/elpa/org-plus-contrib-20210531/org-element
> hides /usr/local/share/emacs/29.0.50/lisp/org/org-element
> /home/mkleehammer/.emacs.d/elpa/org-plus-contrib-20210531/ol-rmail
> hides /usr/local/share/emacs/29.0.50/lisp/org/ol-rmail
> /home/mkleehammer/.emacs.d/elpa/org-plus-contrib-20210531/ox-texinfo
> hides /usr/local/share/emacs/29.0.50/lisp/org/ox-texinfo
> /home/mkleehammer/.emacs.d/elpa/org-plus-contrib-20210531/org-list
> hides /usr/local/share/emacs/29.0.50/lisp/org/org-list
> /home/mkleehammer/.emacs.d/elpa/org-plus-contrib-20210531/ob-screen
> hides /usr/local/share/emacs/29.0.50/lisp/org/ob-screen
> /home/mkleehammer/.emacs.d/elpa/org-plus-contrib-20210531/org-indent
> hides /usr/local/share/emacs/29.0.50/lisp/org/org-indent
> /home/mkleehammer/.emacs.d/elpa/org-plus-contrib-20210531/org-crypt
> hides /usr/local/share/emacs/29.0.50/lisp/org/org-crypt
> /home/mkleehammer/.emacs.d/elpa/org-plus-contrib-20210531/org-duration
> hides /usr/local/share/emacs/29.0.50/lisp/org/org-duration
>
> Features:
> (shadow sort mail-extr emacsbug magit-extras goto-addr face-remap
> evil-collection-forge forge-list forge-commands forge-semi
> forge-bitbucket buck forge-gogs gogs forge-gitea gtea forge-gitlab glab
> forge-github ghub-graphql treepy gsexp ghub forge-notify forge-revnote
> forge-pullreq forge-issue forge-topic let-alist yaml bug-reference
> forge-post evil-collection-markdown-mode markdown-mode forge-repo forge
> forge-core forge-db closql emacsql-sqlite emacsql emacsql-compiler
> magit-bookmark evil-collection-magit magit-submodule magit-obsolete
> magit-blame magit-stash magit-reflog magit-bisect magit-push magit-pull
> magit-fetch magit-clone magit-remote magit-commit magit-sequence
> magit-notes magit-worktree magit-tag magit-merge magit-branch
> magit-reset magit-files magit-refs magit-status magit magit-repos
> magit-apply magit-wip magit-log magit-diff smerge-mode
> evil-collection-diff-mode diff-mode magit-core magit-autorevert
> autorevert magit-margin magit-transient magit-process magit-mode
> dired-aux separedit generic warnings calc-misc evil-collection-compile
> compile separedit-autoloads loaddefs-gen lisp-mnt mm-archive
> network-stream url-cache url-http url-auth url-gw nsm consult-imenu
> web-mode disp-table goto-chg org-eldoc org-superstar ol-eww
> evil-collection-eww eww xdg url-queue mm-url ol-rmail ol-mhe ol-irc
> ol-info ol-gnus nnselect gnus-art mm-uu mml2015 mm-view mml-smime smime
> gnutls dig gnus-sum shr pixel-fill kinsoku url-file svg dom gnus-group
> gnus-undo gnus-start gnus-dbus dbus xml gnus-cloud nnimap nnmail
> mail-source utf7 nnoo parse-time gnus-spec gnus-int gnus-range gnus-win
> evil-collection-gnus gnus nnheader range ol-docview
> evil-collection-doc-view doc-view filenotify ol-bibtex bibtex iso8601
> ol-bbdb ol-w3m ob-sql-mode sql evil-org org-appear org-element avl-tree
> org-num evil-collection-org org ob ob-tangle ob-ref ob-lob ob-table
> ob-exp org-macro org-footnote org-src ob-comint org-pcomplete org-list
> org-faces org-entities evil-collection-outline noutline outline
> org-version ob-emacs-lisp ob-core ob-eval org-table ol org-keys
> org-compat org-macs org-loaddefs evil-collection-calendar cal-menu
> calendar cal-loaddefs poporg cl jka-compr mule-util
> evil-collection-helpful helpful cc-langs trace info-look f f-shortdoc
> evil-collection-shortdoc shortdoc help-fns radix-tree
> evil-collection-elisp-refs elisp-refs executable evil-commentary
> evil-commentary-integration undo-tree diff queue
> evil-collection-flycheck flycheck which-func evil-collection-edebug
> edebug evil-collection-debug debug backtrace color-identifiers-mode
> rainbow-delimiters cursor-sensor evil-collection-js2-mode js2-mode etags
> fileloop dumb-jump evil-collection-popup popup evil-collection-xref xref
> js cc-mode cc-fonts cc-guess cc-menus cc-cmds cc-styles cc-align
> cc-engine cc-vars cc-defs evil-collection-imenu imenu
> evil-collection-consult consult-vertico consult compat-28
> evil-collection-bookmark bookmark evil-surround avy fortune
> hl-prog-extra midnight display-line-numbers evil-collection-corfu corfu
> hydra lv evil-goggles iedit iedit-lib fd-dired ibuf-ext
> evil-collection-ibuffer ibuffer ibuffer-loaddefs find-dired
> evil-collection-wdired wdired dired-x edit-indirect auto-virtualenv s vc
> vc-dispatcher pyvenv evil-collection-eshell em-prompt esh-mode eshell
> esh-cmd generator esh-ext esh-opt esh-proc esh-io esh-arg esh-module
> esh-groups esh-util evil-collection-custom cus-edit pp cus-load icons
> files-x evil-collection-python python project finder-inf git-commit
> magit-git magit-base evil-collection-magit-section magit-section crm
> dash compat-27 compat-26 with-editor transient format-spec compat
> compat-macs server evil-collection-log-edit log-edit message sendmail
> yank-media puny rfc822 mml mml-sec evil-collection-epa epa derived epg
> rfc6068 epg-config gnus-util text-property-search time-date mm-decode
> mm-bodies mm-encode mail-parse rfc2231 rfc2047 rfc2045 mm-util
> ietf-drums mail-prsvr mailabbrev mail-utils gmm-utils mailheader
> pcvs-util add-log git-modes gitignore-mode gitconfig-mode conf-mode
> gitattributes-mode evil-textobj-func evil-collection-view view
> scroll-on-jump marginalia evil-collection-vertico vertico prescient
> char-fold evil-matchit evil-matchit-evil-setup evil-matchit-sdk
> semantic/lex semantic/fw mode-local find-func ws-butler pulse color
> evil-collection-unimpaired evil-collection-which-key
> evil-collection-tabulated-list evil-collection-tab-bar
> evil-collection-so-long evil-collection-simple evil-collection-replace
> evil-collection-process-menu evil-collection-package-menu
> evil-collection-minibuffer evil-collection-info evil-collection-indent
> evil-collection-image image-mode evil-collection-dired dired
> dired-loaddefs exif evil-collection-help evil-collection-elisp-mode
> evil-collection-eldoc evil-collection-comint calc-ext
> evil-collection-calc evil-collection-buff-menu evil-collection annalist
> smart-jump-mode pcre2el rxt pcase re-builder modus-vivendi-theme
> modus-themes recentf tree-widget wid-edit so-long saveplace elec-pair
> yasnippet evil evil-integration evil-maps evil-commands reveal flyspell
> ispell evil-jumps evil-command-window evil-search evil-ex shell
> pcomplete comint ansi-osc ansi-color evil-types evil-macros evil-repeat
> evil-states evil-core evil-common windmove calc calc-loaddefs calc-macs
> thingatpt rect evil-digraphs evil-vars ring edmacro kmacro general
> diminish which-key cl-extra help-mode use-package use-package-ensure
> use-package-delight use-package-diminish use-package-bind-key bind-key
> use-package-core ef-themes-autoloads evil-collection-autoloads advice
> evil-autoloads flycheck-autoloads magit-autoloads git-commit-autoloads
> modus-themes-autoloads rx projectile-autoloads
> realgud-recursive-autoloads easy-mmode info package browse-url url
> url-proxy url-privacy url-expand url-methods url-history url-cookie
> generate-lisp-file url-domsuf url-util mailcap url-handlers url-parse
> auth-source cl-seq eieio eieio-core cl-macs password-cache json subr-x
> map byte-opt gv bytecomp byte-compile url-vars cl-loaddefs cl-lib rmc
> iso-transl tooltip cconv eldoc paren electric uniquify ediff-hook
> vc-hooks lisp-float-type elisp-mode 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 lisp-mode prog-mode register
> page tab-bar menu-bar rfn-eshadow isearch easymenu timer select
> scroll-bar mouse jit-lock font-lock syntax font-core term/tty-colors
> frame minibuffer nadvice seq simple cl-generic indonesian philippine
> 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 emoji-zwj charscript
> charprop case-table epa-hook jka-cmpr-hook help abbrev obarray oclosure
> cl-preloaded button loaddefs theme-loaddefs faces cus-face macroexp
> files window text-properties overlay sha1 md5 base64 format env
> code-pages mule custom widget keymap hashtable-print-readable backquote
> threads dbusbind inotify dynamic-setting system-font-setting
> font-render-setting cairo move-toolbar gtk x-toolkit xinput2 x multi-tty
> make-network-process emacs)
>
> Memory information:
> ((conses 16 929401 71764)
>  (symbols 48 62235 0)
>  (strings 32 267925 8161)
>  (string-bytes 1 7890068)
>  (vectors 16 125883)
>  (vector-slots 8 2192724 108913)
>  (floats 8 1219 614)
>  (intervals 56 8171 973)
>  (buffers 984 24))