* bug#67669: 29.1; Drop text suggesting using `and' to replace `if'
@ 2023-12-06 21:47 Xiyue Deng
[not found] ` <handler.67669.B.170189926211616.ack@debbugs.gnu.org>
2023-12-07 6:28 ` Eli Zaretskii
0 siblings, 2 replies; 19+ messages in thread
From: Xiyue Deng @ 2023-12-06 21:47 UTC (permalink / raw)
To: 67669
In section "the `kill-new' function" - the third last paragraph to be
precise - there are some texts in parentheses that discusses potentially
using an `and' to replace the `if' statement being discussed. It looks
like to be referring to an earlier version of the code example[1] before
using the version from Emacs 22. Meanwhile, it looks like relying on
the side effect of `and' to emulate an `if' may not be a good idea
nowadays. So is it OK to drop this advice?
[1] https://git.savannah.gnu.org/cgit/emacs.git/tree/doc/lispintro/emacs-lisp-intro.texi#n8597
In GNU Emacs 29.1 (build 1, x86_64-pc-linux-gnu, GTK+ Version 3.24.37,
cairo version 1.16.0) of 2023-09-19, modified by Debian built on
debian-hx90
System Description: Debian GNU/Linux 12 (bookworm)
Configured using:
'configure --build x86_64-linux-gnu --prefix=/usr
--sharedstatedir=/var/lib --libexecdir=/usr/libexec
--localstatedir=/var/lib --infodir=/usr/share/info
--mandir=/usr/share/man --with-libsystemd --with-pop=yes
--enable-locallisppath=/etc/emacs:/usr/local/share/emacs/29.1/site-lisp:/usr/local/share/emacs/site-lisp:/usr/share/emacs/29.1/site-lisp:/usr/share/emacs/site-lisp
--with-sound=alsa --without-gconf --with-mailutils
--with-native-compilation --build x86_64-linux-gnu --prefix=/usr
--sharedstatedir=/var/lib --libexecdir=/usr/libexec
--localstatedir=/var/lib --infodir=/usr/share/info
--mandir=/usr/share/man --with-libsystemd --with-pop=yes
--enable-locallisppath=/etc/emacs:/usr/local/share/emacs/29.1/site-lisp:/usr/local/share/emacs/site-lisp:/usr/share/emacs/29.1/site-lisp:/usr/share/emacs/site-lisp
--with-sound=alsa --without-gconf --with-mailutils
--with-native-compilation --with-cairo --with-x=yes
--with-x-toolkit=gtk3 --with-toolkit-scroll-bars 'CFLAGS=-g -O2
-ffile-prefix-map=/build/emacs-bYKTEl/emacs-29.1+1=. -fstack-protector-strong
-Wformat -Werror=format-security -Wall' 'CPPFLAGS=-Wdate-time
-D_FORTIFY_SOURCE=2' LDFLAGS=-Wl,-z,relro'
Configured features:
ACL CAIRO DBUS FREETYPE GIF GLIB GMP GNUTLS GPM GSETTINGS HARFBUZZ JPEG
JSON LCMS2 LIBOTF LIBSELINUX LIBSYSTEMD LIBXML2 M17N_FLT MODULES
NATIVE_COMP NOTIFY INOTIFY PDUMPER PNG RSVG SECCOMP SOUND SQLITE3
THREADS TIFF TOOLKIT_SCROLL_BARS TREE_SITTER WEBP X11 XDBE XIM XINPUT2
XPM GTK3 ZLIB
Important settings:
value of $LANG: en_US.UTF-8
locale-coding-system: utf-8-unix
Major mode: Texinfo/P
Minor modes in effect:
TeX-PDF-mode: t
global-git-commit-mode: t
magit-auto-revert-mode: t
shell-dirtrack-mode: t
windmove-mode: t
flyspell-mode: t
rcirc-track-minor-mode: t
server-mode: t
bug-reference-prog-mode: t
global-company-mode: t
company-mode: t
icomplete-mode: t
fido-mode: t
override-global-mode: t
global-display-line-numbers-mode: t
display-line-numbers-mode: t
global-auto-revert-mode: t
tooltip-mode: t
global-eldoc-mode: t
show-paren-mode: t
electric-indent-mode: t
mouse-wheel-mode: t
tool-bar-mode: t
tab-bar-mode: t
file-name-shadow-mode: t
global-font-lock-mode: t
font-lock-mode: t
blink-cursor-mode: t
column-number-mode: 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/xiyueden/.config/emacs/elpa/helm-3.9.6/helm-packages hides /home/xiyueden/.config/emacs/elpa/helm-core-3.9.6/helm-packages
/home/xiyueden/.config/emacs/elpa/async-1.9.8/smtpmail-async hides /usr/share/emacs/site-lisp/elpa/async-1.9.7/smtpmail-async
/home/xiyueden/.config/emacs/elpa/async-1.9.8/async-bytecomp hides /usr/share/emacs/site-lisp/elpa/async-1.9.7/async-bytecomp
/home/xiyueden/.config/emacs/elpa/async-1.9.8/dired-async hides /usr/share/emacs/site-lisp/elpa/async-1.9.7/dired-async
/home/xiyueden/.config/emacs/elpa/async-1.9.8/async hides /usr/share/emacs/site-lisp/elpa/async-1.9.7/async
/home/xiyueden/.config/emacs/elpa/async-1.9.8/async-pkg hides /usr/share/emacs/site-lisp/elpa/async-1.9.7/async-pkg
/home/xiyueden/.config/emacs/elpa/async-1.9.8/async-autoloads hides /usr/share/emacs/site-lisp/elpa/async-1.9.7/async-autoloads
/home/xiyueden/.config/emacs/elpa/bar-cursor-20201204.2244/bar-cursor-pkg hides /usr/share/emacs/site-lisp/elpa/bar-cursor-2.0/bar-cursor-pkg
/home/xiyueden/.config/emacs/elpa/bar-cursor-20201204.2244/bar-cursor hides /usr/share/emacs/site-lisp/elpa/bar-cursor-2.0/bar-cursor
/home/xiyueden/.config/emacs/elpa/bar-cursor-20201204.2244/bar-cursor-autoloads hides /usr/share/emacs/site-lisp/elpa/bar-cursor-2.0/bar-cursor-autoloads
/home/xiyueden/.config/emacs/elpa/bm-202309/bm-pkg hides /usr/share/emacs/site-lisp/elpa/bm-201905/bm-pkg
/home/xiyueden/.config/emacs/elpa/bm-202309/bm hides /usr/share/emacs/site-lisp/elpa/bm-201905/bm
/home/xiyueden/.config/emacs/elpa/bm-202309/bm-sync hides /usr/share/emacs/site-lisp/elpa/bm-201905/bm-sync
/home/xiyueden/.config/emacs/elpa/bm-202309/bm-autoloads hides /usr/share/emacs/site-lisp/elpa/bm-201905/bm-autoloads
/home/xiyueden/.config/emacs/elpa/boxquote-2.3/boxquote hides /usr/share/emacs/site-lisp/elpa/boxquote-2.2/boxquote
/home/xiyueden/.config/emacs/elpa/boxquote-2.3/boxquote-autoloads hides /usr/share/emacs/site-lisp/elpa/boxquote-2.2/boxquote-autoloads
/home/xiyueden/.config/emacs/elpa/boxquote-2.3/boxquote-pkg hides /usr/share/emacs/site-lisp/elpa/boxquote-2.2/boxquote-pkg
/home/xiyueden/.config/emacs/elpa/buttercup-1.32/buttercup hides /usr/share/emacs/site-lisp/elpa/buttercup-1.26/buttercup
/home/xiyueden/.config/emacs/elpa/buttercup-1.32/buttercup-pkg hides /usr/share/emacs/site-lisp/elpa/buttercup-1.26/buttercup-pkg
/home/xiyueden/.config/emacs/elpa/buttercup-1.32/buttercup-compat hides /usr/share/emacs/site-lisp/elpa/buttercup-1.26/buttercup-compat
/home/xiyueden/.config/emacs/elpa/buttercup-1.32/buttercup-autoloads hides /usr/share/emacs/site-lisp/elpa/buttercup-1.26/buttercup-autoloads
/home/xiyueden/.config/emacs/elpa/cmake-mode-3.27.8/cmake-mode hides /usr/share/emacs/site-lisp/elpa/cmake-mode-3.25.1/cmake-mode
/home/xiyueden/.config/emacs/elpa/cmake-mode-3.27.8/cmake-mode-autoloads hides /usr/share/emacs/site-lisp/elpa/cmake-mode-3.25.1/cmake-mode-autoloads
/home/xiyueden/.config/emacs/elpa/cmake-mode-3.27.8/cmake-mode-pkg hides /usr/share/emacs/site-lisp/elpa/cmake-mode-3.25.1/cmake-mode-pkg
/home/xiyueden/.config/emacs/elpa/company-0.10.2/company-pkg hides /usr/share/emacs/site-lisp/elpa/company-0.9.13/company-pkg
/home/xiyueden/.config/emacs/elpa/company-0.10.2/company-dabbrev hides /usr/share/emacs/site-lisp/elpa/company-0.9.13/company-dabbrev
/home/xiyueden/.config/emacs/elpa/company-0.10.2/company-files hides /usr/share/emacs/site-lisp/elpa/company-0.9.13/company-files
/home/xiyueden/.config/emacs/elpa/company-0.10.2/company-abbrev hides /usr/share/emacs/site-lisp/elpa/company-0.9.13/company-abbrev
/home/xiyueden/.config/emacs/elpa/company-0.10.2/company-capf hides /usr/share/emacs/site-lisp/elpa/company-0.9.13/company-capf
/home/xiyueden/.config/emacs/elpa/company-0.10.2/company-clang hides /usr/share/emacs/site-lisp/elpa/company-0.9.13/company-clang
/home/xiyueden/.config/emacs/elpa/company-0.10.2/company-yasnippet hides /usr/share/emacs/site-lisp/elpa/company-0.9.13/company-yasnippet
/home/xiyueden/.config/emacs/elpa/company-0.10.2/company-ispell hides /usr/share/emacs/site-lisp/elpa/company-0.9.13/company-ispell
/home/xiyueden/.config/emacs/elpa/company-0.10.2/company-cmake hides /usr/share/emacs/site-lisp/elpa/company-0.9.13/company-cmake
/home/xiyueden/.config/emacs/elpa/company-0.10.2/company-dabbrev-code hides /usr/share/emacs/site-lisp/elpa/company-0.9.13/company-dabbrev-code
/home/xiyueden/.config/emacs/elpa/company-0.10.2/company hides /usr/share/emacs/site-lisp/elpa/company-0.9.13/company
/home/xiyueden/.config/emacs/elpa/company-0.10.2/company-etags hides /usr/share/emacs/site-lisp/elpa/company-0.9.13/company-etags
/home/xiyueden/.config/emacs/elpa/company-0.10.2/company-template hides /usr/share/emacs/site-lisp/elpa/company-0.9.13/company-template
/home/xiyueden/.config/emacs/elpa/company-0.10.2/company-css hides /usr/share/emacs/site-lisp/elpa/company-0.9.13/company-css
/home/xiyueden/.config/emacs/elpa/company-0.10.2/company-oddmuse hides /usr/share/emacs/site-lisp/elpa/company-0.9.13/company-oddmuse
/home/xiyueden/.config/emacs/elpa/company-0.10.2/company-bbdb hides /usr/share/emacs/site-lisp/elpa/company-0.9.13/company-bbdb
/home/xiyueden/.config/emacs/elpa/company-0.10.2/company-tempo hides /usr/share/emacs/site-lisp/elpa/company-0.9.13/company-tempo
/home/xiyueden/.config/emacs/elpa/company-0.10.2/company-tng hides /usr/share/emacs/site-lisp/elpa/company-0.9.13/company-tng
/home/xiyueden/.config/emacs/elpa/company-0.10.2/company-nxml hides /usr/share/emacs/site-lisp/elpa/company-0.9.13/company-nxml
/home/xiyueden/.config/emacs/elpa/company-0.10.2/company-gtags hides /usr/share/emacs/site-lisp/elpa/company-0.9.13/company-gtags
/home/xiyueden/.config/emacs/elpa/company-0.10.2/company-autoloads hides /usr/share/emacs/site-lisp/elpa/company-0.9.13/company-autoloads
/home/xiyueden/.config/emacs/elpa/company-0.10.2/company-elisp hides /usr/share/emacs/site-lisp/elpa/company-0.9.13/company-elisp
/home/xiyueden/.config/emacs/elpa/company-0.10.2/company-keywords hides /usr/share/emacs/site-lisp/elpa/company-0.9.13/company-keywords
/home/xiyueden/.config/emacs/elpa/company-0.10.2/company-semantic hides /usr/share/emacs/site-lisp/elpa/company-0.9.13/company-semantic
/home/xiyueden/.config/emacs/elpa/diminish-0.46/diminish-pkg hides /usr/share/emacs/site-lisp/elpa/diminish-0.45/diminish-pkg
/home/xiyueden/.config/emacs/elpa/diminish-0.46/diminish hides /usr/share/emacs/site-lisp/elpa/diminish-0.45/diminish
/home/xiyueden/.config/emacs/elpa/diminish-0.46/diminish-autoloads hides /usr/share/emacs/site-lisp/elpa/diminish-0.45/diminish-autoloads
/usr/share/emacs/site-lisp/elpa/debian-el-37/debian-autoloads hides /usr/share/emacs/site-lisp/elpa/dpkg-dev-el-37.0/debian-autoloads
/home/xiyueden/.config/emacs/elpa/eproject-20180312.1642/eproject-perl hides /usr/share/emacs/site-lisp/elpa/eproject-1.5/eproject-perl
/home/xiyueden/.config/emacs/elpa/eproject-20180312.1642/eproject-javascript-bower hides /usr/share/emacs/site-lisp/elpa/eproject-1.5/eproject-javascript-bower
/home/xiyueden/.config/emacs/elpa/eproject-20180312.1642/eproject-autoloads hides /usr/share/emacs/site-lisp/elpa/eproject-1.5/eproject-autoloads
/home/xiyueden/.config/emacs/elpa/eproject-20180312.1642/eproject-arduino hides /usr/share/emacs/site-lisp/elpa/eproject-1.5/eproject-arduino
/home/xiyueden/.config/emacs/elpa/eproject-20180312.1642/eproject-javascript-grunt hides /usr/share/emacs/site-lisp/elpa/eproject-1.5/eproject-javascript-grunt
/home/xiyueden/.config/emacs/elpa/eproject-20180312.1642/eproject-ruby hides /usr/share/emacs/site-lisp/elpa/eproject-1.5/eproject-ruby
/home/xiyueden/.config/emacs/elpa/eproject-20180312.1642/eproject-python hides /usr/share/emacs/site-lisp/elpa/eproject-1.5/eproject-python
/home/xiyueden/.config/emacs/elpa/eproject-20180312.1642/eproject-clojure-leiningen hides /usr/share/emacs/site-lisp/elpa/eproject-1.5/eproject-clojure-leiningen
/home/xiyueden/.config/emacs/elpa/eproject-20180312.1642/eproject-extras hides /usr/share/emacs/site-lisp/elpa/eproject-1.5/eproject-extras
/home/xiyueden/.config/emacs/elpa/eproject-20180312.1642/eproject-javascript-npm hides /usr/share/emacs/site-lisp/elpa/eproject-1.5/eproject-javascript-npm
/home/xiyueden/.config/emacs/elpa/eproject-20180312.1642/eproject-php-composer hides /usr/share/emacs/site-lisp/elpa/eproject-1.5/eproject-php-composer
/home/xiyueden/.config/emacs/elpa/eproject-20180312.1642/eproject-android hides /usr/share/emacs/site-lisp/elpa/eproject-1.5/eproject-android
/home/xiyueden/.config/emacs/elpa/eproject-20180312.1642/eproject hides /usr/share/emacs/site-lisp/elpa/eproject-1.5/eproject
/home/xiyueden/.config/emacs/elpa/eproject-20180312.1642/eproject-ruby-on-rails hides /usr/share/emacs/site-lisp/elpa/eproject-1.5/eproject-ruby-on-rails
/home/xiyueden/.config/emacs/elpa/eproject-20180312.1642/eproject-pkg hides /usr/share/emacs/site-lisp/elpa/eproject-1.5/eproject-pkg
/home/xiyueden/.config/emacs/elpa/folding-20231003.959/folding hides /usr/share/emacs/site-lisp/elpa/folding-20220110.1718/folding
/home/xiyueden/.config/emacs/elpa/folding-20231003.959/folding-autoloads hides /usr/share/emacs/site-lisp/elpa/folding-20220110.1718/folding-autoloads
/home/xiyueden/.config/emacs/elpa/folding-20231003.959/folding-pkg hides /usr/share/emacs/site-lisp/elpa/folding-20220110.1718/folding-pkg
/home/xiyueden/.config/emacs/elpa/git-modes-1.4.2/git-modes hides /usr/share/emacs/site-lisp/elpa/git-modes-1.4.0/git-modes
/home/xiyueden/.config/emacs/elpa/git-modes-1.4.2/git-modes-pkg hides /usr/share/emacs/site-lisp/elpa/git-modes-1.4.0/git-modes-pkg
/home/xiyueden/.config/emacs/elpa/git-modes-1.4.2/git-modes-autoloads hides /usr/share/emacs/site-lisp/elpa/git-modes-1.4.0/git-modes-autoloads
/home/xiyueden/.config/emacs/elpa/git-modes-1.4.2/gitattributes-mode hides /usr/share/emacs/site-lisp/elpa/gitattributes-mode-1.4.0/gitattributes-mode
/home/xiyueden/.config/emacs/elpa/git-modes-1.4.2/gitconfig-mode hides /usr/share/emacs/site-lisp/elpa/gitconfig-mode-1.4.0/gitconfig-mode
/home/xiyueden/.config/emacs/elpa/git-modes-1.4.2/gitignore-mode hides /usr/share/emacs/site-lisp/elpa/gitignore-mode-1.4.0/gitignore-mode
/home/xiyueden/.config/emacs/elpa/gnuplot-0.8.1/gnuplot-context hides /usr/share/emacs/site-lisp/elpa/gnuplot-0.8.0/gnuplot-context
/home/xiyueden/.config/emacs/elpa/gnuplot-0.8.1/gnuplot hides /usr/share/emacs/site-lisp/elpa/gnuplot-0.8.0/gnuplot
/home/xiyueden/.config/emacs/elpa/gnuplot-0.8.1/gnuplot-gui hides /usr/share/emacs/site-lisp/elpa/gnuplot-0.8.0/gnuplot-gui
/home/xiyueden/.config/emacs/elpa/gnuplot-0.8.1/gnuplot-autoloads hides /usr/share/emacs/site-lisp/elpa/gnuplot-0.8.0/gnuplot-autoloads
/usr/share/emacs/site-lisp/elpa/debian-el-37/debian-autoloads hides /usr/share/emacs/site-lisp/elpa/gnuplot-0.8.0/debian-autoloads
/home/xiyueden/.config/emacs/elpa/gnuplot-0.8.1/gnuplot-pkg hides /usr/share/emacs/site-lisp/elpa/gnuplot-0.8.0/gnuplot-pkg
/home/xiyueden/.config/emacs/elpa/helm-3.9.6/helm-find hides /usr/share/emacs/site-lisp/elpa/helm-3.8.4/helm-find
/home/xiyueden/.config/emacs/elpa/helm-3.9.6/helm-font hides /usr/share/emacs/site-lisp/elpa/helm-3.8.4/helm-font
/home/xiyueden/.config/emacs/elpa/helm-3.9.6/helm-net hides /usr/share/emacs/site-lisp/elpa/helm-3.8.4/helm-net
/home/xiyueden/.config/emacs/elpa/helm-3.9.6/helm-locate hides /usr/share/emacs/site-lisp/elpa/helm-3.8.4/helm-locate
/home/xiyueden/.config/emacs/elpa/helm-3.9.6/helm-external hides /usr/share/emacs/site-lisp/elpa/helm-3.8.4/helm-external
/home/xiyueden/.config/emacs/elpa/helm-3.9.6/helm-grep hides /usr/share/emacs/site-lisp/elpa/helm-3.8.4/helm-grep
/home/xiyueden/.config/emacs/elpa/helm-3.9.6/helm-id-utils hides /usr/share/emacs/site-lisp/elpa/helm-3.8.4/helm-id-utils
/home/xiyueden/.config/emacs/elpa/helm-3.9.6/helm-global-bindings hides /usr/share/emacs/site-lisp/elpa/helm-3.8.4/helm-global-bindings
/home/xiyueden/.config/emacs/elpa/helm-3.9.6/helm-semantic hides /usr/share/emacs/site-lisp/elpa/helm-3.8.4/helm-semantic
/home/xiyueden/.config/emacs/elpa/helm-3.9.6/helm-x-files hides /usr/share/emacs/site-lisp/elpa/helm-3.8.4/helm-x-files
/home/xiyueden/.config/emacs/elpa/helm-3.9.6/helm-eval hides /usr/share/emacs/site-lisp/elpa/helm-3.8.4/helm-eval
/home/xiyueden/.config/emacs/elpa/helm-3.9.6/helm-misc hides /usr/share/emacs/site-lisp/elpa/helm-3.8.4/helm-misc
/home/xiyueden/.config/emacs/elpa/helm-3.9.6/helm-eshell hides /usr/share/emacs/site-lisp/elpa/helm-3.8.4/helm-eshell
/home/xiyueden/.config/emacs/elpa/helm-3.9.6/helm-occur hides /usr/share/emacs/site-lisp/elpa/helm-3.8.4/helm-occur
/home/xiyueden/.config/emacs/elpa/helm-3.9.6/helm-info hides /usr/share/emacs/site-lisp/elpa/helm-3.8.4/helm-info
/home/xiyueden/.config/emacs/elpa/helm-3.9.6/helm-mode hides /usr/share/emacs/site-lisp/elpa/helm-3.8.4/helm-mode
/home/xiyueden/.config/emacs/elpa/helm-3.9.6/helm-bookmark hides /usr/share/emacs/site-lisp/elpa/helm-3.8.4/helm-bookmark
/home/xiyueden/.config/emacs/elpa/helm-3.9.6/helm-tags hides /usr/share/emacs/site-lisp/elpa/helm-3.8.4/helm-tags
/home/xiyueden/.config/emacs/elpa/helm-3.9.6/helm-for-files hides /usr/share/emacs/site-lisp/elpa/helm-3.8.4/helm-for-files
/home/xiyueden/.config/emacs/elpa/helm-3.9.6/helm-elisp hides /usr/share/emacs/site-lisp/elpa/helm-3.8.4/helm-elisp
/home/xiyueden/.config/emacs/elpa/helm-3.9.6/helm-imenu hides /usr/share/emacs/site-lisp/elpa/helm-3.8.4/helm-imenu
/home/xiyueden/.config/emacs/elpa/helm-3.9.6/helm-color hides /usr/share/emacs/site-lisp/elpa/helm-3.8.4/helm-color
/home/xiyueden/.config/emacs/elpa/helm-3.9.6/helm-types hides /usr/share/emacs/site-lisp/elpa/helm-3.8.4/helm-types
/home/xiyueden/.config/emacs/elpa/helm-3.9.6/helm-adaptive hides /usr/share/emacs/site-lisp/elpa/helm-3.8.4/helm-adaptive
/home/xiyueden/.config/emacs/elpa/helm-3.9.6/helm-man hides /usr/share/emacs/site-lisp/elpa/helm-3.8.4/helm-man
/home/xiyueden/.config/emacs/elpa/helm-3.9.6/helm-regexp hides /usr/share/emacs/site-lisp/elpa/helm-3.8.4/helm-regexp
/home/xiyueden/.config/emacs/elpa/helm-3.9.6/helm-pkg hides /usr/share/emacs/site-lisp/elpa/helm-3.8.4/helm-pkg
/home/xiyueden/.config/emacs/elpa/helm-3.9.6/helm-ring hides /usr/share/emacs/site-lisp/elpa/helm-3.8.4/helm-ring
/home/xiyueden/.config/emacs/elpa/helm-3.9.6/helm-utils hides /usr/share/emacs/site-lisp/elpa/helm-3.8.4/helm-utils
/home/xiyueden/.config/emacs/elpa/helm-3.9.6/helm-sys hides /usr/share/emacs/site-lisp/elpa/helm-3.8.4/helm-sys
/home/xiyueden/.config/emacs/elpa/helm-3.9.6/helm-easymenu hides /usr/share/emacs/site-lisp/elpa/helm-3.8.4/helm-easymenu
/home/xiyueden/.config/emacs/elpa/helm-3.9.6/helm-autoloads hides /usr/share/emacs/site-lisp/elpa/helm-3.8.4/helm-autoloads
/home/xiyueden/.config/emacs/elpa/helm-3.9.6/helm-buffers hides /usr/share/emacs/site-lisp/elpa/helm-3.8.4/helm-buffers
/home/xiyueden/.config/emacs/elpa/helm-3.9.6/helm-help hides /usr/share/emacs/site-lisp/elpa/helm-3.8.4/helm-help
/home/xiyueden/.config/emacs/elpa/helm-3.9.6/helm-files hides /usr/share/emacs/site-lisp/elpa/helm-3.8.4/helm-files
/home/xiyueden/.config/emacs/elpa/helm-3.9.6/helm-dabbrev hides /usr/share/emacs/site-lisp/elpa/helm-3.8.4/helm-dabbrev
/home/xiyueden/.config/emacs/elpa/helm-3.9.6/helm-command hides /usr/share/emacs/site-lisp/elpa/helm-3.8.4/helm-command
/home/xiyueden/.config/emacs/elpa/helm-core-3.9.6/helm hides /usr/share/emacs/site-lisp/elpa/helm-core-3.8.4/helm
/home/xiyueden/.config/emacs/elpa/helm-core-3.9.6/helm-core-pkg hides /usr/share/emacs/site-lisp/elpa/helm-core-3.8.4/helm-core-pkg
/home/xiyueden/.config/emacs/elpa/helm-core-3.9.6/helm-multi-match hides /usr/share/emacs/site-lisp/elpa/helm-core-3.8.4/helm-multi-match
/home/xiyueden/.config/emacs/elpa/helm-core-3.9.6/helm-lib hides /usr/share/emacs/site-lisp/elpa/helm-core-3.8.4/helm-lib
/home/xiyueden/.config/emacs/elpa/helm-core-3.9.6/helm-source hides /usr/share/emacs/site-lisp/elpa/helm-core-3.8.4/helm-source
/home/xiyueden/.config/emacs/elpa/helm-core-3.9.6/helm-core-autoloads hides /usr/share/emacs/site-lisp/elpa/helm-core-3.8.4/helm-core-autoloads
/home/xiyueden/.config/emacs/elpa/htmlize-1.57/htmlize hides /usr/share/emacs/site-lisp/elpa/htmlize-1.56/htmlize
/home/xiyueden/.config/emacs/elpa/htmlize-1.57/htmlize-autoloads hides /usr/share/emacs/site-lisp/elpa/htmlize-1.56/htmlize-autoloads
/home/xiyueden/.config/emacs/elpa/htmlize-1.57/htmlize-pkg hides /usr/share/emacs/site-lisp/elpa/htmlize-1.56/htmlize-pkg
/home/xiyueden/.config/emacs/elpa/initsplit-20160919.1818/initsplit hides /usr/share/emacs/site-lisp/elpa/initsplit-1.8/initsplit
/home/xiyueden/.config/emacs/elpa/initsplit-20160919.1818/initsplit-autoloads hides /usr/share/emacs/site-lisp/elpa/initsplit-1.8/initsplit-autoloads
/home/xiyueden/.config/emacs/elpa/initsplit-20160919.1818/initsplit-pkg hides /usr/share/emacs/site-lisp/elpa/initsplit-1.8/initsplit-pkg
/home/xiyueden/.config/emacs/elpa/js2-mode-20230408/js2-imenu-extras hides /usr/share/emacs/site-lisp/elpa/js2-mode-20201220/js2-imenu-extras
/home/xiyueden/.config/emacs/elpa/js2-mode-20230408/js2-old-indent hides /usr/share/emacs/site-lisp/elpa/js2-mode-20201220/js2-old-indent
/home/xiyueden/.config/emacs/elpa/js2-mode-20230408/js2-mode hides /usr/share/emacs/site-lisp/elpa/js2-mode-20201220/js2-mode
/home/xiyueden/.config/emacs/elpa/js2-mode-20230408/js2-mode-pkg hides /usr/share/emacs/site-lisp/elpa/js2-mode-20201220/js2-mode-pkg
/home/xiyueden/.config/emacs/elpa/js2-mode-20230408/js2-mode-autoloads hides /usr/share/emacs/site-lisp/elpa/js2-mode-20201220/js2-mode-autoloads
/usr/share/emacs/site-lisp/elpa/magit-3.3.0/magit-section hides /usr/share/emacs/site-lisp/elpa/magit-section-3.3.0/magit-section
/home/xiyueden/.config/emacs/elpa/markdown-mode-2.6/markdown-mode hides /usr/share/emacs/site-lisp/elpa/markdown-mode-2.5/markdown-mode
/home/xiyueden/.config/emacs/elpa/markdown-mode-2.6/markdown-mode-pkg hides /usr/share/emacs/site-lisp/elpa/markdown-mode-2.5/markdown-mode-pkg
/home/xiyueden/.config/emacs/elpa/markdown-mode-2.6/markdown-mode-autoloads hides /usr/share/emacs/site-lisp/elpa/markdown-mode-2.5/markdown-mode-autoloads
/home/xiyueden/.config/emacs/elpa/meson-mode-0.3/meson-mode hides /usr/share/emacs/site-lisp/elpa/meson-mode-0.2/meson-mode
/home/xiyueden/.config/emacs/elpa/meson-mode-0.3/utils hides /usr/share/emacs/site-lisp/elpa/meson-mode-0.2/utils
/home/xiyueden/.config/emacs/elpa/meson-mode-0.3/meson-mode-autoloads hides /usr/share/emacs/site-lisp/elpa/meson-mode-0.2/meson-mode-autoloads
/home/xiyueden/.config/emacs/elpa/meson-mode-0.3/meson-mode-pkg hides /usr/share/emacs/site-lisp/elpa/meson-mode-0.2/meson-mode-pkg
/home/xiyueden/.config/emacs/elpa/popup-0.5.9/popup hides /usr/share/emacs/site-lisp/elpa/popup-0.5.8/popup
/home/xiyueden/.config/emacs/elpa/popup-0.5.9/popup-pkg hides /usr/share/emacs/site-lisp/elpa/popup-0.5.8/popup-pkg
/home/xiyueden/.config/emacs/elpa/popup-0.5.9/popup-autoloads hides /usr/share/emacs/site-lisp/elpa/popup-0.5.8/popup-autoloads
/home/xiyueden/.config/emacs/elpa/rust-mode-1.0.5/rust-mode hides /usr/share/emacs/site-lisp/elpa/rust-mode-0.4.0/rust-mode
/home/xiyueden/.config/emacs/elpa/rust-mode-1.0.5/rust-mode-autoloads hides /usr/share/emacs/site-lisp/elpa/rust-mode-0.4.0/rust-mode-autoloads
/home/xiyueden/.config/emacs/elpa/rust-mode-1.0.5/rust-mode-pkg hides /usr/share/emacs/site-lisp/elpa/rust-mode-0.4.0/rust-mode-pkg
/home/xiyueden/.config/emacs/elpa/session-20210422.53/session-autoloads hides /usr/share/emacs/site-lisp/elpa/session-2.4.2/session-autoloads
/home/xiyueden/.config/emacs/elpa/session-20210422.53/session-pkg hides /usr/share/emacs/site-lisp/elpa/session-2.4.2/session-pkg
/home/xiyueden/.config/emacs/elpa/session-20210422.53/session hides /usr/share/emacs/site-lisp/elpa/session-2.4.2/session
/home/xiyueden/.config/emacs/elpa/tabbar-20180726.1735/tabbar-pkg hides /usr/share/emacs/site-lisp/elpa/tabbar-20160524/tabbar-pkg
/home/xiyueden/.config/emacs/elpa/tabbar-20180726.1735/tabbar-autoloads hides /usr/share/emacs/site-lisp/elpa/tabbar-20160524/tabbar-autoloads
/home/xiyueden/.config/emacs/elpa/tabbar-20180726.1735/tabbar hides /usr/share/emacs/site-lisp/elpa/tabbar-20160524/tabbar
/home/xiyueden/.config/emacs/elpa/vterm-20230417.424/vterm hides /usr/share/emacs/site-lisp/elpa/vterm-0.0.2/vterm
/home/xiyueden/.config/emacs/elpa/vterm-20230417.424/vterm-pkg hides /usr/share/emacs/site-lisp/elpa/vterm-0.0.2/vterm-pkg
/home/xiyueden/.config/emacs/elpa/vterm-20230417.424/vterm-autoloads hides /usr/share/emacs/site-lisp/elpa/vterm-0.0.2/vterm-autoloads
/home/xiyueden/.config/emacs/elpa/web-mode-17.3.15/web-mode-pkg hides /usr/share/emacs/site-lisp/elpa/web-mode-17.0.2/web-mode-pkg
/home/xiyueden/.config/emacs/elpa/web-mode-17.3.15/web-mode-autoloads hides /usr/share/emacs/site-lisp/elpa/web-mode-17.0.2/web-mode-autoloads
/home/xiyueden/.config/emacs/elpa/web-mode-17.3.15/web-mode hides /usr/share/emacs/site-lisp/elpa/web-mode-17.0.2/web-mode
/home/xiyueden/.config/emacs/elpa/with-editor-3.3.2/with-editor-pkg hides /usr/share/emacs/site-lisp/elpa/with-editor-3.0.5/with-editor-pkg
/home/xiyueden/.config/emacs/elpa/with-editor-3.3.2/with-editor hides /usr/share/emacs/site-lisp/elpa/with-editor-3.0.5/with-editor
/home/xiyueden/.config/emacs/elpa/with-editor-3.3.2/with-editor-autoloads hides /usr/share/emacs/site-lisp/elpa/with-editor-3.0.5/with-editor-autoloads
/home/xiyueden/.config/emacs/elpa/yaml-mode-0.0.16/yaml-mode-pkg hides /usr/share/emacs/site-lisp/elpa/yaml-mode-0.0.15/yaml-mode-pkg
/home/xiyueden/.config/emacs/elpa/yaml-mode-0.0.16/yaml-mode hides /usr/share/emacs/site-lisp/elpa/yaml-mode-0.0.15/yaml-mode
/home/xiyueden/.config/emacs/elpa/yaml-mode-0.0.16/yaml-mode-autoloads hides /usr/share/emacs/site-lisp/elpa/yaml-mode-0.0.15/yaml-mode-autoloads
/home/xiyueden/.config/emacs/elpa/yasnippet-snippets-20230815.820/yasnippet-snippets hides /usr/share/emacs/site-lisp/elpa/yasnippet-snippets-20220713/yasnippet-snippets
/home/xiyueden/.config/emacs/elpa/yasnippet-snippets-20230815.820/yasnippet-snippets-pkg hides /usr/share/emacs/site-lisp/elpa/yasnippet-snippets-20220713/yasnippet-snippets-pkg
/home/xiyueden/.config/emacs/elpa/yasnippet-snippets-20230815.820/yasnippet-snippets-autoloads hides /usr/share/emacs/site-lisp/elpa/yasnippet-snippets-20220713/yasnippet-snippets-autoloads
/home/xiyueden/.config/emacs/elpa/zenburn-theme-2.8.0/zenburn-theme hides /usr/share/emacs/site-lisp/elpa/zenburn-theme-2.7.0/zenburn-theme
/home/xiyueden/.config/emacs/elpa/zenburn-theme-2.8.0/zenburn-theme-pkg hides /usr/share/emacs/site-lisp/elpa/zenburn-theme-2.7.0/zenburn-theme-pkg
/home/xiyueden/.config/emacs/elpa/zenburn-theme-2.8.0/zenburn-theme-autoloads hides /usr/share/emacs/site-lisp/elpa/zenburn-theme-2.7.0/zenburn-theme-autoloads
/usr/share/emacs/site-lisp/elpa/apache-mode-2.2.0/apache-mode-autoloads hides /usr/share/emacs/site-lisp/elpa-src/apache-mode-2.2.0/apache-mode-autoloads
/usr/share/emacs/site-lisp/elpa/apache-mode-2.2.0/apache-mode-pkg hides /usr/share/emacs/site-lisp/elpa-src/apache-mode-2.2.0/apache-mode-pkg
/usr/share/emacs/site-lisp/elpa/apache-mode-2.2.0/apache-mode hides /usr/share/emacs/site-lisp/elpa-src/apache-mode-2.2.0/apache-mode
/home/xiyueden/.config/emacs/elpa/async-1.9.8/smtpmail-async hides /usr/share/emacs/site-lisp/elpa-src/async-1.9.7/smtpmail-async
/home/xiyueden/.config/emacs/elpa/async-1.9.8/dired-async hides /usr/share/emacs/site-lisp/elpa-src/async-1.9.7/dired-async
/home/xiyueden/.config/emacs/elpa/async-1.9.8/async hides /usr/share/emacs/site-lisp/elpa-src/async-1.9.7/async
/home/xiyueden/.config/emacs/elpa/async-1.9.8/async-pkg hides /usr/share/emacs/site-lisp/elpa-src/async-1.9.7/async-pkg
/home/xiyueden/.config/emacs/elpa/async-1.9.8/async-autoloads hides /usr/share/emacs/site-lisp/elpa-src/async-1.9.7/async-autoloads
/home/xiyueden/.config/emacs/elpa/async-1.9.8/async-bytecomp hides /usr/share/emacs/site-lisp/elpa-src/async-1.9.7/async-bytecomp
/home/xiyueden/.config/emacs/elpa/bar-cursor-20201204.2244/bar-cursor-pkg hides /usr/share/emacs/site-lisp/elpa-src/bar-cursor-2.0/bar-cursor-pkg
/home/xiyueden/.config/emacs/elpa/bar-cursor-20201204.2244/bar-cursor hides /usr/share/emacs/site-lisp/elpa-src/bar-cursor-2.0/bar-cursor
/home/xiyueden/.config/emacs/elpa/bar-cursor-20201204.2244/bar-cursor-autoloads hides /usr/share/emacs/site-lisp/elpa-src/bar-cursor-2.0/bar-cursor-autoloads
/usr/share/emacs/site-lisp/elpa/bind-key-2.4.1/bind-key-autoloads hides /usr/share/emacs/site-lisp/elpa-src/bind-key-2.4.1/bind-key-autoloads
/usr/share/emacs/site-lisp/elpa/bind-key-2.4.1/bind-key-pkg hides /usr/share/emacs/site-lisp/elpa-src/bind-key-2.4.1/bind-key-pkg
/usr/share/emacs/site-lisp/elpa/bind-key-2.4.1/bind-key hides /usr/share/emacs/site-lisp/elpa-src/bind-key-2.4.1/bind-key
/home/xiyueden/.config/emacs/elpa/bm-202309/bm-sync hides /usr/share/emacs/site-lisp/elpa-src/bm-201905/bm-sync
/home/xiyueden/.config/emacs/elpa/bm-202309/bm-pkg hides /usr/share/emacs/site-lisp/elpa-src/bm-201905/bm-pkg
/home/xiyueden/.config/emacs/elpa/bm-202309/bm-autoloads hides /usr/share/emacs/site-lisp/elpa-src/bm-201905/bm-autoloads
/home/xiyueden/.config/emacs/elpa/bm-202309/bm hides /usr/share/emacs/site-lisp/elpa-src/bm-201905/bm
/home/xiyueden/.config/emacs/elpa/boxquote-2.3/boxquote hides /usr/share/emacs/site-lisp/elpa-src/boxquote-2.2/boxquote
/home/xiyueden/.config/emacs/elpa/boxquote-2.3/boxquote-autoloads hides /usr/share/emacs/site-lisp/elpa-src/boxquote-2.2/boxquote-autoloads
/home/xiyueden/.config/emacs/elpa/boxquote-2.3/boxquote-pkg hides /usr/share/emacs/site-lisp/elpa-src/boxquote-2.2/boxquote-pkg
/usr/share/emacs/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/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/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
/home/xiyueden/.config/emacs/elpa/buttercup-1.32/buttercup-pkg hides /usr/share/emacs/site-lisp/elpa-src/buttercup-1.26/buttercup-pkg
/home/xiyueden/.config/emacs/elpa/buttercup-1.32/buttercup hides /usr/share/emacs/site-lisp/elpa-src/buttercup-1.26/buttercup
/home/xiyueden/.config/emacs/elpa/buttercup-1.32/buttercup-autoloads hides /usr/share/emacs/site-lisp/elpa-src/buttercup-1.26/buttercup-autoloads
/home/xiyueden/.config/emacs/elpa/buttercup-1.32/buttercup-compat hides /usr/share/emacs/site-lisp/elpa-src/buttercup-1.26/buttercup-compat
/home/xiyueden/.config/emacs/elpa/cmake-mode-3.27.8/cmake-mode hides /usr/share/emacs/site-lisp/elpa-src/cmake-mode-3.25.1/cmake-mode
/home/xiyueden/.config/emacs/elpa/cmake-mode-3.27.8/cmake-mode-autoloads hides /usr/share/emacs/site-lisp/elpa-src/cmake-mode-3.25.1/cmake-mode-autoloads
/home/xiyueden/.config/emacs/elpa/cmake-mode-3.27.8/cmake-mode-pkg hides /usr/share/emacs/site-lisp/elpa-src/cmake-mode-3.25.1/cmake-mode-pkg
/home/xiyueden/.config/emacs/elpa/company-0.10.2/company-dabbrev hides /usr/share/emacs/site-lisp/elpa-src/company-0.9.13/company-dabbrev
/usr/share/emacs/site-lisp/elpa/company-0.9.13/async-tests hides /usr/share/emacs/site-lisp/elpa-src/company-0.9.13/async-tests
/home/xiyueden/.config/emacs/elpa/company-0.10.2/company-capf hides /usr/share/emacs/site-lisp/elpa-src/company-0.9.13/company-capf
/home/xiyueden/.config/emacs/elpa/company-0.10.2/company-yasnippet hides /usr/share/emacs/site-lisp/elpa-src/company-0.9.13/company-yasnippet
/home/xiyueden/.config/emacs/elpa/company-0.10.2/company-ispell hides /usr/share/emacs/site-lisp/elpa-src/company-0.9.13/company-ispell
/home/xiyueden/.config/emacs/elpa/company-0.10.2/company-etags hides /usr/share/emacs/site-lisp/elpa-src/company-0.9.13/company-etags
/home/xiyueden/.config/emacs/elpa/company-0.10.2/company-template hides /usr/share/emacs/site-lisp/elpa-src/company-0.9.13/company-template
/home/xiyueden/.config/emacs/elpa/company-0.10.2/company-abbrev hides /usr/share/emacs/site-lisp/elpa-src/company-0.9.13/company-abbrev
/home/xiyueden/.config/emacs/elpa/company-0.10.2/company-files hides /usr/share/emacs/site-lisp/elpa-src/company-0.9.13/company-files
/usr/share/emacs/site-lisp/elpa/company-0.9.13/template-tests hides /usr/share/emacs/site-lisp/elpa-src/company-0.9.13/template-tests
/usr/share/emacs/site-lisp/elpa/company-0.9.13/company-xcode hides /usr/share/emacs/site-lisp/elpa-src/company-0.9.13/company-xcode
/home/xiyueden/.config/emacs/elpa/company-0.10.2/company-css hides /usr/share/emacs/site-lisp/elpa-src/company-0.9.13/company-css
/usr/share/emacs/site-lisp/elpa/company-0.9.13/company-tests hides /usr/share/emacs/site-lisp/elpa-src/company-0.9.13/company-tests
/usr/share/emacs/site-lisp/elpa/company-0.9.13/bbdb-tests hides /usr/share/emacs/site-lisp/elpa-src/company-0.9.13/bbdb-tests
/home/xiyueden/.config/emacs/elpa/company-0.10.2/company-dabbrev-code hides /usr/share/emacs/site-lisp/elpa-src/company-0.9.13/company-dabbrev-code
/home/xiyueden/.config/emacs/elpa/company-0.10.2/company-pkg hides /usr/share/emacs/site-lisp/elpa-src/company-0.9.13/company-pkg
/home/xiyueden/.config/emacs/elpa/company-0.10.2/company-oddmuse hides /usr/share/emacs/site-lisp/elpa-src/company-0.9.13/company-oddmuse
/usr/share/emacs/site-lisp/elpa/company-0.9.13/clang-tests hides /usr/share/emacs/site-lisp/elpa-src/company-0.9.13/clang-tests
/home/xiyueden/.config/emacs/elpa/company-0.10.2/company-bbdb hides /usr/share/emacs/site-lisp/elpa-src/company-0.9.13/company-bbdb
/usr/share/emacs/site-lisp/elpa/company-0.9.13/transformers-tests hides /usr/share/emacs/site-lisp/elpa-src/company-0.9.13/transformers-tests
/usr/share/emacs/site-lisp/elpa/company-0.9.13/frontends-tests hides /usr/share/emacs/site-lisp/elpa-src/company-0.9.13/frontends-tests
/usr/share/emacs/site-lisp/elpa/company-0.9.13/core-tests hides /usr/share/emacs/site-lisp/elpa-src/company-0.9.13/core-tests
/home/xiyueden/.config/emacs/elpa/company-0.10.2/company hides /usr/share/emacs/site-lisp/elpa-src/company-0.9.13/company
/home/xiyueden/.config/emacs/elpa/company-0.10.2/company-clang hides /usr/share/emacs/site-lisp/elpa-src/company-0.9.13/company-clang
/home/xiyueden/.config/emacs/elpa/company-0.10.2/company-nxml hides /usr/share/emacs/site-lisp/elpa-src/company-0.9.13/company-nxml
/home/xiyueden/.config/emacs/elpa/company-0.10.2/company-gtags hides /usr/share/emacs/site-lisp/elpa-src/company-0.9.13/company-gtags
/home/xiyueden/.config/emacs/elpa/company-0.10.2/company-tempo hides /usr/share/emacs/site-lisp/elpa-src/company-0.9.13/company-tempo
/usr/share/emacs/site-lisp/elpa/company-0.9.13/capf-tests hides /usr/share/emacs/site-lisp/elpa-src/company-0.9.13/capf-tests
/home/xiyueden/.config/emacs/elpa/company-0.10.2/company-autoloads hides /usr/share/emacs/site-lisp/elpa-src/company-0.9.13/company-autoloads
/home/xiyueden/.config/emacs/elpa/company-0.10.2/company-cmake hides /usr/share/emacs/site-lisp/elpa-src/company-0.9.13/company-cmake
/home/xiyueden/.config/emacs/elpa/company-0.10.2/company-tng hides /usr/share/emacs/site-lisp/elpa-src/company-0.9.13/company-tng
/usr/share/emacs/site-lisp/elpa/company-0.9.13/keywords-tests hides /usr/share/emacs/site-lisp/elpa-src/company-0.9.13/keywords-tests
/home/xiyueden/.config/emacs/elpa/company-0.10.2/company-elisp hides /usr/share/emacs/site-lisp/elpa-src/company-0.9.13/company-elisp
/usr/share/emacs/site-lisp/elpa/company-0.9.13/all hides /usr/share/emacs/site-lisp/elpa-src/company-0.9.13/all
/home/xiyueden/.config/emacs/elpa/company-0.10.2/company-semantic hides /usr/share/emacs/site-lisp/elpa-src/company-0.9.13/company-semantic
/usr/share/emacs/site-lisp/elpa/company-0.9.13/company-eclim hides /usr/share/emacs/site-lisp/elpa-src/company-0.9.13/company-eclim
/usr/share/emacs/site-lisp/elpa/company-0.9.13/files-tests hides /usr/share/emacs/site-lisp/elpa-src/company-0.9.13/files-tests
/usr/share/emacs/site-lisp/elpa/company-0.9.13/elisp-tests hides /usr/share/emacs/site-lisp/elpa-src/company-0.9.13/elisp-tests
/home/xiyueden/.config/emacs/elpa/company-0.10.2/company-keywords hides /usr/share/emacs/site-lisp/elpa-src/company-0.9.13/company-keywords
/usr/share/emacs/site-lisp/elpa/company-0.9.13/cmake-tests hides /usr/share/emacs/site-lisp/elpa-src/company-0.9.13/cmake-tests
/usr/share/emacs/site-lisp/elpa/csv-mode-1.22/csv-mode-autoloads hides /usr/share/emacs/site-lisp/elpa-src/csv-mode-1.22/csv-mode-autoloads
/usr/share/emacs/site-lisp/elpa/csv-mode-1.22/csv-mode hides /usr/share/emacs/site-lisp/elpa-src/csv-mode-1.22/csv-mode
/usr/share/emacs/site-lisp/elpa/csv-mode-1.22/csv-mode-tests hides /usr/share/emacs/site-lisp/elpa-src/csv-mode-1.22/csv-mode-tests
/usr/share/emacs/site-lisp/elpa/csv-mode-1.22/csv-mode-pkg hides /usr/share/emacs/site-lisp/elpa-src/csv-mode-1.22/csv-mode-pkg
/usr/share/emacs/site-lisp/elpa/dash-2.19.1/dash hides /usr/share/emacs/site-lisp/elpa-src/dash-2.19.1/dash
/usr/share/emacs/site-lisp/elpa/dash-2.19.1/dash-pkg hides /usr/share/emacs/site-lisp/elpa-src/dash-2.19.1/dash-pkg
/usr/share/emacs/site-lisp/elpa/dash-2.19.1/dash-autoloads hides /usr/share/emacs/site-lisp/elpa-src/dash-2.19.1/dash-autoloads
/usr/share/emacs/site-lisp/elpa/debian-el-37/debian-el-autoloads hides /usr/share/emacs/site-lisp/elpa-src/debian-el-37/debian-el-autoloads
/usr/share/emacs/site-lisp/elpa/debian-el-37/apt-sources hides /usr/share/emacs/site-lisp/elpa-src/debian-el-37/apt-sources
/usr/share/emacs/site-lisp/elpa/debian-el-37/debian-bug hides /usr/share/emacs/site-lisp/elpa-src/debian-el-37/debian-bug
/usr/share/emacs/site-lisp/elpa/debian-el-37/apt-utils hides /usr/share/emacs/site-lisp/elpa-src/debian-el-37/apt-utils
/usr/share/emacs/site-lisp/elpa/debian-el-37/debian-el-pkg hides /usr/share/emacs/site-lisp/elpa-src/debian-el-37/debian-el-pkg
/usr/share/emacs/site-lisp/elpa/debian-el-37/debian-autoloads hides /usr/share/emacs/site-lisp/elpa-src/debian-el-37/debian-autoloads
/usr/share/emacs/site-lisp/elpa/debian-el-37/gnus-BTS hides /usr/share/emacs/site-lisp/elpa-src/debian-el-37/gnus-BTS
/usr/share/emacs/site-lisp/elpa/debian-el-37/deb-view hides /usr/share/emacs/site-lisp/elpa-src/debian-el-37/deb-view
/usr/share/emacs/site-lisp/elpa/debian-el-37/debian-el hides /usr/share/emacs/site-lisp/elpa-src/debian-el-37/debian-el
/usr/share/emacs/site-lisp/elpa/debian-el-37/preseed hides /usr/share/emacs/site-lisp/elpa-src/debian-el-37/preseed
/usr/share/emacs/site-lisp/elpa/devscripts-40/devscripts hides /usr/share/emacs/site-lisp/elpa-src/devscripts-40/devscripts
/usr/share/emacs/site-lisp/elpa/devscripts-40/devscripts-autoloads hides /usr/share/emacs/site-lisp/elpa-src/devscripts-40/devscripts-autoloads
/usr/share/emacs/site-lisp/elpa/devscripts-40/pbuilder-mode hides /usr/share/emacs/site-lisp/elpa-src/devscripts-40/pbuilder-mode
/usr/share/emacs/site-lisp/elpa/devscripts-40/devscripts-pkg hides /usr/share/emacs/site-lisp/elpa-src/devscripts-40/devscripts-pkg
/usr/share/emacs/site-lisp/elpa/devscripts-40/pbuilder-log-view-mode hides /usr/share/emacs/site-lisp/elpa-src/devscripts-40/pbuilder-log-view-mode
/home/xiyueden/.config/emacs/elpa/diminish-0.46/diminish-pkg hides /usr/share/emacs/site-lisp/elpa-src/diminish-0.45/diminish-pkg
/home/xiyueden/.config/emacs/elpa/diminish-0.46/diminish hides /usr/share/emacs/site-lisp/elpa-src/diminish-0.45/diminish
/home/xiyueden/.config/emacs/elpa/diminish-0.46/diminish-autoloads hides /usr/share/emacs/site-lisp/elpa-src/diminish-0.45/diminish-autoloads
/usr/share/emacs/site-lisp/elpa/dockerfile-mode-1.7/dockerfile-mode hides /usr/share/emacs/site-lisp/elpa-src/dockerfile-mode-1.7/dockerfile-mode
/usr/share/emacs/site-lisp/elpa/dockerfile-mode-1.7/dockerfile-mode-autoloads hides /usr/share/emacs/site-lisp/elpa-src/dockerfile-mode-1.7/dockerfile-mode-autoloads
/usr/share/emacs/site-lisp/elpa/dockerfile-mode-1.7/dockerfile-mode-pkg hides /usr/share/emacs/site-lisp/elpa-src/dockerfile-mode-1.7/dockerfile-mode-pkg
/usr/share/emacs/site-lisp/elpa/dpkg-dev-el-37.0/debian-bts-control hides /usr/share/emacs/site-lisp/elpa-src/dpkg-dev-el-37.0/debian-bts-control
/usr/share/emacs/site-lisp/elpa/dpkg-dev-el-37.0/debian-changelog-mode hides /usr/share/emacs/site-lisp/elpa-src/dpkg-dev-el-37.0/debian-changelog-mode
/usr/share/emacs/site-lisp/elpa/dpkg-dev-el-37.0/dpkg-dev-el-autoloads hides /usr/share/emacs/site-lisp/elpa-src/dpkg-dev-el-37.0/dpkg-dev-el-autoloads
/usr/share/emacs/site-lisp/elpa/dpkg-dev-el-37.0/dpkg-dev-el-pkg hides /usr/share/emacs/site-lisp/elpa-src/dpkg-dev-el-37.0/dpkg-dev-el-pkg
/usr/share/emacs/site-lisp/elpa/debian-el-37/debian-autoloads hides /usr/share/emacs/site-lisp/elpa-src/dpkg-dev-el-37.0/debian-autoloads
/usr/share/emacs/site-lisp/elpa/dpkg-dev-el-37.0/dpkg-dev-el hides /usr/share/emacs/site-lisp/elpa-src/dpkg-dev-el-37.0/dpkg-dev-el
/usr/share/emacs/site-lisp/elpa/dpkg-dev-el-37.0/debian-control-mode hides /usr/share/emacs/site-lisp/elpa-src/dpkg-dev-el-37.0/debian-control-mode
/usr/share/emacs/site-lisp/elpa/dpkg-dev-el-37.0/debian-copyright hides /usr/share/emacs/site-lisp/elpa-src/dpkg-dev-el-37.0/debian-copyright
/usr/share/emacs/site-lisp/elpa/dpkg-dev-el-37.0/readme-debian hides /usr/share/emacs/site-lisp/elpa-src/dpkg-dev-el-37.0/readme-debian
/home/xiyueden/.config/emacs/elpa/eproject-20180312.1642/eproject-perl hides /usr/share/emacs/site-lisp/elpa-src/eproject-1.5/eproject-perl
/home/xiyueden/.config/emacs/elpa/eproject-20180312.1642/eproject-javascript-bower hides /usr/share/emacs/site-lisp/elpa-src/eproject-1.5/eproject-javascript-bower
/home/xiyueden/.config/emacs/elpa/eproject-20180312.1642/eproject-autoloads hides /usr/share/emacs/site-lisp/elpa-src/eproject-1.5/eproject-autoloads
/home/xiyueden/.config/emacs/elpa/eproject-20180312.1642/eproject-javascript-grunt hides /usr/share/emacs/site-lisp/elpa-src/eproject-1.5/eproject-javascript-grunt
/usr/share/emacs/site-lisp/elpa/eproject-1.5/eproject-tests hides /usr/share/emacs/site-lisp/elpa-src/eproject-1.5/eproject-tests
/home/xiyueden/.config/emacs/elpa/eproject-20180312.1642/eproject-ruby hides /usr/share/emacs/site-lisp/elpa-src/eproject-1.5/eproject-ruby
/home/xiyueden/.config/emacs/elpa/eproject-20180312.1642/eproject-clojure-leiningen hides /usr/share/emacs/site-lisp/elpa-src/eproject-1.5/eproject-clojure-leiningen
/home/xiyueden/.config/emacs/elpa/eproject-20180312.1642/eproject-extras hides /usr/share/emacs/site-lisp/elpa-src/eproject-1.5/eproject-extras
/home/xiyueden/.config/emacs/elpa/eproject-20180312.1642/eproject-python hides /usr/share/emacs/site-lisp/elpa-src/eproject-1.5/eproject-python
/home/xiyueden/.config/emacs/elpa/eproject-20180312.1642/eproject-javascript-npm hides /usr/share/emacs/site-lisp/elpa-src/eproject-1.5/eproject-javascript-npm
/home/xiyueden/.config/emacs/elpa/eproject-20180312.1642/eproject-php-composer hides /usr/share/emacs/site-lisp/elpa-src/eproject-1.5/eproject-php-composer
/home/xiyueden/.config/emacs/elpa/eproject-20180312.1642/eproject hides /usr/share/emacs/site-lisp/elpa-src/eproject-1.5/eproject
/home/xiyueden/.config/emacs/elpa/eproject-20180312.1642/eproject-arduino hides /usr/share/emacs/site-lisp/elpa-src/eproject-1.5/eproject-arduino
/home/xiyueden/.config/emacs/elpa/eproject-20180312.1642/eproject-ruby-on-rails hides /usr/share/emacs/site-lisp/elpa-src/eproject-1.5/eproject-ruby-on-rails
/home/xiyueden/.config/emacs/elpa/eproject-20180312.1642/eproject-pkg hides /usr/share/emacs/site-lisp/elpa-src/eproject-1.5/eproject-pkg
/home/xiyueden/.config/emacs/elpa/eproject-20180312.1642/eproject-android hides /usr/share/emacs/site-lisp/elpa-src/eproject-1.5/eproject-android
/home/xiyueden/.config/emacs/elpa/folding-20231003.959/folding hides /usr/share/emacs/site-lisp/elpa-src/folding-20220110.1718/folding
/home/xiyueden/.config/emacs/elpa/folding-20231003.959/folding-autoloads hides /usr/share/emacs/site-lisp/elpa-src/folding-20220110.1718/folding-autoloads
/home/xiyueden/.config/emacs/elpa/folding-20231003.959/folding-pkg hides /usr/share/emacs/site-lisp/elpa-src/folding-20220110.1718/folding-pkg
/usr/share/emacs/site-lisp/elpa/git-commit-3.3.0/git-commit hides /usr/share/emacs/site-lisp/elpa-src/git-commit-3.3.0/git-commit
/usr/share/emacs/site-lisp/elpa/git-commit-3.3.0/git-commit-autoloads hides /usr/share/emacs/site-lisp/elpa-src/git-commit-3.3.0/git-commit-autoloads
/usr/share/emacs/site-lisp/elpa/git-commit-3.3.0/git-commit-pkg hides /usr/share/emacs/site-lisp/elpa-src/git-commit-3.3.0/git-commit-pkg
/home/xiyueden/.config/emacs/elpa/git-modes-1.4.2/git-modes hides /usr/share/emacs/site-lisp/elpa-src/git-modes-1.4.0/git-modes
/home/xiyueden/.config/emacs/elpa/git-modes-1.4.2/git-modes-pkg hides /usr/share/emacs/site-lisp/elpa-src/git-modes-1.4.0/git-modes-pkg
/home/xiyueden/.config/emacs/elpa/git-modes-1.4.2/git-modes-autoloads hides /usr/share/emacs/site-lisp/elpa-src/git-modes-1.4.0/git-modes-autoloads
/usr/share/emacs/site-lisp/elpa/gitattributes-mode-1.4.0/gitattributes-mode-pkg hides /usr/share/emacs/site-lisp/elpa-src/gitattributes-mode-1.4.0/gitattributes-mode-pkg
/usr/share/emacs/site-lisp/elpa/gitattributes-mode-1.4.0/gitattributes-mode-autoloads hides /usr/share/emacs/site-lisp/elpa-src/gitattributes-mode-1.4.0/gitattributes-mode-autoloads
/home/xiyueden/.config/emacs/elpa/git-modes-1.4.2/gitattributes-mode hides /usr/share/emacs/site-lisp/elpa-src/gitattributes-mode-1.4.0/gitattributes-mode
/usr/share/emacs/site-lisp/elpa/gitconfig-mode-1.4.0/gitconfig-mode-autoloads hides /usr/share/emacs/site-lisp/elpa-src/gitconfig-mode-1.4.0/gitconfig-mode-autoloads
/usr/share/emacs/site-lisp/elpa/gitconfig-mode-1.4.0/gitconfig-mode-pkg hides /usr/share/emacs/site-lisp/elpa-src/gitconfig-mode-1.4.0/gitconfig-mode-pkg
/home/xiyueden/.config/emacs/elpa/git-modes-1.4.2/gitconfig-mode hides /usr/share/emacs/site-lisp/elpa-src/gitconfig-mode-1.4.0/gitconfig-mode
/usr/share/emacs/site-lisp/elpa/gitignore-mode-1.4.0/gitignore-mode-pkg hides /usr/share/emacs/site-lisp/elpa-src/gitignore-mode-1.4.0/gitignore-mode-pkg
/usr/share/emacs/site-lisp/elpa/gitignore-mode-1.4.0/gitignore-mode-autoloads hides /usr/share/emacs/site-lisp/elpa-src/gitignore-mode-1.4.0/gitignore-mode-autoloads
/home/xiyueden/.config/emacs/elpa/git-modes-1.4.2/gitignore-mode hides /usr/share/emacs/site-lisp/elpa-src/gitignore-mode-1.4.0/gitignore-mode
/home/xiyueden/.config/emacs/elpa/gnuplot-0.8.1/gnuplot hides /usr/share/emacs/site-lisp/elpa-src/gnuplot-0.8.0/gnuplot
/home/xiyueden/.config/emacs/elpa/gnuplot-0.8.1/gnuplot-autoloads hides /usr/share/emacs/site-lisp/elpa-src/gnuplot-0.8.0/gnuplot-autoloads
/usr/share/emacs/site-lisp/elpa/debian-el-37/debian-autoloads hides /usr/share/emacs/site-lisp/elpa-src/gnuplot-0.8.0/debian-autoloads
/home/xiyueden/.config/emacs/elpa/gnuplot-0.8.1/gnuplot-pkg hides /usr/share/emacs/site-lisp/elpa-src/gnuplot-0.8.0/gnuplot-pkg
/home/xiyueden/.config/emacs/elpa/gnuplot-0.8.1/gnuplot-context hides /usr/share/emacs/site-lisp/elpa-src/gnuplot-0.8.0/gnuplot-context
/home/xiyueden/.config/emacs/elpa/gnuplot-0.8.1/gnuplot-gui hides /usr/share/emacs/site-lisp/elpa-src/gnuplot-0.8.0/gnuplot-gui
/usr/share/emacs/site-lisp/elpa/go-mode-1.6.0/go-mode hides /usr/share/emacs/site-lisp/elpa-src/go-mode-1.6.0/go-mode
/usr/share/emacs/site-lisp/elpa/go-mode-1.6.0/go-guru hides /usr/share/emacs/site-lisp/elpa-src/go-mode-1.6.0/go-guru
/usr/share/emacs/site-lisp/elpa/go-mode-1.6.0/go-mode-pkg hides /usr/share/emacs/site-lisp/elpa-src/go-mode-1.6.0/go-mode-pkg
/usr/share/emacs/site-lisp/elpa/go-mode-1.6.0/go-mode-autoloads hides /usr/share/emacs/site-lisp/elpa-src/go-mode-1.6.0/go-mode-autoloads
/usr/share/emacs/site-lisp/elpa/go-mode-1.6.0/go-rename hides /usr/share/emacs/site-lisp/elpa-src/go-mode-1.6.0/go-rename
/usr/share/emacs/site-lisp/elpa/graphviz-dot-mode-0.4.2/graphviz-dot-mode-autoloads hides /usr/share/emacs/site-lisp/elpa-src/graphviz-dot-mode-0.4.2/graphviz-dot-mode-autoloads
/usr/share/emacs/site-lisp/elpa/graphviz-dot-mode-0.4.2/company-graphviz-dot hides /usr/share/emacs/site-lisp/elpa-src/graphviz-dot-mode-0.4.2/company-graphviz-dot
/usr/share/emacs/site-lisp/elpa/graphviz-dot-mode-0.4.2/graphviz-dot-mode-pkg hides /usr/share/emacs/site-lisp/elpa-src/graphviz-dot-mode-0.4.2/graphviz-dot-mode-pkg
/usr/share/emacs/site-lisp/elpa/graphviz-dot-mode-0.4.2/graphviz-dot-mode hides /usr/share/emacs/site-lisp/elpa-src/graphviz-dot-mode-0.4.2/graphviz-dot-mode
/home/xiyueden/.config/emacs/elpa/helm-3.9.6/helm-font hides /usr/share/emacs/site-lisp/elpa-src/helm-3.8.4/helm-font
/home/xiyueden/.config/emacs/elpa/helm-3.9.6/helm-locate hides /usr/share/emacs/site-lisp/elpa-src/helm-3.8.4/helm-locate
/home/xiyueden/.config/emacs/elpa/helm-3.9.6/helm-net hides /usr/share/emacs/site-lisp/elpa-src/helm-3.8.4/helm-net
/home/xiyueden/.config/emacs/elpa/helm-3.9.6/helm-id-utils hides /usr/share/emacs/site-lisp/elpa-src/helm-3.8.4/helm-id-utils
/home/xiyueden/.config/emacs/elpa/helm-3.9.6/helm-x-files hides /usr/share/emacs/site-lisp/elpa-src/helm-3.8.4/helm-x-files
/home/xiyueden/.config/emacs/elpa/helm-3.9.6/helm-eval hides /usr/share/emacs/site-lisp/elpa-src/helm-3.8.4/helm-eval
/home/xiyueden/.config/emacs/elpa/helm-3.9.6/helm-eshell hides /usr/share/emacs/site-lisp/elpa-src/helm-3.8.4/helm-eshell
/home/xiyueden/.config/emacs/elpa/helm-3.9.6/helm-find hides /usr/share/emacs/site-lisp/elpa-src/helm-3.8.4/helm-find
/home/xiyueden/.config/emacs/elpa/helm-3.9.6/helm-global-bindings hides /usr/share/emacs/site-lisp/elpa-src/helm-3.8.4/helm-global-bindings
/home/xiyueden/.config/emacs/elpa/helm-3.9.6/helm-occur hides /usr/share/emacs/site-lisp/elpa-src/helm-3.8.4/helm-occur
/usr/share/emacs/site-lisp/elpa/helm-3.8.4/helm-comint hides /usr/share/emacs/site-lisp/elpa-src/helm-3.8.4/helm-comint
/home/xiyueden/.config/emacs/elpa/helm-3.9.6/helm-info hides /usr/share/emacs/site-lisp/elpa-src/helm-3.8.4/helm-info
/home/xiyueden/.config/emacs/elpa/helm-3.9.6/helm-mode hides /usr/share/emacs/site-lisp/elpa-src/helm-3.8.4/helm-mode
/home/xiyueden/.config/emacs/elpa/helm-3.9.6/helm-bookmark hides /usr/share/emacs/site-lisp/elpa-src/helm-3.8.4/helm-bookmark
/usr/share/emacs/site-lisp/elpa/helm-3.8.4/helm-config hides /usr/share/emacs/site-lisp/elpa-src/helm-3.8.4/helm-config
/home/xiyueden/.config/emacs/elpa/helm-3.9.6/helm-tags hides /usr/share/emacs/site-lisp/elpa-src/helm-3.8.4/helm-tags
/home/xiyueden/.config/emacs/elpa/helm-3.9.6/helm-imenu hides /usr/share/emacs/site-lisp/elpa-src/helm-3.8.4/helm-imenu
/home/xiyueden/.config/emacs/elpa/helm-3.9.6/helm-color hides /usr/share/emacs/site-lisp/elpa-src/helm-3.8.4/helm-color
/home/xiyueden/.config/emacs/elpa/helm-3.9.6/helm-regexp hides /usr/share/emacs/site-lisp/elpa-src/helm-3.8.4/helm-regexp
/home/xiyueden/.config/emacs/elpa/helm-3.9.6/helm-external hides /usr/share/emacs/site-lisp/elpa-src/helm-3.8.4/helm-external
/home/xiyueden/.config/emacs/elpa/helm-3.9.6/helm-types hides /usr/share/emacs/site-lisp/elpa-src/helm-3.8.4/helm-types
/home/xiyueden/.config/emacs/elpa/helm-3.9.6/helm-pkg hides /usr/share/emacs/site-lisp/elpa-src/helm-3.8.4/helm-pkg
/home/xiyueden/.config/emacs/elpa/helm-3.9.6/helm-misc hides /usr/share/emacs/site-lisp/elpa-src/helm-3.8.4/helm-misc
/home/xiyueden/.config/emacs/elpa/helm-3.9.6/helm-ring hides /usr/share/emacs/site-lisp/elpa-src/helm-3.8.4/helm-ring
/home/xiyueden/.config/emacs/elpa/helm-3.9.6/helm-sys hides /usr/share/emacs/site-lisp/elpa-src/helm-3.8.4/helm-sys
/home/xiyueden/.config/emacs/elpa/helm-3.9.6/helm-semantic hides /usr/share/emacs/site-lisp/elpa-src/helm-3.8.4/helm-semantic
/home/xiyueden/.config/emacs/elpa/helm-3.9.6/helm-easymenu hides /usr/share/emacs/site-lisp/elpa-src/helm-3.8.4/helm-easymenu
/home/xiyueden/.config/emacs/elpa/helm-3.9.6/helm-grep hides /usr/share/emacs/site-lisp/elpa-src/helm-3.8.4/helm-grep
/home/xiyueden/.config/emacs/elpa/helm-3.9.6/helm-autoloads hides /usr/share/emacs/site-lisp/elpa-src/helm-3.8.4/helm-autoloads
/home/xiyueden/.config/emacs/elpa/helm-3.9.6/helm-man hides /usr/share/emacs/site-lisp/elpa-src/helm-3.8.4/helm-man
/home/xiyueden/.config/emacs/elpa/helm-3.9.6/helm-adaptive hides /usr/share/emacs/site-lisp/elpa-src/helm-3.8.4/helm-adaptive
/home/xiyueden/.config/emacs/elpa/helm-3.9.6/helm-files hides /usr/share/emacs/site-lisp/elpa-src/helm-3.8.4/helm-files
/home/xiyueden/.config/emacs/elpa/helm-3.9.6/helm-elisp hides /usr/share/emacs/site-lisp/elpa-src/helm-3.8.4/helm-elisp
/home/xiyueden/.config/emacs/elpa/helm-3.9.6/helm-help hides /usr/share/emacs/site-lisp/elpa-src/helm-3.8.4/helm-help
/usr/share/emacs/site-lisp/elpa/helm-3.8.4/helm-shell hides /usr/share/emacs/site-lisp/elpa-src/helm-3.8.4/helm-shell
/home/xiyueden/.config/emacs/elpa/helm-3.9.6/helm-utils hides /usr/share/emacs/site-lisp/elpa-src/helm-3.8.4/helm-utils
/home/xiyueden/.config/emacs/elpa/helm-3.9.6/helm-dabbrev hides /usr/share/emacs/site-lisp/elpa-src/helm-3.8.4/helm-dabbrev
/usr/share/emacs/site-lisp/elpa/helm-3.8.4/helm-elisp-package hides /usr/share/emacs/site-lisp/elpa-src/helm-3.8.4/helm-elisp-package
/home/xiyueden/.config/emacs/elpa/helm-3.9.6/helm-command hides /usr/share/emacs/site-lisp/elpa-src/helm-3.8.4/helm-command
/home/xiyueden/.config/emacs/elpa/helm-3.9.6/helm-buffers hides /usr/share/emacs/site-lisp/elpa-src/helm-3.8.4/helm-buffers
/home/xiyueden/.config/emacs/elpa/helm-3.9.6/helm-for-files hides /usr/share/emacs/site-lisp/elpa-src/helm-3.8.4/helm-for-files
/home/xiyueden/.config/emacs/elpa/helm-core-3.9.6/helm hides /usr/share/emacs/site-lisp/elpa-src/helm-core-3.8.4/helm
/home/xiyueden/.config/emacs/elpa/helm-core-3.9.6/helm-core-pkg hides /usr/share/emacs/site-lisp/elpa-src/helm-core-3.8.4/helm-core-pkg
/home/xiyueden/.config/emacs/elpa/helm-core-3.9.6/helm-lib hides /usr/share/emacs/site-lisp/elpa-src/helm-core-3.8.4/helm-lib
/home/xiyueden/.config/emacs/elpa/helm-core-3.9.6/helm-source hides /usr/share/emacs/site-lisp/elpa-src/helm-core-3.8.4/helm-source
/home/xiyueden/.config/emacs/elpa/helm-core-3.9.6/helm-core-autoloads hides /usr/share/emacs/site-lisp/elpa-src/helm-core-3.8.4/helm-core-autoloads
/home/xiyueden/.config/emacs/elpa/helm-core-3.9.6/helm-multi-match hides /usr/share/emacs/site-lisp/elpa-src/helm-core-3.8.4/helm-multi-match
/home/xiyueden/.config/emacs/elpa/htmlize-1.57/htmlize hides /usr/share/emacs/site-lisp/elpa-src/htmlize-1.56/htmlize
/home/xiyueden/.config/emacs/elpa/htmlize-1.57/htmlize-autoloads hides /usr/share/emacs/site-lisp/elpa-src/htmlize-1.56/htmlize-autoloads
/home/xiyueden/.config/emacs/elpa/htmlize-1.57/htmlize-pkg hides /usr/share/emacs/site-lisp/elpa-src/htmlize-1.56/htmlize-pkg
/home/xiyueden/.config/emacs/elpa/initsplit-20160919.1818/initsplit hides /usr/share/emacs/site-lisp/elpa-src/initsplit-1.8/initsplit
/usr/share/emacs/site-lisp/elpa/initsplit-1.8/initsplit-test hides /usr/share/emacs/site-lisp/elpa-src/initsplit-1.8/initsplit-test
/home/xiyueden/.config/emacs/elpa/initsplit-20160919.1818/initsplit-autoloads hides /usr/share/emacs/site-lisp/elpa-src/initsplit-1.8/initsplit-autoloads
/home/xiyueden/.config/emacs/elpa/initsplit-20160919.1818/initsplit-pkg hides /usr/share/emacs/site-lisp/elpa-src/initsplit-1.8/initsplit-pkg
/home/xiyueden/.config/emacs/elpa/js2-mode-20230408/js2-old-indent hides /usr/share/emacs/site-lisp/elpa-src/js2-mode-20201220/js2-old-indent
/home/xiyueden/.config/emacs/elpa/js2-mode-20230408/js2-mode hides /usr/share/emacs/site-lisp/elpa-src/js2-mode-20201220/js2-mode
/home/xiyueden/.config/emacs/elpa/js2-mode-20230408/js2-imenu-extras hides /usr/share/emacs/site-lisp/elpa-src/js2-mode-20201220/js2-imenu-extras
/home/xiyueden/.config/emacs/elpa/js2-mode-20230408/js2-mode-pkg hides /usr/share/emacs/site-lisp/elpa-src/js2-mode-20201220/js2-mode-pkg
/home/xiyueden/.config/emacs/elpa/js2-mode-20230408/js2-mode-autoloads hides /usr/share/emacs/site-lisp/elpa-src/js2-mode-20201220/js2-mode-autoloads
/usr/share/emacs/site-lisp/elpa/lintian-0.1/lintian-pkg hides /usr/share/emacs/site-lisp/elpa-src/lintian-0.1/lintian-pkg
/usr/share/emacs/site-lisp/elpa/lintian-0.1/lintian-autoloads hides /usr/share/emacs/site-lisp/elpa-src/lintian-0.1/lintian-autoloads
/usr/share/emacs/site-lisp/elpa/lintian-0.1/lintian hides /usr/share/emacs/site-lisp/elpa-src/lintian-0.1/lintian
/usr/share/emacs/site-lisp/elpa/magit-3.3.0/magit-remote hides /usr/share/emacs/site-lisp/elpa-src/magit-3.3.0/magit-remote
/usr/share/emacs/site-lisp/elpa/magit-3.3.0/git-rebase hides /usr/share/emacs/site-lisp/elpa-src/magit-3.3.0/git-rebase
/usr/share/emacs/site-lisp/elpa/magit-3.3.0/magit-bisect hides /usr/share/emacs/site-lisp/elpa-src/magit-3.3.0/magit-bisect
/usr/share/emacs/site-lisp/elpa/magit-3.3.0/magit-margin hides /usr/share/emacs/site-lisp/elpa-src/magit-3.3.0/magit-margin
/usr/share/emacs/site-lisp/elpa/magit-3.3.0/magit-merge hides /usr/share/emacs/site-lisp/elpa-src/magit-3.3.0/magit-merge
/usr/share/emacs/site-lisp/elpa/magit-3.3.0/magit-section hides /usr/share/emacs/site-lisp/elpa-src/magit-3.3.0/magit-section
/usr/share/emacs/site-lisp/elpa/magit-3.3.0/magit-patch hides /usr/share/emacs/site-lisp/elpa-src/magit-3.3.0/magit-patch
/usr/share/emacs/site-lisp/elpa/magit-3.3.0/magit-commit hides /usr/share/emacs/site-lisp/elpa-src/magit-3.3.0/magit-commit
/usr/share/emacs/site-lisp/elpa/magit-3.3.0/magit-autoloads hides /usr/share/emacs/site-lisp/elpa-src/magit-3.3.0/magit-autoloads
/usr/share/emacs/site-lisp/elpa/magit-3.3.0/magit-files hides /usr/share/emacs/site-lisp/elpa-src/magit-3.3.0/magit-files
/usr/share/emacs/site-lisp/elpa/magit-3.3.0/magit-stash hides /usr/share/emacs/site-lisp/elpa-src/magit-3.3.0/magit-stash
/usr/share/emacs/site-lisp/elpa/magit-3.3.0/magit-bookmark hides /usr/share/emacs/site-lisp/elpa-src/magit-3.3.0/magit-bookmark
/usr/share/emacs/site-lisp/elpa/magit-3.3.0/magit-submodule hides /usr/share/emacs/site-lisp/elpa-src/magit-3.3.0/magit-submodule
/usr/share/emacs/site-lisp/elpa/magit-3.3.0/magit-apply hides /usr/share/emacs/site-lisp/elpa-src/magit-3.3.0/magit-apply
/usr/share/emacs/site-lisp/elpa/magit-3.3.0/magit-repos hides /usr/share/emacs/site-lisp/elpa-src/magit-3.3.0/magit-repos
/usr/share/emacs/site-lisp/elpa/magit-3.3.0/magit-core hides /usr/share/emacs/site-lisp/elpa-src/magit-3.3.0/magit-core
/usr/share/emacs/site-lisp/elpa/magit-3.3.0/magit-subtree hides /usr/share/emacs/site-lisp/elpa-src/magit-3.3.0/magit-subtree
/usr/share/emacs/site-lisp/elpa/magit-3.3.0/magit-autorevert hides /usr/share/emacs/site-lisp/elpa-src/magit-3.3.0/magit-autorevert
/usr/share/emacs/site-lisp/elpa/magit-3.3.0/magit-gitignore hides /usr/share/emacs/site-lisp/elpa-src/magit-3.3.0/magit-gitignore
/usr/share/emacs/site-lisp/elpa/magit-3.3.0/magit-transient hides /usr/share/emacs/site-lisp/elpa-src/magit-3.3.0/magit-transient
/usr/share/emacs/site-lisp/elpa/magit-3.3.0/magit-extras hides /usr/share/emacs/site-lisp/elpa-src/magit-3.3.0/magit-extras
/usr/share/emacs/site-lisp/elpa/magit-3.3.0/magit-git hides /usr/share/emacs/site-lisp/elpa-src/magit-3.3.0/magit-git
/usr/share/emacs/site-lisp/elpa/magit-3.3.0/magit-notes hides /usr/share/emacs/site-lisp/elpa-src/magit-3.3.0/magit-notes
/usr/share/emacs/site-lisp/elpa/magit-3.3.0/magit-reflog hides /usr/share/emacs/site-lisp/elpa-src/magit-3.3.0/magit-reflog
/usr/share/emacs/site-lisp/elpa/magit-3.3.0/magit-mode hides /usr/share/emacs/site-lisp/elpa-src/magit-3.3.0/magit-mode
/usr/share/emacs/site-lisp/elpa/magit-3.3.0/magit-push hides /usr/share/emacs/site-lisp/elpa-src/magit-3.3.0/magit-push
/usr/share/emacs/site-lisp/elpa/magit-3.3.0/magit-tag hides /usr/share/emacs/site-lisp/elpa-src/magit-3.3.0/magit-tag
/usr/share/emacs/site-lisp/elpa/magit-3.3.0/magit-process hides /usr/share/emacs/site-lisp/elpa-src/magit-3.3.0/magit-process
/usr/share/emacs/site-lisp/elpa/magit-3.3.0/magit-ediff hides /usr/share/emacs/site-lisp/elpa-src/magit-3.3.0/magit-ediff
/usr/share/emacs/site-lisp/elpa/magit-3.3.0/magit hides /usr/share/emacs/site-lisp/elpa-src/magit-3.3.0/magit
/usr/share/emacs/site-lisp/elpa/magit-3.3.0/magit-imenu hides /usr/share/emacs/site-lisp/elpa-src/magit-3.3.0/magit-imenu
/usr/share/emacs/site-lisp/elpa/magit-3.3.0/magit-diff hides /usr/share/emacs/site-lisp/elpa-src/magit-3.3.0/magit-diff
/usr/share/emacs/site-lisp/elpa/magit-3.3.0/magit-clone hides /usr/share/emacs/site-lisp/elpa-src/magit-3.3.0/magit-clone
/usr/share/emacs/site-lisp/elpa/magit-3.3.0/magit-log hides /usr/share/emacs/site-lisp/elpa-src/magit-3.3.0/magit-log
/usr/share/emacs/site-lisp/elpa/magit-3.3.0/magit-utils hides /usr/share/emacs/site-lisp/elpa-src/magit-3.3.0/magit-utils
/usr/share/emacs/site-lisp/elpa/magit-3.3.0/magit-wip hides /usr/share/emacs/site-lisp/elpa-src/magit-3.3.0/magit-wip
/usr/share/emacs/site-lisp/elpa/magit-3.3.0/magit-branch hides /usr/share/emacs/site-lisp/elpa-src/magit-3.3.0/magit-branch
/usr/share/emacs/site-lisp/elpa/magit-3.3.0/magit-pull hides /usr/share/emacs/site-lisp/elpa-src/magit-3.3.0/magit-pull
/usr/share/emacs/site-lisp/elpa/magit-3.3.0/magit-reset hides /usr/share/emacs/site-lisp/elpa-src/magit-3.3.0/magit-reset
/usr/share/emacs/site-lisp/elpa/magit-3.3.0/magit-sequence hides /usr/share/emacs/site-lisp/elpa-src/magit-3.3.0/magit-sequence
/usr/share/emacs/site-lisp/elpa/magit-3.3.0/magit-status hides /usr/share/emacs/site-lisp/elpa-src/magit-3.3.0/magit-status
/usr/share/emacs/site-lisp/elpa/magit-3.3.0/magit-refs hides /usr/share/emacs/site-lisp/elpa-src/magit-3.3.0/magit-refs
/usr/share/emacs/site-lisp/elpa/magit-3.3.0/magit-obsolete hides /usr/share/emacs/site-lisp/elpa-src/magit-3.3.0/magit-obsolete
/usr/share/emacs/site-lisp/elpa/magit-3.3.0/magit-fetch hides /usr/share/emacs/site-lisp/elpa-src/magit-3.3.0/magit-fetch
/usr/share/emacs/site-lisp/elpa/magit-3.3.0/magit-worktree hides /usr/share/emacs/site-lisp/elpa-src/magit-3.3.0/magit-worktree
/usr/share/emacs/site-lisp/elpa/magit-3.3.0/magit-blame hides /usr/share/emacs/site-lisp/elpa-src/magit-3.3.0/magit-blame
/usr/share/emacs/site-lisp/elpa/magit-3.3.0/magit-pkg hides /usr/share/emacs/site-lisp/elpa-src/magit-3.3.0/magit-pkg
/usr/share/emacs/site-lisp/elpa/magit-section-3.3.0/magit-section-autoloads hides /usr/share/emacs/site-lisp/elpa-src/magit-section-3.3.0/magit-section-autoloads
/usr/share/emacs/site-lisp/elpa/magit-3.3.0/magit-section hides /usr/share/emacs/site-lisp/elpa-src/magit-section-3.3.0/magit-section
/usr/share/emacs/site-lisp/elpa/magit-section-3.3.0/magit-section-pkg hides /usr/share/emacs/site-lisp/elpa-src/magit-section-3.3.0/magit-section-pkg
/home/xiyueden/.config/emacs/elpa/markdown-mode-2.6/markdown-mode hides /usr/share/emacs/site-lisp/elpa-src/markdown-mode-2.5/markdown-mode
/home/xiyueden/.config/emacs/elpa/markdown-mode-2.6/markdown-mode-pkg hides /usr/share/emacs/site-lisp/elpa-src/markdown-mode-2.5/markdown-mode-pkg
/home/xiyueden/.config/emacs/elpa/markdown-mode-2.6/markdown-mode-autoloads hides /usr/share/emacs/site-lisp/elpa-src/markdown-mode-2.5/markdown-mode-autoloads
/home/xiyueden/.config/emacs/elpa/meson-mode-0.3/meson-mode hides /usr/share/emacs/site-lisp/elpa-src/meson-mode-0.2/meson-mode
/home/xiyueden/.config/emacs/elpa/meson-mode-0.3/utils hides /usr/share/emacs/site-lisp/elpa-src/meson-mode-0.2/utils
/home/xiyueden/.config/emacs/elpa/meson-mode-0.3/meson-mode-autoloads hides /usr/share/emacs/site-lisp/elpa-src/meson-mode-0.2/meson-mode-autoloads
/home/xiyueden/.config/emacs/elpa/meson-mode-0.3/meson-mode-pkg hides /usr/share/emacs/site-lisp/elpa-src/meson-mode-0.2/meson-mode-pkg
/usr/share/emacs/site-lisp/elpa/mu4e-1.8.14/mu4e-draft hides /usr/share/emacs/site-lisp/elpa-src/mu4e-1.8.14/mu4e-draft
/usr/share/emacs/site-lisp/elpa/mu4e-1.8.14/mu4e-view hides /usr/share/emacs/site-lisp/elpa-src/mu4e-1.8.14/mu4e-view
/usr/share/emacs/site-lisp/elpa/mu4e-1.8.14/mu4e-message hides /usr/share/emacs/site-lisp/elpa-src/mu4e-1.8.14/mu4e-message
/usr/share/emacs/site-lisp/elpa/mu4e-1.8.14/mu4e-helpers hides /usr/share/emacs/site-lisp/elpa-src/mu4e-1.8.14/mu4e-helpers
/usr/share/emacs/site-lisp/elpa/mu4e-1.8.14/mu4e-pkg hides /usr/share/emacs/site-lisp/elpa-src/mu4e-1.8.14/mu4e-pkg
/usr/share/emacs/site-lisp/elpa/mu4e-1.8.14/mu4e-bookmarks hides /usr/share/emacs/site-lisp/elpa-src/mu4e-1.8.14/mu4e-bookmarks
/usr/share/emacs/site-lisp/elpa/mu4e-1.8.14/mu4e-server hides /usr/share/emacs/site-lisp/elpa-src/mu4e-1.8.14/mu4e-server
/usr/share/emacs/site-lisp/elpa/mu4e-1.8.14/mu4e-contrib hides /usr/share/emacs/site-lisp/elpa-src/mu4e-1.8.14/mu4e-contrib
/usr/share/emacs/site-lisp/elpa/mu4e-1.8.14/mu4e-config hides /usr/share/emacs/site-lisp/elpa-src/mu4e-1.8.14/mu4e-config
/usr/share/emacs/site-lisp/elpa/mu4e-1.8.14/mu4e-autoloads hides /usr/share/emacs/site-lisp/elpa-src/mu4e-1.8.14/mu4e-autoloads
/usr/share/emacs/site-lisp/elpa/mu4e-1.8.14/mu4e-icalendar hides /usr/share/emacs/site-lisp/elpa-src/mu4e-1.8.14/mu4e-icalendar
/usr/share/emacs/site-lisp/elpa/mu4e-1.8.14/mu4e-mark hides /usr/share/emacs/site-lisp/elpa-src/mu4e-1.8.14/mu4e-mark
/usr/share/emacs/site-lisp/elpa/mu4e-1.8.14/mu4e-headers hides /usr/share/emacs/site-lisp/elpa-src/mu4e-1.8.14/mu4e-headers
/usr/share/emacs/site-lisp/elpa/mu4e-1.8.14/mu4e-org hides /usr/share/emacs/site-lisp/elpa-src/mu4e-1.8.14/mu4e-org
/usr/share/emacs/site-lisp/elpa/mu4e-1.8.14/mu4e hides /usr/share/emacs/site-lisp/elpa-src/mu4e-1.8.14/mu4e
/usr/share/emacs/site-lisp/elpa/mu4e-1.8.14/mu4e-contacts hides /usr/share/emacs/site-lisp/elpa-src/mu4e-1.8.14/mu4e-contacts
/usr/share/emacs/site-lisp/elpa/mu4e-1.8.14/mu4e-speedbar hides /usr/share/emacs/site-lisp/elpa-src/mu4e-1.8.14/mu4e-speedbar
/usr/share/emacs/site-lisp/elpa/mu4e-1.8.14/mu4e-vars hides /usr/share/emacs/site-lisp/elpa-src/mu4e-1.8.14/mu4e-vars
/usr/share/emacs/site-lisp/elpa/mu4e-1.8.14/mu4e-actions hides /usr/share/emacs/site-lisp/elpa-src/mu4e-1.8.14/mu4e-actions
/usr/share/emacs/site-lisp/elpa/mu4e-1.8.14/mu4e-main hides /usr/share/emacs/site-lisp/elpa-src/mu4e-1.8.14/mu4e-main
/usr/share/emacs/site-lisp/elpa/mu4e-1.8.14/mu4e-search hides /usr/share/emacs/site-lisp/elpa-src/mu4e-1.8.14/mu4e-search
/usr/share/emacs/site-lisp/elpa/mu4e-1.8.14/mu4e-context hides /usr/share/emacs/site-lisp/elpa-src/mu4e-1.8.14/mu4e-context
/usr/share/emacs/site-lisp/elpa/mu4e-1.8.14/mu4e-compose hides /usr/share/emacs/site-lisp/elpa-src/mu4e-1.8.14/mu4e-compose
/usr/share/emacs/site-lisp/elpa/mu4e-1.8.14/mu4e-lists hides /usr/share/emacs/site-lisp/elpa-src/mu4e-1.8.14/mu4e-lists
/usr/share/emacs/site-lisp/elpa/mu4e-1.8.14/mu4e-folders hides /usr/share/emacs/site-lisp/elpa-src/mu4e-1.8.14/mu4e-folders
/usr/share/emacs/site-lisp/elpa/mu4e-1.8.14/mu4e-update hides /usr/share/emacs/site-lisp/elpa-src/mu4e-1.8.14/mu4e-update
/usr/share/emacs/site-lisp/elpa/mutt-alias-1.4/mutt-alias hides /usr/share/emacs/site-lisp/elpa-src/mutt-alias-1.4/mutt-alias
/usr/share/emacs/site-lisp/elpa/mutt-alias-1.4/mutt-alias-pkg hides /usr/share/emacs/site-lisp/elpa-src/mutt-alias-1.4/mutt-alias-pkg
/usr/share/emacs/site-lisp/elpa/mutt-alias-1.4/mutt-alias-autoloads hides /usr/share/emacs/site-lisp/elpa-src/mutt-alias-1.4/mutt-alias-autoloads
/usr/share/emacs/site-lisp/elpa/muttrc-mode-1.2.1/muttrc-mode-autoloads hides /usr/share/emacs/site-lisp/elpa-src/muttrc-mode-1.2.1/muttrc-mode-autoloads
/usr/share/emacs/site-lisp/elpa/muttrc-mode-1.2.1/muttrc-mode hides /usr/share/emacs/site-lisp/elpa-src/muttrc-mode-1.2.1/muttrc-mode
/usr/share/emacs/site-lisp/elpa/muttrc-mode-1.2.1/muttrc-mode-pkg hides /usr/share/emacs/site-lisp/elpa-src/muttrc-mode-1.2.1/muttrc-mode-pkg
/usr/share/emacs/site-lisp/elpa/po-mode-0.21/po-mode-pkg hides /usr/share/emacs/site-lisp/elpa-src/po-mode-0.21/po-mode-pkg
/usr/share/emacs/site-lisp/elpa/po-mode-0.21/po-mode-autoloads hides /usr/share/emacs/site-lisp/elpa-src/po-mode-0.21/po-mode-autoloads
/usr/share/emacs/site-lisp/elpa/po-mode-0.21/po-mode hides /usr/share/emacs/site-lisp/elpa-src/po-mode-0.21/po-mode
/usr/share/emacs/site-lisp/elpa/pod-mode-1.3/pod-mode-pkg hides /usr/share/emacs/site-lisp/elpa-src/pod-mode-1.3/pod-mode-pkg
/usr/share/emacs/site-lisp/elpa/pod-mode-1.3/pod-mode-autoloads hides /usr/share/emacs/site-lisp/elpa-src/pod-mode-1.3/pod-mode-autoloads
/usr/share/emacs/site-lisp/elpa/pod-mode-1.3/pod-mode hides /usr/share/emacs/site-lisp/elpa-src/pod-mode-1.3/pod-mode
/home/xiyueden/.config/emacs/elpa/popup-0.5.9/popup hides /usr/share/emacs/site-lisp/elpa-src/popup-0.5.8/popup
/home/xiyueden/.config/emacs/elpa/popup-0.5.9/popup-pkg hides /usr/share/emacs/site-lisp/elpa-src/popup-0.5.8/popup-pkg
/home/xiyueden/.config/emacs/elpa/popup-0.5.9/popup-autoloads hides /usr/share/emacs/site-lisp/elpa-src/popup-0.5.8/popup-autoloads
/usr/share/emacs/site-lisp/elpa/py-isort-2016.1/py-isort hides /usr/share/emacs/site-lisp/elpa-src/py-isort-2016.1/py-isort
/usr/share/emacs/site-lisp/elpa/py-isort-2016.1/py-isort-autoloads hides /usr/share/emacs/site-lisp/elpa-src/py-isort-2016.1/py-isort-autoloads
/usr/share/emacs/site-lisp/elpa/py-isort-2016.1/py-isort-pkg hides /usr/share/emacs/site-lisp/elpa-src/py-isort-2016.1/py-isort-pkg
/home/xiyueden/.config/emacs/elpa/rust-mode-1.0.5/rust-mode-autoloads hides /usr/share/emacs/site-lisp/elpa-src/rust-mode-0.4.0/rust-mode-autoloads
/home/xiyueden/.config/emacs/elpa/rust-mode-1.0.5/rust-mode hides /usr/share/emacs/site-lisp/elpa-src/rust-mode-0.4.0/rust-mode
/home/xiyueden/.config/emacs/elpa/rust-mode-1.0.5/rust-mode-pkg hides /usr/share/emacs/site-lisp/elpa-src/rust-mode-0.4.0/rust-mode-pkg
/usr/share/emacs/site-lisp/elpa/scala-mode-0.23/scala-mode-map hides /usr/share/emacs/site-lisp/elpa-src/scala-mode-0.23/scala-mode-map
/usr/share/emacs/site-lisp/elpa/scala-mode-0.23/scala-mode-indent hides /usr/share/emacs/site-lisp/elpa-src/scala-mode-0.23/scala-mode-indent
/usr/share/emacs/site-lisp/elpa/scala-mode-0.23/scala-mode-syntax hides /usr/share/emacs/site-lisp/elpa-src/scala-mode-0.23/scala-mode-syntax
/usr/share/emacs/site-lisp/elpa/scala-mode-0.23/scala-mode-lib hides /usr/share/emacs/site-lisp/elpa-src/scala-mode-0.23/scala-mode-lib
/usr/share/emacs/site-lisp/elpa/scala-mode-0.23/scala-mode-pkg hides /usr/share/emacs/site-lisp/elpa-src/scala-mode-0.23/scala-mode-pkg
/usr/share/emacs/site-lisp/elpa/scala-mode-0.23/scala-mode-prettify-symbols hides /usr/share/emacs/site-lisp/elpa-src/scala-mode-0.23/scala-mode-prettify-symbols
/usr/share/emacs/site-lisp/elpa/scala-mode-0.23/scala-mode hides /usr/share/emacs/site-lisp/elpa-src/scala-mode-0.23/scala-mode
/usr/share/emacs/site-lisp/elpa/scala-mode-0.23/scala-mode-autoloads hides /usr/share/emacs/site-lisp/elpa-src/scala-mode-0.23/scala-mode-autoloads
/usr/share/emacs/site-lisp/elpa/scala-mode-0.23/scala-mode-paragraph hides /usr/share/emacs/site-lisp/elpa-src/scala-mode-0.23/scala-mode-paragraph
/usr/share/emacs/site-lisp/elpa/scala-mode-0.23/scala-mode-imenu hides /usr/share/emacs/site-lisp/elpa-src/scala-mode-0.23/scala-mode-imenu
/usr/share/emacs/site-lisp/elpa/scala-mode-0.23/scala-mode-fontlock hides /usr/share/emacs/site-lisp/elpa-src/scala-mode-0.23/scala-mode-fontlock
/home/xiyueden/.config/emacs/elpa/session-20210422.53/session-autoloads hides /usr/share/emacs/site-lisp/elpa-src/session-2.4.2/session-autoloads
/home/xiyueden/.config/emacs/elpa/session-20210422.53/session hides /usr/share/emacs/site-lisp/elpa-src/session-2.4.2/session
/home/xiyueden/.config/emacs/elpa/session-20210422.53/session-pkg hides /usr/share/emacs/site-lisp/elpa-src/session-2.4.2/session-pkg
/home/xiyueden/.config/emacs/elpa/tabbar-20180726.1735/tabbar-pkg hides /usr/share/emacs/site-lisp/elpa-src/tabbar-20160524/tabbar-pkg
/usr/share/emacs/site-lisp/elpa/tabbar-20160524/tabbar-window hides /usr/share/emacs/site-lisp/elpa-src/tabbar-20160524/tabbar-window
/usr/share/emacs/site-lisp/elpa/tabbar-20160524/one-buffer-one-frame hides /usr/share/emacs/site-lisp/elpa-src/tabbar-20160524/one-buffer-one-frame
/usr/share/emacs/site-lisp/elpa/tabbar-20160524/aquamacs-tools hides /usr/share/emacs/site-lisp/elpa-src/tabbar-20160524/aquamacs-tools
/usr/share/emacs/site-lisp/elpa/tabbar-20160524/aquamacs-compat hides /usr/share/emacs/site-lisp/elpa-src/tabbar-20160524/aquamacs-compat
/home/xiyueden/.config/emacs/elpa/tabbar-20180726.1735/tabbar-autoloads hides /usr/share/emacs/site-lisp/elpa-src/tabbar-20160524/tabbar-autoloads
/usr/share/emacs/site-lisp/elpa/tabbar-20160524/aquamacs-tabbar hides /usr/share/emacs/site-lisp/elpa-src/tabbar-20160524/aquamacs-tabbar
/home/xiyueden/.config/emacs/elpa/tabbar-20180726.1735/tabbar hides /usr/share/emacs/site-lisp/elpa-src/tabbar-20160524/tabbar
/usr/share/emacs/site-lisp/elpa/vterm-0.0.2/vterm-load-path hides /usr/share/emacs/site-lisp/elpa-src/vterm-0.0.2/vterm-load-path
/home/xiyueden/.config/emacs/elpa/vterm-20230417.424/vterm hides /usr/share/emacs/site-lisp/elpa-src/vterm-0.0.2/vterm
/home/xiyueden/.config/emacs/elpa/vterm-20230417.424/vterm-pkg hides /usr/share/emacs/site-lisp/elpa-src/vterm-0.0.2/vterm-pkg
/home/xiyueden/.config/emacs/elpa/vterm-20230417.424/vterm-autoloads hides /usr/share/emacs/site-lisp/elpa-src/vterm-0.0.2/vterm-autoloads
/home/xiyueden/.config/emacs/elpa/web-mode-17.3.15/web-mode-pkg hides /usr/share/emacs/site-lisp/elpa-src/web-mode-17.0.2/web-mode-pkg
/home/xiyueden/.config/emacs/elpa/web-mode-17.3.15/web-mode-autoloads hides /usr/share/emacs/site-lisp/elpa-src/web-mode-17.0.2/web-mode-autoloads
/home/xiyueden/.config/emacs/elpa/web-mode-17.3.15/web-mode hides /usr/share/emacs/site-lisp/elpa-src/web-mode-17.0.2/web-mode
/home/xiyueden/.config/emacs/elpa/with-editor-3.3.2/with-editor-pkg hides /usr/share/emacs/site-lisp/elpa-src/with-editor-3.0.5/with-editor-pkg
/home/xiyueden/.config/emacs/elpa/with-editor-3.3.2/with-editor-autoloads hides /usr/share/emacs/site-lisp/elpa-src/with-editor-3.0.5/with-editor-autoloads
/home/xiyueden/.config/emacs/elpa/with-editor-3.3.2/with-editor hides /usr/share/emacs/site-lisp/elpa-src/with-editor-3.0.5/with-editor
/home/xiyueden/.config/emacs/elpa/yaml-mode-0.0.16/yaml-mode-pkg hides /usr/share/emacs/site-lisp/elpa-src/yaml-mode-0.0.15/yaml-mode-pkg
/home/xiyueden/.config/emacs/elpa/yaml-mode-0.0.16/yaml-mode hides /usr/share/emacs/site-lisp/elpa-src/yaml-mode-0.0.15/yaml-mode
/home/xiyueden/.config/emacs/elpa/yaml-mode-0.0.16/yaml-mode-autoloads hides /usr/share/emacs/site-lisp/elpa-src/yaml-mode-0.0.15/yaml-mode-autoloads
/usr/share/emacs/site-lisp/elpa/yasnippet-0.14.0/yasnippet-autoloads hides /usr/share/emacs/site-lisp/elpa-src/yasnippet-0.14.0/yasnippet-autoloads
/usr/share/emacs/site-lisp/elpa/yasnippet-0.14.0/yasnippet-pkg hides /usr/share/emacs/site-lisp/elpa-src/yasnippet-0.14.0/yasnippet-pkg
/usr/share/emacs/site-lisp/elpa/yasnippet-0.14.0/yasnippet hides /usr/share/emacs/site-lisp/elpa-src/yasnippet-0.14.0/yasnippet
/home/xiyueden/.config/emacs/elpa/yasnippet-snippets-20230815.820/yasnippet-snippets hides /usr/share/emacs/site-lisp/elpa-src/yasnippet-snippets-20220713/yasnippet-snippets
/home/xiyueden/.config/emacs/elpa/yasnippet-snippets-20230815.820/yasnippet-snippets-pkg hides /usr/share/emacs/site-lisp/elpa-src/yasnippet-snippets-20220713/yasnippet-snippets-pkg
/home/xiyueden/.config/emacs/elpa/yasnippet-snippets-20230815.820/yasnippet-snippets-autoloads hides /usr/share/emacs/site-lisp/elpa-src/yasnippet-snippets-20220713/yasnippet-snippets-autoloads
/home/xiyueden/.config/emacs/elpa/zenburn-theme-2.8.0/zenburn-theme hides /usr/share/emacs/site-lisp/elpa-src/zenburn-theme-2.7.0/zenburn-theme
/home/xiyueden/.config/emacs/elpa/zenburn-theme-2.8.0/zenburn-theme-pkg hides /usr/share/emacs/site-lisp/elpa-src/zenburn-theme-2.7.0/zenburn-theme-pkg
/home/xiyueden/.config/emacs/elpa/zenburn-theme-2.8.0/zenburn-theme-autoloads hides /usr/share/emacs/site-lisp/elpa-src/zenburn-theme-2.7.0/zenburn-theme-autoloads
/usr/share/emacs/site-lisp/elpa/bind-key-2.4.1/bind-key hides /usr/share/emacs/29.1/lisp/use-package/bind-key
/home/xiyueden/.config/emacs/elpa/project-0.10.0/project hides /usr/share/emacs/29.1/lisp/progmodes/project
/home/xiyueden/.config/emacs/elpa/eldoc-1.14.0/eldoc hides /usr/share/emacs/29.1/lisp/emacs-lisp/eldoc
/home/xiyueden/.config/emacs/elpa/seq-2.24/seq hides /usr/share/emacs/29.1/lisp/emacs-lisp/seq
Features:
(shadow emacsbug noutline outline two-column magit-patch magit-subtree
magit-gitignore magit-ediff ediff ediff-merg ediff-mult ediff-wind
ediff-diff ediff-help ediff-init ediff-util misearch multi-isearch
tex-info tex texmathp texinfo texinfo-loaddefs macros cl-print help-fns
radix-tree tar-mode arc-mode archive-mode deb-view vterm magit-bookmark
bookmark tramp tramp-loaddefs trampver tramp-integration files-x
tramp-compat term ehelp find-func vterm-module yaml-ts-mode treesit
magit-extras face-remap 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 which-func imenu magit-diff smerge-mode diff
git-commit log-edit add-log magit-core magit-autorevert magit-margin
magit-transient magit-process with-editor shell pcomplete compat
magit-mode transient edmacro kmacro format-spec magit-git magit-section
dired-aux magit-utils crm dash jka-compr shr-color url-http url-gw
url-auth url-queue url-cache flow-fill mailalias mule-util matlab
matlab-scan matlab-syntax matlab-compat pulse color mm-archive sort
gnus-cite mail-extr textsec uni-scripts idna-mapping ucs-normalize
uni-confusable textsec-check gnus-async gnus-bcklg qp gnus-ml gnus-topic
cursor-sensor utf-7 nnfolder gnus-demon nnml ezgnus gnus-delay
gnus-draft gnus-agent gnus-srvr gnus-score score-mode nnvirtual nntp
gnus-cache gnus-msg gnus-art mm-uu mml2015 mm-view mml-smime smime dig
gnus-sum shr pixel-fill kinsoku url-file svg dom nndraft nnmh gnus-group
gnus-undo smtpmail gnus-start gnus-dbus dbus xml gnus-cloud nnimap
nnmail mail-source utf7 nnoo gnus-spec gnus-int gnus-range message
sendmail yank-media dired dired-loaddefs rfc822 mml mml-sec mm-decode
mm-bodies mm-encode mail-parse rfc2231 rfc2047 rfc2045 ietf-drums
mailabbrev gmm-utils mailheader gnus-win gnus nnheader gnus-util
mail-utils range mm-util mail-prsvr windmove flyspell ispell gnutls
network-stream puny nsm epa-file epa derived epg rfc6068 epg-config
rcirc parse-time iso8601 time-date term/xterm xterm comp comp-cstr rx
server cap-words superword subword vc-hg vc-git diff-mode vc-bzr vc-src
vc-sccs vc-svn vc-cvs vc-rcs log-view pcvs-util vc vc-dispatcher
bug-reference disp-table whitespace yasnippet-snippets yasnippet
cus-edit pp cus-start wid-edit company-oddmuse company-keywords
company-etags etags fileloop generator xref company-gtags
company-dabbrev-code company-dabbrev company-files company-clang
company-capf company-cmake company-semantic company-template
company-bbdb diminish company pcase init zenburn-theme
keychain-environment exec-path-from-shell icomplete cus-load
flymake-proc flymake project compile text-property-search comint
ansi-osc ansi-color ring warnings icons thingatpt advice cl-extra
help-mode use-package use-package-ensure use-package-delight
use-package-diminish use-package-bind-key bind-key easy-mmode
use-package-core display-line-numbers autorevert filenotify
auctex-autoloads tex-site bar-cursor-autoloads bm-autoloads
boxquote-autoloads buttercup-autoloads cmake-mode-autoloads
company-autoloads diminish-autoloads eldoc-autoloads eproject-autoloads
flutter-autoloads folding-autoloads git-modes-autoloads
gnuplot-autoloads helm-autoloads helm-core-autoloads async-autoloads
htmlize-autoloads initsplit-autoloads js2-mode-autoloads
markdown-mode-autoloads matlab-mode-autoloads meson-mode-autoloads
popup-autoloads project-autoloads rust-mode-autoloads session-autoloads
tabbar-autoloads vterm-autoloads web-mode-autoloads wfnames-autoloads
yaml-mode-autoloads yasnippet-snippets-autoloads zenburn-theme-autoloads
dpkg-dev-el debian-el finder-inf with-editor-autoloads info
compat-autoloads seq-autoloads 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 lcms2 dynamic-setting system-font-setting
font-render-setting cairo move-toolbar gtk x-toolkit xinput2 x multi-tty
make-network-process native-compile emacs)
Memory information:
((conses 16 1684572 132945)
(symbols 48 35974 3)
(strings 32 155751 28823)
(string-bytes 1 4601555)
(vectors 16 98583)
(vector-slots 8 2540442 155011)
(floats 8 607 2878)
(intervals 56 60456 1450)
(buffers 984 66))
^ permalink raw reply [flat|nested] 19+ messages in thread
* bug#67669: 29.1; Drop text suggesting using `and' to replace `if'
[not found] ` <handler.67669.B.170189926211616.ack@debbugs.gnu.org>
@ 2023-12-06 22:08 ` Xiyue Deng
0 siblings, 0 replies; 19+ messages in thread
From: Xiyue Deng @ 2023-12-06 22:08 UTC (permalink / raw)
To: 67669
[-- Attachment #1: Type: text/plain, Size: 79 bytes --]
Please see the following patch that whether it makes sense to drop that
part.
[-- Warning: decoded text below may be mangled, UTF-8 assumed --]
[-- Attachment #2: 0001-Drop-text-suggesting-using-and-to-replace-if-Bug-676.patch --]
[-- Type: text/x-diff, Size: 1259 bytes --]
From 0362b90b2ded998f8a4bcf307ca4b89de561beec Mon Sep 17 00:00:00 2001
From: Xiyue Deng <manphiz@gmail.com>
Date: Wed, 6 Dec 2023 13:38:51 -0800
Subject: [PATCH] Drop text suggesting using `and' to replace `if' (Bug#67669)
* doc/lispintro/emacs-lisp-intro.texi (kill-new function): drop
obsolete text that refers to an earlier version of the code example.
---
doc/lispintro/emacs-lisp-intro.texi | 4 +---
1 file changed, 1 insertion(+), 3 deletions(-)
diff --git a/doc/lispintro/emacs-lisp-intro.texi b/doc/lispintro/emacs-lisp-intro.texi
index d6627a2a1ca..c1e220518ca 100644
--- a/doc/lispintro/emacs-lisp-intro.texi
+++ b/doc/lispintro/emacs-lisp-intro.texi
@@ -8905,9 +8905,7 @@ The expression looks like this:
If an @code{interprogram-cut-function} exists, then Emacs executes
@code{funcall}, which in turn calls its first argument as a function
-and passes the remaining arguments to it. (Incidentally, as far as I
-can see, this @code{if} expression could be replaced by an @code{and}
-expression similar to the one in the first part of the function.)
+and passes the remaining arguments to it.
We are not going to discuss windowing systems and other programs
further, but merely note that this is a mechanism that enables GNU
--
2.39.2
[-- Attachment #3: Type: text/plain, Size: 16 bytes --]
--
Xiyue Deng
^ permalink raw reply related [flat|nested] 19+ messages in thread
* bug#67669: 29.1; Drop text suggesting using `and' to replace `if'
2023-12-06 21:47 bug#67669: 29.1; Drop text suggesting using `and' to replace `if' Xiyue Deng
[not found] ` <handler.67669.B.170189926211616.ack@debbugs.gnu.org>
@ 2023-12-07 6:28 ` Eli Zaretskii
2023-12-07 9:08 ` Xiyue Deng
1 sibling, 1 reply; 19+ messages in thread
From: Eli Zaretskii @ 2023-12-07 6:28 UTC (permalink / raw)
To: Xiyue Deng; +Cc: 67669
> From: Xiyue Deng <manphiz@gmail.com>
> Date: Wed, 06 Dec 2023 13:47:02 -0800
>
>
> In section "the `kill-new' function" - the third last paragraph to be
> precise - there are some texts in parentheses that discusses potentially
> using an `and' to replace the `if' statement being discussed. It looks
> like to be referring to an earlier version of the code example[1] before
> using the version from Emacs 22. Meanwhile, it looks like relying on
> the side effect of `and' to emulate an `if' may not be a good idea
> nowadays. So is it OK to drop this advice?
AFAIU, the relevant fragment is:
The expression looks like this:
(if interprogram-cut-function
(funcall interprogram-cut-function string (not replace))))
If an ‘interprogram-cut-function’ exists, then Emacs executes
‘funcall’, which in turn calls its first argument as a function and
passes the remaining arguments to it. (Incidentally, as far as I can
see, this ‘if’ expression could be replaced by an ‘and’ expression
similar to the one in the first part of the function.)
I don't see anything wrong here. Can you elaborate on why you think
the text in parentheses is inaccurate or incorrect or unclear?
Thanks.
^ permalink raw reply [flat|nested] 19+ messages in thread
* bug#67669: 29.1; Drop text suggesting using `and' to replace `if'
2023-12-07 6:28 ` Eli Zaretskii
@ 2023-12-07 9:08 ` Xiyue Deng
2023-12-07 10:16 ` Eli Zaretskii
0 siblings, 1 reply; 19+ messages in thread
From: Xiyue Deng @ 2023-12-07 9:08 UTC (permalink / raw)
To: Eli Zaretskii; +Cc: 67669
Hi Eli,
Eli Zaretskii <eliz@gnu.org> writes:
>> From: Xiyue Deng <manphiz@gmail.com>
>> Date: Wed, 06 Dec 2023 13:47:02 -0800
>>
>>
>> In section "the `kill-new' function" - the third last paragraph to be
>> precise - there are some texts in parentheses that discusses potentially
>> using an `and' to replace the `if' statement being discussed. It looks
>> like to be referring to an earlier version of the code example[1] before
>> using the version from Emacs 22. Meanwhile, it looks like relying on
>> the side effect of `and' to emulate an `if' may not be a good idea
>> nowadays. So is it OK to drop this advice?
>
> AFAIU, the relevant fragment is:
>
> The expression looks like this:
>
> (if interprogram-cut-function
> (funcall interprogram-cut-function string (not replace))))
>
> If an ‘interprogram-cut-function’ exists, then Emacs executes
> ‘funcall’, which in turn calls its first argument as a function and
> passes the remaining arguments to it. (Incidentally, as far as I can
> see, this ‘if’ expression could be replaced by an ‘and’ expression
> similar to the one in the first part of the function.)
>
> I don't see anything wrong here. Can you elaborate on why you think
> the text in parentheses is inaccurate or incorrect or unclear?
Sorry I wasn't very clear. I was referring to the part "... could be
replaced by an ‘and’ expression similar to _the one in the first part of
the function_." But when I tried to search for `and' in the example
code of that section I found no `and' usage at all, which confused me a
bit. It was not until I looked at the texi source that I noticed that
the original example code did use `and' which I linked in my first
email, and it was later replace by the current one from Emacs 22 which
no longer used `and'. Thus I would consider the text in the parentheses
you quoted to be obsolete.
And of course as I mentioned in the previous email, IMHO it is probably
not a good advice to use `and' to emulate `if'.
>
> Thanks.
--
Xiyue Deng
^ permalink raw reply [flat|nested] 19+ messages in thread
* bug#67669: 29.1; Drop text suggesting using `and' to replace `if'
2023-12-07 9:08 ` Xiyue Deng
@ 2023-12-07 10:16 ` Eli Zaretskii
2023-12-07 17:49 ` Xiyue Deng
0 siblings, 1 reply; 19+ messages in thread
From: Eli Zaretskii @ 2023-12-07 10:16 UTC (permalink / raw)
To: Xiyue Deng; +Cc: 67669
> From: Xiyue Deng <manphiz@gmail.com>
> Cc: 67669@debbugs.gnu.org
> Date: Thu, 07 Dec 2023 01:08:51 -0800
>
> Eli Zaretskii <eliz@gnu.org> writes:
>
> > AFAIU, the relevant fragment is:
> >
> > The expression looks like this:
> >
> > (if interprogram-cut-function
> > (funcall interprogram-cut-function string (not replace))))
> >
> > If an ‘interprogram-cut-function’ exists, then Emacs executes
> > ‘funcall’, which in turn calls its first argument as a function and
> > passes the remaining arguments to it. (Incidentally, as far as I can
> > see, this ‘if’ expression could be replaced by an ‘and’ expression
> > similar to the one in the first part of the function.)
> >
> > I don't see anything wrong here. Can you elaborate on why you think
> > the text in parentheses is inaccurate or incorrect or unclear?
>
> Sorry I wasn't very clear. I was referring to the part "... could be
> replaced by an ‘and’ expression similar to _the one in the first part of
> the function_." But when I tried to search for `and' in the example
> code of that section I found no `and' usage at all, which confused me a
> bit.
I think it means this part earlier in the node:
(if (fboundp 'menu-bar-update-yank-menu)
(menu-bar-update-yank-menu string (and replace (car kill-ring))))
> It was not until I looked at the texi source that I noticed that
> the original example code did use `and' which I linked in my first
> email, and it was later replace by the current one from Emacs 22 which
> no longer used `and'. Thus I would consider the text in the parentheses
> you quoted to be obsolete.
I don't think so.
> And of course as I mentioned in the previous email, IMHO it is probably
> not a good advice to use `and' to emulate `if'.
I disagree. I think the discussion of 'if' and 'and' there is
entirely appropriate and educational, and I personally do use these
interchangeably in some situations.
^ permalink raw reply [flat|nested] 19+ messages in thread
* bug#67669: 29.1; Drop text suggesting using `and' to replace `if'
2023-12-07 10:16 ` Eli Zaretskii
@ 2023-12-07 17:49 ` Xiyue Deng
2023-12-07 17:56 ` Eli Zaretskii
` (2 more replies)
0 siblings, 3 replies; 19+ messages in thread
From: Xiyue Deng @ 2023-12-07 17:49 UTC (permalink / raw)
To: Eli Zaretskii; +Cc: 67669
Eli Zaretskii <eliz@gnu.org> writes:
>> From: Xiyue Deng <manphiz@gmail.com>
>> Cc: 67669@debbugs.gnu.org
>> Date: Thu, 07 Dec 2023 01:08:51 -0800
>>
>> Eli Zaretskii <eliz@gnu.org> writes:
>>
>> > AFAIU, the relevant fragment is:
>> >
>> > The expression looks like this:
>> >
>> > (if interprogram-cut-function
>> > (funcall interprogram-cut-function string (not replace))))
>> >
>> > If an ‘interprogram-cut-function’ exists, then Emacs executes
>> > ‘funcall’, which in turn calls its first argument as a function and
>> > passes the remaining arguments to it. (Incidentally, as far as I can
>> > see, this ‘if’ expression could be replaced by an ‘and’ expression
>> > similar to the one in the first part of the function.)
>> >
>> > I don't see anything wrong here. Can you elaborate on why you think
>> > the text in parentheses is inaccurate or incorrect or unclear?
>>
>> Sorry I wasn't very clear. I was referring to the part "... could be
>> replaced by an ‘and’ expression similar to _the one in the first part of
>> the function_." But when I tried to search for `and' in the example
>> code of that section I found no `and' usage at all, which confused me a
>> bit.
>
> I think it means this part earlier in the node:
>
> (if (fboundp 'menu-bar-update-yank-menu)
> (menu-bar-update-yank-menu string (and replace (car kill-ring))))
To be super nitpicking, the text said "the one in the _first part_ of
the function", while this code snippet you quoted is the second
statement in the code example. If we look at the old code (which is
currently marked as ignore in the texi source), the first part is:
(and (fboundp 'menu-bar-update-yank-menu)
(menu-bar-update-yank-menu string (and replace (car kill-ring))))
Which IMHO lets the text make more sense. But anyway.
>
>> It was not until I looked at the texi source that I noticed that
>> the original example code did use `and' which I linked in my first
>> email, and it was later replace by the current one from Emacs 22 which
>> no longer used `and'. Thus I would consider the text in the parentheses
>> you quoted to be obsolete.
>
> I don't think so.
>
>> And of course as I mentioned in the previous email, IMHO it is probably
>> not a good advice to use `and' to emulate `if'.
>
> I disagree. I think the discussion of 'if' and 'and' there is
> entirely appropriate and educational, and I personally do use these
> interchangeably in some situations.
Agreed on the point of being educational, and of course in the end
coding style is mostly a matter of personal preference. However, I
would argue a bit that in such case we wouldn't need `if' or `when' at
all as both can be emulated by `and' and `or' if you are careful enough.
On the other hand, `if' and `when' should exist for a reason. I quite
like this suggestion[1] that `if' and `when' are used to guard side
effects, whereas `and' and `or' are used for pure functions.
Interestingly the current example you quoted changed from using `and'
(as in the old version I quoted) to `if' probably based on this
reasoning. Similarly I wouldn't suggest to replace `if' with `and' in
the original example around the text we are discussing:
(if interprogram-cut-function
(funcall interprogram-cut-function string (not replace))))
as we are also guarding a side effect here.
Wdyt?
[1] https://emacs.stackexchange.com/a/14204
--
Xiyue Deng
^ permalink raw reply [flat|nested] 19+ messages in thread
* bug#67669: 29.1; Drop text suggesting using `and' to replace `if'
2023-12-07 17:49 ` Xiyue Deng
@ 2023-12-07 17:56 ` Eli Zaretskii
2023-12-07 19:54 ` Xiyue Deng
2023-12-07 19:37 ` Drew Adams
2023-12-08 10:45 ` Sean Whitton
2 siblings, 1 reply; 19+ messages in thread
From: Eli Zaretskii @ 2023-12-07 17:56 UTC (permalink / raw)
To: Xiyue Deng; +Cc: 67669
> From: Xiyue Deng <manphiz@gmail.com>
> Cc: 67669@debbugs.gnu.org
> Date: Thu, 07 Dec 2023 09:49:13 -0800
>
> Agreed on the point of being educational, and of course in the end
> coding style is mostly a matter of personal preference. However, I
> would argue a bit that in such case we wouldn't need `if' or `when' at
> all as both can be emulated by `and' and `or' if you are careful enough.
> On the other hand, `if' and `when' should exist for a reason. I quite
> like this suggestion[1] that `if' and `when' are used to guard side
> effects, whereas `and' and `or' are used for pure functions.
> Interestingly the current example you quoted changed from using `and'
> (as in the old version I quoted) to `if' probably based on this
> reasoning. Similarly I wouldn't suggest to replace `if' with `and' in
> the original example around the text we are discussing:
>
> (if interprogram-cut-function
> (funcall interprogram-cut-function string (not replace))))
>
> as we are also guarding a side effect here.
>
> Wdyt?
Sorry, I don't understand what you mean by "guarding a side effect",
and I'm not sure where this discussion goes. If the issue is personal
stylistic preferences, then I'd prefer to leave the text as it was
according to the preferences of the original author (which I happen to
share, but that's not important).
OK?
^ permalink raw reply [flat|nested] 19+ messages in thread
* bug#67669: 29.1; Drop text suggesting using `and' to replace `if'
2023-12-07 17:49 ` Xiyue Deng
2023-12-07 17:56 ` Eli Zaretskii
@ 2023-12-07 19:37 ` Drew Adams
2023-12-07 20:00 ` Xiyue Deng
2023-12-08 10:45 ` Sean Whitton
2 siblings, 1 reply; 19+ messages in thread
From: Drew Adams @ 2023-12-07 19:37 UTC (permalink / raw)
To: Xiyue Deng, Eli Zaretskii; +Cc: 67669@debbugs.gnu.org
> I quite like this suggestion[1] that `if' and `when' are used to guard side
> effects,
More clearly, `when' and `unless' (not `if', which is general - no special suggestion) are used to suggest (to humans) that they're used _only_ to perform side effects. With this convention, code shouldn't depend on their (always `nil') return value.
> whereas `and' and `or' are used for pure functions.
That too isn't really the convention (though it is what's said in that emacs.SE answer).
What should be said is that you use `and' and `or' when _the return value matters_, i.e., when it's used somewhere.
That does _not_ preclude the use of `and' and `or' to perform side effects. It's simply that the _return value matters_. Unlike `progn', the (Boolean) return value of each of their "steps" (sexps) determines whether subsequent ones are evaluated.
I've added another answer to the emacs.SE question you cited:
https://emacs.stackexchange.com/a/79744/105
But as you correctly noted, such conventions are a question of personal (or group) coding style. Lisp doesn't care or recognize any such meaning.
^ permalink raw reply [flat|nested] 19+ messages in thread
* bug#67669: 29.1; Drop text suggesting using `and' to replace `if'
2023-12-07 17:56 ` Eli Zaretskii
@ 2023-12-07 19:54 ` Xiyue Deng
2023-12-07 20:22 ` Eli Zaretskii
0 siblings, 1 reply; 19+ messages in thread
From: Xiyue Deng @ 2023-12-07 19:54 UTC (permalink / raw)
To: Eli Zaretskii; +Cc: 67669-done
Eli Zaretskii <eliz@gnu.org> writes:
>> From: Xiyue Deng <manphiz@gmail.com>
>> Cc: 67669@debbugs.gnu.org
>> Date: Thu, 07 Dec 2023 09:49:13 -0800
>>
>> Agreed on the point of being educational, and of course in the end
>> coding style is mostly a matter of personal preference. However, I
>> would argue a bit that in such case we wouldn't need `if' or `when' at
>> all as both can be emulated by `and' and `or' if you are careful enough.
>> On the other hand, `if' and `when' should exist for a reason. I quite
>> like this suggestion[1] that `if' and `when' are used to guard side
>> effects, whereas `and' and `or' are used for pure functions.
>> Interestingly the current example you quoted changed from using `and'
>> (as in the old version I quoted) to `if' probably based on this
>> reasoning. Similarly I wouldn't suggest to replace `if' with `and' in
>> the original example around the text we are discussing:
>>
>> (if interprogram-cut-function
>> (funcall interprogram-cut-function string (not replace))))
>>
>> as we are also guarding a side effect here.
>>
>> Wdyt?
>
> Sorry, I don't understand what you mean by "guarding a side effect",
I was referring to whether we care about and use the result of the
statement/function call. In `and' we do, in `if' we don't and we just
use the side effect.
> and I'm not sure where this discussion goes. If the issue is personal
> stylistic preferences, then I'd prefer to leave the text as it was
> according to the preferences of the original author (which I happen to
> share, but that's not important).
>
> OK?
As I was just trying to argue just "a bit", I won't be insisting either.
Thanks for listening, and let me close this.
--
Xiyue Deng
^ permalink raw reply [flat|nested] 19+ messages in thread
* bug#67669: 29.1; Drop text suggesting using `and' to replace `if'
2023-12-07 19:37 ` Drew Adams
@ 2023-12-07 20:00 ` Xiyue Deng
0 siblings, 0 replies; 19+ messages in thread
From: Xiyue Deng @ 2023-12-07 20:00 UTC (permalink / raw)
To: Drew Adams; +Cc: Eli Zaretskii, 67669-done
Hi Drew,
Drew Adams <drew.adams@oracle.com> writes:
>> I quite like this suggestion[1] that `if' and `when' are used to guard side
>> effects,
>
> More clearly, `when' and `unless' (not `if', which is general - no
> special suggestion) are used to suggest (to humans) that they're used
> _only_ to perform side effects. With this convention, code shouldn't
> depend on their (always `nil') return value.
>
>> whereas `and' and `or' are used for pure functions.
>
> That too isn't really the convention (though it is what's said in that emacs.SE answer).
>
> What should be said is that you use `and' and `or' when _the return value matters_, i.e., when it's used somewhere.
>
> That does _not_ preclude the use of `and' and `or' to perform side
> effects. It's simply that the _return value matters_. Unlike
> `progn', the (Boolean) return value of each of their "steps" (sexps)
> determines whether subsequent ones are evaluated.
Agreed here. I was quoting the SE answer for the "pure function" part,
but indeed I also think what matters is whether we use the results.
>
> I've added another answer to the emacs.SE question you cited:
>
> https://emacs.stackexchange.com/a/79744/105
>
> But as you correctly noted, such conventions are a question of personal (or group) coding style. Lisp doesn't care or recognize any such meaning.
Also agreed. And I've since closed this. Thanks for the discussion!
--
Xiyue Deng
^ permalink raw reply [flat|nested] 19+ messages in thread
* bug#67669: 29.1; Drop text suggesting using `and' to replace `if'
2023-12-07 19:54 ` Xiyue Deng
@ 2023-12-07 20:22 ` Eli Zaretskii
2023-12-07 20:37 ` Xiyue Deng
0 siblings, 1 reply; 19+ messages in thread
From: Eli Zaretskii @ 2023-12-07 20:22 UTC (permalink / raw)
To: Xiyue Deng; +Cc: 67669-done
> From: Xiyue Deng <manphiz@gmail.com>
> Cc: 67669-done@debbugs.gnu.org
> Date: Thu, 07 Dec 2023 11:54:20 -0800
>
> Eli Zaretskii <eliz@gnu.org> writes:
>
> > Sorry, I don't understand what you mean by "guarding a side effect",
>
> I was referring to whether we care about and use the result of the
> statement/function call. In `and' we do, in `if' we don't and we just
> use the side effect.
But that's not true. 'if' does return a value, and we do use it.
Consider this random example:
(defsubst posn-area (position)
[...]
(let ((area (if (consp (nth 1 position))
(car (nth 1 position))
(nth 1 position))))
(and (symbolp area) area)))
Here we bind 'area' to the value returned by 'if'.
> As I was just trying to argue just "a bit", I won't be insisting either.
> Thanks for listening, and let me close this.
Thanks.
^ permalink raw reply [flat|nested] 19+ messages in thread
* bug#67669: 29.1; Drop text suggesting using `and' to replace `if'
2023-12-07 20:22 ` Eli Zaretskii
@ 2023-12-07 20:37 ` Xiyue Deng
2023-12-07 21:29 ` Drew Adams
2023-12-08 6:25 ` Eli Zaretskii
0 siblings, 2 replies; 19+ messages in thread
From: Xiyue Deng @ 2023-12-07 20:37 UTC (permalink / raw)
To: Eli Zaretskii; +Cc: 67669-done
Eli Zaretskii <eliz@gnu.org> writes:
>> From: Xiyue Deng <manphiz@gmail.com>
>> Cc: 67669-done@debbugs.gnu.org
>> Date: Thu, 07 Dec 2023 11:54:20 -0800
>>
>> Eli Zaretskii <eliz@gnu.org> writes:
>>
>> > Sorry, I don't understand what you mean by "guarding a side effect",
>>
>> I was referring to whether we care about and use the result of the
>> statement/function call. In `and' we do, in `if' we don't and we just
>> use the side effect.
>
> But that's not true. 'if' does return a value, and we do use it.
> Consider this random example:
>
> (defsubst posn-area (position)
> [...]
> (let ((area (if (consp (nth 1 position))
> (car (nth 1 position))
> (nth 1 position))))
> (and (symbolp area) area)))
>
> Here we bind 'area' to the value returned by 'if'.
Well if we use `if' with else then yes. Actually as Drew pointed out
this suggestion makes more sense if we are comparing `and' and `when'
(a.k.a. if without else), but point taken.
>
>> As I was just trying to argue just "a bit", I won't be insisting either.
>> Thanks for listening, and let me close this.
>
> Thanks.
--
Xiyue Deng
^ permalink raw reply [flat|nested] 19+ messages in thread
* bug#67669: 29.1; Drop text suggesting using `and' to replace `if'
2023-12-07 20:37 ` Xiyue Deng
@ 2023-12-07 21:29 ` Drew Adams
2023-12-08 9:11 ` Xiyue Deng
2023-12-08 6:25 ` Eli Zaretskii
1 sibling, 1 reply; 19+ messages in thread
From: Drew Adams @ 2023-12-07 21:29 UTC (permalink / raw)
To: Xiyue Deng, Eli Zaretskii; +Cc: 67669-done@debbugs.gnu.org
> Well if we use `if' with else then yes.
Even if we use it with THEN.
`if' and `cond' are completely general and
don't, by themselves abstractly, suggest
any particular connotation for a human
reader. They can return any value you like.
Whether the value returned is used anywhere
is neither determined nor suggested by any
convention.
^ permalink raw reply [flat|nested] 19+ messages in thread
* bug#67669: 29.1; Drop text suggesting using `and' to replace `if'
2023-12-07 20:37 ` Xiyue Deng
2023-12-07 21:29 ` Drew Adams
@ 2023-12-08 6:25 ` Eli Zaretskii
2023-12-08 9:07 ` Xiyue Deng
2023-12-08 15:37 ` Drew Adams
1 sibling, 2 replies; 19+ messages in thread
From: Eli Zaretskii @ 2023-12-08 6:25 UTC (permalink / raw)
To: Xiyue Deng; +Cc: 67669
> From: Xiyue Deng <manphiz@gmail.com>
> Cc: 67669-done@debbugs.gnu.org
> Date: Thu, 07 Dec 2023 12:37:58 -0800
>
> Eli Zaretskii <eliz@gnu.org> writes:
>
> >> I was referring to whether we care about and use the result of the
> >> statement/function call. In `and' we do, in `if' we don't and we just
> >> use the side effect.
> >
> > But that's not true. 'if' does return a value, and we do use it.
> > Consider this random example:
> >
> > (defsubst posn-area (position)
> > [...]
> > (let ((area (if (consp (nth 1 position))
> > (car (nth 1 position))
> > (nth 1 position))))
> > (and (symbolp area) area)))
> >
> > Here we bind 'area' to the value returned by 'if'.
>
> Well if we use `if' with else then yes.
No. When 'if' has no 'else' clause, and the test fails, 'if' returns
nil. This is used in many places in our code. Like this:
(let (baz)
(setq foo (concat "bar" (if (stringp baz) baz))))
=> "bar"
Here 'if' returns nil, and we use the feature of 'concat' to ignore
nil arguments.
^ permalink raw reply [flat|nested] 19+ messages in thread
* bug#67669: 29.1; Drop text suggesting using `and' to replace `if'
2023-12-08 6:25 ` Eli Zaretskii
@ 2023-12-08 9:07 ` Xiyue Deng
2023-12-08 15:37 ` Drew Adams
1 sibling, 0 replies; 19+ messages in thread
From: Xiyue Deng @ 2023-12-08 9:07 UTC (permalink / raw)
To: Eli Zaretskii; +Cc: 67669
Eli Zaretskii <eliz@gnu.org> writes:
>> From: Xiyue Deng <manphiz@gmail.com>
>> Cc: 67669-done@debbugs.gnu.org
>> Date: Thu, 07 Dec 2023 12:37:58 -0800
>>
>> Eli Zaretskii <eliz@gnu.org> writes:
>>
>> >> I was referring to whether we care about and use the result of the
>> >> statement/function call. In `and' we do, in `if' we don't and we just
>> >> use the side effect.
>> >
>> > But that's not true. 'if' does return a value, and we do use it.
>> > Consider this random example:
>> >
>> > (defsubst posn-area (position)
>> > [...]
>> > (let ((area (if (consp (nth 1 position))
>> > (car (nth 1 position))
>> > (nth 1 position))))
>> > (and (symbolp area) area)))
>> >
>> > Here we bind 'area' to the value returned by 'if'.
>>
>> Well if we use `if' with else then yes.
>
> No. When 'if' has no 'else' clause, and the test fails, 'if' returns
> nil. This is used in many places in our code. Like this:
>
> (let (baz)
> (setq foo (concat "bar" (if (stringp baz) baz))))
> => "bar"
>
> Here 'if' returns nil, and we use the feature of 'concat' to ignore
> nil arguments.
Ah I see. So it looks like in Elisp `and' and `if' are actually used
interchangeably. This was not very obvious at first for me who's more
familiar with other imperative languages. TIL. Thanks!
--
Xiyue Deng
^ permalink raw reply [flat|nested] 19+ messages in thread
* bug#67669: 29.1; Drop text suggesting using `and' to replace `if'
2023-12-07 21:29 ` Drew Adams
@ 2023-12-08 9:11 ` Xiyue Deng
0 siblings, 0 replies; 19+ messages in thread
From: Xiyue Deng @ 2023-12-08 9:11 UTC (permalink / raw)
To: Drew Adams; +Cc: Eli Zaretskii, 67669-done@debbugs.gnu.org
Drew Adams <drew.adams@oracle.com> writes:
>> Well if we use `if' with else then yes.
>
> Even if we use it with THEN.
>
> `if' and `cond' are completely general and
> don't, by themselves abstractly, suggest
> any particular connotation for a human
> reader. They can return any value you like.
> Whether the value returned is used anywhere
> is neither determined nor suggested by any
> convention.
Ack. As I replied to Eli, TIL that `and' and `if' are actually used
interchangeably in Elisp. Thanks!
--
Xiyue Deng
^ permalink raw reply [flat|nested] 19+ messages in thread
* bug#67669: 29.1; Drop text suggesting using `and' to replace `if'
2023-12-07 17:49 ` Xiyue Deng
2023-12-07 17:56 ` Eli Zaretskii
2023-12-07 19:37 ` Drew Adams
@ 2023-12-08 10:45 ` Sean Whitton
2023-12-08 22:41 ` Xiyue Deng
2 siblings, 1 reply; 19+ messages in thread
From: Sean Whitton @ 2023-12-08 10:45 UTC (permalink / raw)
To: Xiyue Deng; +Cc: 67669, Eli Zaretskii
Hello,
On Thu 07 Dec 2023 at 09:49am -08, Xiyue Deng wrote:
> Agreed on the point of being educational, and of course in the end
> coding style is mostly a matter of personal preference. However, I
> would argue a bit that in such case we wouldn't need `if' or `when' at
> all as both can be emulated by `and' and `or' if you are careful enough.
> On the other hand, `if' and `when' should exist for a reason. I quite
> like this suggestion[1] that `if' and `when' are used to guard side
> effects, whereas `and' and `or' are used for pure functions.
> Interestingly the current example you quoted changed from using `and'
> (as in the old version I quoted) to `if' probably based on this
> reasoning. Similarly I wouldn't suggest to replace `if' with `and' in
> the original example around the text we are discussing:
It's an old Lisp convention, not Emacs-specific, to use 'and' for return
value and 'when' for side-effects, and not to use 'if' when there is no
'else' clause.
--
Sean Whitton
^ permalink raw reply [flat|nested] 19+ messages in thread
* bug#67669: 29.1; Drop text suggesting using `and' to replace `if'
2023-12-08 6:25 ` Eli Zaretskii
2023-12-08 9:07 ` Xiyue Deng
@ 2023-12-08 15:37 ` Drew Adams
1 sibling, 0 replies; 19+ messages in thread
From: Drew Adams @ 2023-12-08 15:37 UTC (permalink / raw)
To: Eli Zaretskii, Xiyue Deng; +Cc: 67669@debbugs.gnu.org
> (let (baz)
> (setq foo (concat "bar" (if (stringp baz) baz))))
> => "bar"
>
> Here 'if' returns nil, and we use the feature of
> 'concat' to ignore nil arguments.
IMO the meaning/behavior is clearer with `and':
(let (baz)
(setq foo (concat "bar" (and (stringp baz) baz))))
But again, such stylistic concerns are exactly that.
^ permalink raw reply [flat|nested] 19+ messages in thread
* bug#67669: 29.1; Drop text suggesting using `and' to replace `if'
2023-12-08 10:45 ` Sean Whitton
@ 2023-12-08 22:41 ` Xiyue Deng
0 siblings, 0 replies; 19+ messages in thread
From: Xiyue Deng @ 2023-12-08 22:41 UTC (permalink / raw)
To: Sean Whitton; +Cc: 67669, Eli Zaretskii
Sean Whitton <spwhitton@spwhitton.name> writes:
> Hello,
>
> On Thu 07 Dec 2023 at 09:49am -08, Xiyue Deng wrote:
>
>> Agreed on the point of being educational, and of course in the end
>> coding style is mostly a matter of personal preference. However, I
>> would argue a bit that in such case we wouldn't need `if' or `when' at
>> all as both can be emulated by `and' and `or' if you are careful enough.
>> On the other hand, `if' and `when' should exist for a reason. I quite
>> like this suggestion[1] that `if' and `when' are used to guard side
>> effects, whereas `and' and `or' are used for pure functions.
>> Interestingly the current example you quoted changed from using `and'
>> (as in the old version I quoted) to `if' probably based on this
>> reasoning. Similarly I wouldn't suggest to replace `if' with `and' in
>> the original example around the text we are discussing:
>
> It's an old Lisp convention, not Emacs-specific, to use 'and' for return
> value and 'when' for side-effects, and not to use 'if' when there is no
> 'else' clause.
Ack. Thanks for the historical tip!
--
Xiyue Deng
^ permalink raw reply [flat|nested] 19+ messages in thread
end of thread, other threads:[~2023-12-08 22:41 UTC | newest]
Thread overview: 19+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2023-12-06 21:47 bug#67669: 29.1; Drop text suggesting using `and' to replace `if' Xiyue Deng
[not found] ` <handler.67669.B.170189926211616.ack@debbugs.gnu.org>
2023-12-06 22:08 ` Xiyue Deng
2023-12-07 6:28 ` Eli Zaretskii
2023-12-07 9:08 ` Xiyue Deng
2023-12-07 10:16 ` Eli Zaretskii
2023-12-07 17:49 ` Xiyue Deng
2023-12-07 17:56 ` Eli Zaretskii
2023-12-07 19:54 ` Xiyue Deng
2023-12-07 20:22 ` Eli Zaretskii
2023-12-07 20:37 ` Xiyue Deng
2023-12-07 21:29 ` Drew Adams
2023-12-08 9:11 ` Xiyue Deng
2023-12-08 6:25 ` Eli Zaretskii
2023-12-08 9:07 ` Xiyue Deng
2023-12-08 15:37 ` Drew Adams
2023-12-07 19:37 ` Drew Adams
2023-12-07 20:00 ` Xiyue Deng
2023-12-08 10:45 ` Sean Whitton
2023-12-08 22:41 ` Xiyue Deng
Code repositories for project(s) associated with this public inbox
https://git.savannah.gnu.org/cgit/emacs.git
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).