Package: emacs;
Reported by: Xiyue Deng <manphiz <at> gmail.com>
Date: Wed, 6 Dec 2023 21:48:01 UTC
Severity: normal
Found in version 29.1
Done: Xiyue Deng <manphiz <at> gmail.com>
Bug is archived. No further changes may be made.
To add a comment to this bug, you must first unarchive it, by sending
a message to control AT debbugs.gnu.org, with unarchive 67669 in the body.
You can then email your comments to 67669 AT debbugs.gnu.org in the normal way.
Toggle the display of automated, internal messages from the tracker.
View this report as an mbox folder, status mbox, maintainer mbox
bug-gnu-emacs <at> gnu.org
:bug#67669
; Package emacs
.
(Wed, 06 Dec 2023 21:48:01 GMT) Full text and rfc822 format available.Xiyue Deng <manphiz <at> gmail.com>
:bug-gnu-emacs <at> gnu.org
.
(Wed, 06 Dec 2023 21:48:01 GMT) Full text and rfc822 format available.Message #5 received at submit <at> debbugs.gnu.org (full text, mbox):
From: Xiyue Deng <manphiz <at> gmail.com> To: bug-gnu-emacs <at> gnu.org Subject: 29.1; Drop text suggesting using `and' to replace `if' 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? [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))
bug-gnu-emacs <at> gnu.org
:bug#67669
; Package emacs
.
(Wed, 06 Dec 2023 22:10:01 GMT) Full text and rfc822 format available.Message #8 received at 67669 <at> debbugs.gnu.org (full text, mbox):
From: Xiyue Deng <manphiz <at> gmail.com> To: 67669 <at> debbugs.gnu.org Subject: Re: bug#67669: 29.1; Drop text suggesting using `and' to replace `if' Date: Wed, 06 Dec 2023 14:08:43 -0800
[Message part 1 (text/plain, inline)]
Please see the following patch that whether it makes sense to drop that part.
[0001-Drop-text-suggesting-using-and-to-replace-if-Bug-676.patch (text/x-diff, attachment)]
[Message part 3 (text/plain, inline)]
-- Xiyue Deng
bug-gnu-emacs <at> gnu.org
:bug#67669
; Package emacs
.
(Thu, 07 Dec 2023 06:29:01 GMT) Full text and rfc822 format available.Message #11 received at 67669 <at> debbugs.gnu.org (full text, mbox):
From: Eli Zaretskii <eliz <at> gnu.org> To: Xiyue Deng <manphiz <at> gmail.com> Cc: 67669 <at> debbugs.gnu.org Subject: Re: bug#67669: 29.1; Drop text suggesting using `and' to replace `if' Date: Thu, 07 Dec 2023 08:28:23 +0200
> From: Xiyue Deng <manphiz <at> 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.
bug-gnu-emacs <at> gnu.org
:bug#67669
; Package emacs
.
(Thu, 07 Dec 2023 09:10:01 GMT) Full text and rfc822 format available.Message #14 received at 67669 <at> debbugs.gnu.org (full text, mbox):
From: Xiyue Deng <manphiz <at> gmail.com> To: Eli Zaretskii <eliz <at> gnu.org> Cc: 67669 <at> debbugs.gnu.org Subject: Re: bug#67669: 29.1; Drop text suggesting using `and' to replace `if' Date: Thu, 07 Dec 2023 01:08:51 -0800
Hi Eli, Eli Zaretskii <eliz <at> gnu.org> writes: >> From: Xiyue Deng <manphiz <at> 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
bug-gnu-emacs <at> gnu.org
:bug#67669
; Package emacs
.
(Thu, 07 Dec 2023 10:17:02 GMT) Full text and rfc822 format available.Message #17 received at 67669 <at> debbugs.gnu.org (full text, mbox):
From: Eli Zaretskii <eliz <at> gnu.org> To: Xiyue Deng <manphiz <at> gmail.com> Cc: 67669 <at> debbugs.gnu.org Subject: Re: bug#67669: 29.1; Drop text suggesting using `and' to replace `if' Date: Thu, 07 Dec 2023 12:16:00 +0200
> From: Xiyue Deng <manphiz <at> gmail.com> > Cc: 67669 <at> debbugs.gnu.org > Date: Thu, 07 Dec 2023 01:08:51 -0800 > > Eli Zaretskii <eliz <at> 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.
bug-gnu-emacs <at> gnu.org
:bug#67669
; Package emacs
.
(Thu, 07 Dec 2023 17:50:02 GMT) Full text and rfc822 format available.Message #20 received at 67669 <at> debbugs.gnu.org (full text, mbox):
From: Xiyue Deng <manphiz <at> gmail.com> To: Eli Zaretskii <eliz <at> gnu.org> Cc: 67669 <at> debbugs.gnu.org Subject: Re: bug#67669: 29.1; Drop text suggesting using `and' to replace `if' Date: Thu, 07 Dec 2023 09:49:13 -0800
Eli Zaretskii <eliz <at> gnu.org> writes: >> From: Xiyue Deng <manphiz <at> gmail.com> >> Cc: 67669 <at> debbugs.gnu.org >> Date: Thu, 07 Dec 2023 01:08:51 -0800 >> >> Eli Zaretskii <eliz <at> 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
bug-gnu-emacs <at> gnu.org
:bug#67669
; Package emacs
.
(Thu, 07 Dec 2023 17:57:01 GMT) Full text and rfc822 format available.Message #23 received at 67669 <at> debbugs.gnu.org (full text, mbox):
From: Eli Zaretskii <eliz <at> gnu.org> To: Xiyue Deng <manphiz <at> gmail.com> Cc: 67669 <at> debbugs.gnu.org Subject: Re: bug#67669: 29.1; Drop text suggesting using `and' to replace `if' Date: Thu, 07 Dec 2023 19:56:29 +0200
> From: Xiyue Deng <manphiz <at> gmail.com> > Cc: 67669 <at> 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?
bug-gnu-emacs <at> gnu.org
:bug#67669
; Package emacs
.
(Thu, 07 Dec 2023 19:38:02 GMT) Full text and rfc822 format available.Message #26 received at 67669 <at> debbugs.gnu.org (full text, mbox):
From: Drew Adams <drew.adams <at> oracle.com> To: Xiyue Deng <manphiz <at> gmail.com>, Eli Zaretskii <eliz <at> gnu.org> Cc: "67669 <at> debbugs.gnu.org" <67669 <at> debbugs.gnu.org> Subject: RE: [External] : bug#67669: 29.1; Drop text suggesting using `and' to replace `if' Date: Thu, 7 Dec 2023 19:37:30 +0000
> 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.
Xiyue Deng <manphiz <at> gmail.com>
:Xiyue Deng <manphiz <at> gmail.com>
:Message #31 received at 67669-done <at> debbugs.gnu.org (full text, mbox):
From: Xiyue Deng <manphiz <at> gmail.com> To: Eli Zaretskii <eliz <at> gnu.org> Cc: 67669-done <at> debbugs.gnu.org Subject: Re: bug#67669: 29.1; Drop text suggesting using `and' to replace `if' Date: Thu, 07 Dec 2023 11:54:20 -0800
Eli Zaretskii <eliz <at> gnu.org> writes: >> From: Xiyue Deng <manphiz <at> gmail.com> >> Cc: 67669 <at> 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
bug-gnu-emacs <at> gnu.org
:bug#67669
; Package emacs
.
(Thu, 07 Dec 2023 20:02:01 GMT) Full text and rfc822 format available.Message #34 received at 67669-done <at> debbugs.gnu.org (full text, mbox):
From: Xiyue Deng <manphiz <at> gmail.com> To: Drew Adams <drew.adams <at> oracle.com> Cc: Eli Zaretskii <eliz <at> gnu.org>, 67669-done <at> debbugs.gnu.org Subject: Re: [External] : bug#67669: 29.1; Drop text suggesting using `and' to replace `if' Date: Thu, 07 Dec 2023 12:00:42 -0800
Hi Drew, Drew Adams <drew.adams <at> 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
bug-gnu-emacs <at> gnu.org
:bug#67669
; Package emacs
.
(Thu, 07 Dec 2023 20:24:02 GMT) Full text and rfc822 format available.Message #37 received at 67669-done <at> debbugs.gnu.org (full text, mbox):
From: Eli Zaretskii <eliz <at> gnu.org> To: Xiyue Deng <manphiz <at> gmail.com> Cc: 67669-done <at> debbugs.gnu.org Subject: Re: bug#67669: 29.1; Drop text suggesting using `and' to replace `if' Date: Thu, 07 Dec 2023 22:22:57 +0200
> From: Xiyue Deng <manphiz <at> gmail.com> > Cc: 67669-done <at> debbugs.gnu.org > Date: Thu, 07 Dec 2023 11:54:20 -0800 > > Eli Zaretskii <eliz <at> 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.
bug-gnu-emacs <at> gnu.org
:bug#67669
; Package emacs
.
(Thu, 07 Dec 2023 20:39:02 GMT) Full text and rfc822 format available.Message #40 received at 67669-done <at> debbugs.gnu.org (full text, mbox):
From: Xiyue Deng <manphiz <at> gmail.com> To: Eli Zaretskii <eliz <at> gnu.org> Cc: 67669-done <at> debbugs.gnu.org Subject: Re: bug#67669: 29.1; Drop text suggesting using `and' to replace `if' Date: Thu, 07 Dec 2023 12:37:58 -0800
Eli Zaretskii <eliz <at> gnu.org> writes: >> From: Xiyue Deng <manphiz <at> gmail.com> >> Cc: 67669-done <at> debbugs.gnu.org >> Date: Thu, 07 Dec 2023 11:54:20 -0800 >> >> Eli Zaretskii <eliz <at> 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
bug-gnu-emacs <at> gnu.org
:bug#67669
; Package emacs
.
(Thu, 07 Dec 2023 21:30:02 GMT) Full text and rfc822 format available.Message #43 received at 67669-done <at> debbugs.gnu.org (full text, mbox):
From: Drew Adams <drew.adams <at> oracle.com> To: Xiyue Deng <manphiz <at> gmail.com>, Eli Zaretskii <eliz <at> gnu.org> Cc: "67669-done <at> debbugs.gnu.org" <67669-done <at> debbugs.gnu.org> Subject: RE: [External] : bug#67669: 29.1; Drop text suggesting using `and' to replace `if' Date: Thu, 7 Dec 2023 21:29:04 +0000
> 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.
bug-gnu-emacs <at> gnu.org
:bug#67669
; Package emacs
.
(Fri, 08 Dec 2023 06:26:02 GMT) Full text and rfc822 format available.Message #46 received at 67669 <at> debbugs.gnu.org (full text, mbox):
From: Eli Zaretskii <eliz <at> gnu.org> To: Xiyue Deng <manphiz <at> gmail.com> Cc: 67669 <at> debbugs.gnu.org Subject: Re: bug#67669: 29.1; Drop text suggesting using `and' to replace `if' Date: Fri, 08 Dec 2023 08:25:16 +0200
> From: Xiyue Deng <manphiz <at> gmail.com> > Cc: 67669-done <at> debbugs.gnu.org > Date: Thu, 07 Dec 2023 12:37:58 -0800 > > Eli Zaretskii <eliz <at> 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.
bug-gnu-emacs <at> gnu.org
:bug#67669
; Package emacs
.
(Fri, 08 Dec 2023 09:08:01 GMT) Full text and rfc822 format available.Message #49 received at 67669 <at> debbugs.gnu.org (full text, mbox):
From: Xiyue Deng <manphiz <at> gmail.com> To: Eli Zaretskii <eliz <at> gnu.org> Cc: 67669 <at> debbugs.gnu.org Subject: Re: bug#67669: 29.1; Drop text suggesting using `and' to replace `if' Date: Fri, 08 Dec 2023 01:07:27 -0800
Eli Zaretskii <eliz <at> gnu.org> writes: >> From: Xiyue Deng <manphiz <at> gmail.com> >> Cc: 67669-done <at> debbugs.gnu.org >> Date: Thu, 07 Dec 2023 12:37:58 -0800 >> >> Eli Zaretskii <eliz <at> 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
bug-gnu-emacs <at> gnu.org
:bug#67669
; Package emacs
.
(Fri, 08 Dec 2023 09:13:01 GMT) Full text and rfc822 format available.Message #52 received at 67669-done <at> debbugs.gnu.org (full text, mbox):
From: Xiyue Deng <manphiz <at> gmail.com> To: Drew Adams <drew.adams <at> oracle.com> Cc: Eli Zaretskii <eliz <at> gnu.org>, "67669-done <at> debbugs.gnu.org" <67669-done <at> debbugs.gnu.org> Subject: Re: [External] : bug#67669: 29.1; Drop text suggesting using `and' to replace `if' Date: Fri, 08 Dec 2023 01:11:49 -0800
Drew Adams <drew.adams <at> 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
bug-gnu-emacs <at> gnu.org
:bug#67669
; Package emacs
.
(Fri, 08 Dec 2023 10:46:01 GMT) Full text and rfc822 format available.Message #55 received at 67669 <at> debbugs.gnu.org (full text, mbox):
From: Sean Whitton <spwhitton <at> spwhitton.name> To: Xiyue Deng <manphiz <at> gmail.com> Cc: 67669 <at> debbugs.gnu.org, Eli Zaretskii <eliz <at> gnu.org> Subject: Re: bug#67669: 29.1; Drop text suggesting using `and' to replace `if' Date: Fri, 08 Dec 2023 10:45:18 +0000
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
bug-gnu-emacs <at> gnu.org
:bug#67669
; Package emacs
.
(Fri, 08 Dec 2023 15:38:01 GMT) Full text and rfc822 format available.Message #58 received at 67669 <at> debbugs.gnu.org (full text, mbox):
From: Drew Adams <drew.adams <at> oracle.com> To: Eli Zaretskii <eliz <at> gnu.org>, Xiyue Deng <manphiz <at> gmail.com> Cc: "67669 <at> debbugs.gnu.org" <67669 <at> debbugs.gnu.org> Subject: RE: [External] : bug#67669: 29.1; Drop text suggesting using `and' to replace `if' Date: Fri, 8 Dec 2023 15:37:01 +0000
> (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.
bug-gnu-emacs <at> gnu.org
:bug#67669
; Package emacs
.
(Fri, 08 Dec 2023 22:43:02 GMT) Full text and rfc822 format available.Message #61 received at 67669 <at> debbugs.gnu.org (full text, mbox):
From: Xiyue Deng <manphiz <at> gmail.com> To: Sean Whitton <spwhitton <at> spwhitton.name> Cc: 67669 <at> debbugs.gnu.org, Eli Zaretskii <eliz <at> gnu.org> Subject: Re: bug#67669: 29.1; Drop text suggesting using `and' to replace `if' Date: Fri, 08 Dec 2023 14:41:52 -0800
Sean Whitton <spwhitton <at> 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
Debbugs Internal Request <help-debbugs <at> gnu.org>
to internal_control <at> debbugs.gnu.org
.
(Sat, 06 Jan 2024 12:24:10 GMT) Full text and rfc822 format available.
GNU bug tracking system
Copyright (C) 1999 Darren O. Benham,
1997,2003 nCipher Corporation Ltd,
1994-97 Ian Jackson.