Subject: bug#49708: 28.0.50; [PATCH] Fix byte compilation of package built-ins

From: [email-masked]
Date: Fri, 23 Jul 2021 08:00:30 -0400

Logic written in 2014 reloads those previously loaded files that might
contain macro redefinitions to cleanly byte-compile an ELPA version
of a built-in, e.g., org.  This is broken because, well, obfuscation
and verbosity.  What other reasons for bugs are there?

>From 0c3fe76b809fc1448b17c37943a5ccf09ff29f4a Mon Sep 17 00:00:00 2001
From: dickmao <none>
Date: Fri, 23 Jul 2021 07:36:51 -0400
Subject: [PATCH] Package byte-compilation breaks for built-ins

Logic written in 2014 reloads those previously loaded files that might
contain macro redefinitions to cleanly byte-compile an ELPA version
of a built-in, e.g., org.  This is broken because, well, obfuscation
and verbosity.  What other reasons for bugs are there?

* lisp/emacs-lisp/package.el (package--activate-autoloads-and-load-path):
Declutter.
(package--load-files-for-activation): Declutter..
(package--library-stem): Taking file-name-sans-extension is insufficient.
(package--reload-previously-loaded): Declutter.
(package-activate-1): Declutter..
(package--files-load-history): Declutter.
(package--list-of-conflicts): Declutter.
(package--list-loaded-files): Declutter.
(package-unpack): Declutter.
* test/lisp/emacs-lisp/package-tests.el (macro-builtin-func): Test.
(macro-builtin-10-and-90): Test.
(package-test-macro-compilation): Test.
(package-test-macro-compilation-gz): Test.
---
 lisp/emacs-lisp/package.el                    | 118 ++++++------------
 .../macro-builtin-aux.el                      |  12 ++
 .../macro-builtin.el                          |  21 ++++
 .../macro-builtin-aux.el                      |  16 +++
 .../macro-builtin.el                          |  30 +++++
 test/lisp/emacs-lisp/package-tests.el         |  32 ++++-
 6 files changed, 149 insertions(+), 80 deletions(-)
 create mode 100644 test/lisp/emacs-lisp/package-resources/macro-builtin-package-1.0/macro-builtin-aux.el
 create mode 100644 test/lisp/emacs-lisp/package-resources/macro-builtin-package-1.0/macro-builtin.el
 create mode 100644 test/lisp/emacs-lisp/package-resources/macro-builtin-package-2.0/macro-builtin-aux.el
 create mode 100644 test/lisp/emacs-lisp/package-resources/macro-builtin-package-2.0/macro-builtin.el

diff --git a/lisp/emacs-lisp/package.el b/lisp/emacs-lisp/package.el
index f1daa8d124..e5c61452e8 100644
--- a/lisp/emacs-lisp/package.el
+++ b/lisp/emacs-lisp/package.el
@@ -757,47 +757,45 @@ package--autoloads-file-name
    (format "%s-autoloads" (package-desc-name pkg-desc))
    (package-desc-dir pkg-desc)))
 
-(defun package--activate-autoloads-and-load-path (pkg-desc)
-  "Load the autoloads file and add package dir to `load-path'.
-PKG-DESC is a `package-desc' object."
-  (let* ((old-lp load-path)
-         (pkg-dir (package-desc-dir pkg-desc))
-         (pkg-dir-dir (file-name-as-directory pkg-dir)))
-    (with-demoted-errors "Error loading autoloads: %s"
-      (load (package--autoloads-file-name pkg-desc) nil t))
-    (when (and (eq old-lp load-path)
-               (not (or (member pkg-dir load-path)
-                        (member pkg-dir-dir load-path))))
-      ;; Old packages don't add themselves to the `load-path', so we have to
-      ;; do it ourselves.
-      (push pkg-dir load-path))))
-
 (defvar Info-directory-list)
 (declare-function info-initialize "info" ())
 
 (defvar package--quickstart-pkgs t
   "If set to a list, we're computing the set of pkgs to activate.")
 
-(defun package--load-files-for-activation (pkg-desc reload)
-  "Load files for activating a package given by PKG-DESC.
-Load the autoloads file, and ensure `load-path' is setup.  If
-RELOAD is non-nil, also load all files in the package that
-correspond to previously loaded files."
-  (let* ((loaded-files-list
-          (when reload
-            (package--list-loaded-files (package-desc-dir pkg-desc)))))
-    ;; Add to load path, add autoloads, and activate the package.
-    (package--activate-autoloads-and-load-path pkg-desc)
-    ;; Call `load' on all files in `package-desc-dir' already present in
-    ;; `load-history'.  This is done so that macros in these files are updated
-    ;; to their new definitions.  If another package is being installed which
-    ;; depends on this new definition, not doing this update would cause
-    ;; compilation errors and break the installation.
-    (with-demoted-errors "Error in package--load-files-for-activation: %s"
-      (mapc (lambda (feature) (load feature nil t))
-            ;; Skip autoloads file since we already evaluated it above.
-            (remove (file-truename (package--autoloads-file-name pkg-desc))
-                    loaded-files-list)))))
+(defsubst package--library-stem (file)
+  (catch 'done
+    (let (result)
+      (dolist (suffix (get-load-suffixes) file)
+        (setq result (string-trim file nil suffix))
+        (unless (equal file result)
+          (throw 'done result))))))
+
+(defun package--reload-previously-loaded (pkg-desc)
+  "Force reimportation of files in PKG-DESC already present in `load-history'.
+New editions of files contain macro definitions and redefinitions,
+the overlooking of which would cause byte-compilation of the new package to fail."
+  (with-demoted-errors "Error in package--load-files-for-activation: %s"
+    (let* (result
+           (dir (package-desc-dir pkg-desc))
+           (load-path-sans-dir
+            (cl-remove-if (apply-partially #'string= dir)
+                          (or (bound-and-true-p find-function-source-path)
+                              load-path)))
+           (files (directory-files-recursively dir "\\`[^\\.].*\\.el\\'"))
+           (history (mapcar #'file-truename
+                            (cl-remove-if-not #'stringp
+                                              (mapcar #'car load-history)))))
+      (dolist (file files)
+        (when-let ((library (package--library-stem (file-relative-name file dir)))
+                   (canonical (locate-library library nil load-path-sans-dir))
+                   (found (member (file-truename canonical) history))
+                   (recent-index (length found)))
+          (unless (equal (file-name-base library)
+                         (format "%s-autoloads" (package-desc-name pkg-desc)))
+            (push (cons (expand-file-name library dir) recent-index) result))))
+      (mapc (lambda (c) (load (car c) nil t))
+            (sort result (lambda (x y) (< (cdr x) (cdr y))))))))
 
 (defun package-activate-1 (pkg-desc &optional reload deps)
   "Activate package given by PKG-DESC, even if it was already active.
@@ -824,7 +822,11 @@ package-activate-1
       (if (listp package--quickstart-pkgs)
           ;; We're only collecting the set of packages to activate!
           (push pkg-desc package--quickstart-pkgs)
-        (package--load-files-for-activation pkg-desc reload))
+        (when reload
+          (package--reload-previously-loaded pkg-desc))
+        (with-demoted-errors "Error loading autoloads: %s"
+          (load (package--autoloads-file-name pkg-desc) nil t))
+        (add-to-list 'load-path (directory-file-name pkg-dir)))
       ;; Add info node.
       (when (file-exists-p (expand-file-name "dir" pkg-dir))
         ;; FIXME: not the friendliest, but simple.
@@ -835,48 +837,6 @@ package-activate-1
       ;; Don't return nil.
       t)))
 
-(defun package--files-load-history ()
-  (delq nil
-        (mapcar (lambda (x)
-                  (let ((f (car x)))
-                    (and (stringp f)
-                         (file-name-sans-extension (file-truename f)))))
-                load-history)))
-
-(defun package--list-of-conflicts (dir history)
-  (require 'find-func)
-  (declare-function find-library-name "find-func" (library))
-  (delq
-   nil
-   (mapcar
-    (lambda (x) (let* ((file (file-relative-name x dir))
-                  ;; Previously loaded file, if any.
-                  (previous
-                   (ignore-error file-error ;"Can't find library"
-                     (file-name-sans-extension
-                      (file-truename (find-library-name file)))))
-                  (pos (when previous (member previous history))))
-             ;; Return (RELATIVE-FILENAME . HISTORY-POSITION)
-             (when pos
-               (cons (file-name-sans-extension file) (length pos)))))
-    (directory-files-recursively dir "\\`[^\\.].*\\.el\\'"))))
-
-(defun package--list-loaded-files (dir)
-  "Recursively list all files in DIR which correspond to loaded features.
-Returns the `file-name-sans-extension' of each file, relative to
-DIR, sorted by most recently loaded last."
-  (let* ((history (package--files-load-history))
-         (dir (file-truename dir))
-         ;; List all files that have already been loaded.
-         (list-of-conflicts (package--list-of-conflicts dir history)))
-    ;; Turn the list of (FILENAME . POS) back into a list of features.  Files in
-    ;; subdirectories are returned relative to DIR (so not actually features).
-    (let ((default-directory (file-name-as-directory dir)))
-      (mapcar (lambda (x) (file-truename (car x)))
-              (sort list-of-conflicts
-                    ;; Sort the files by ascending HISTORY-POSITION.
-                    (lambda (x y) (< (cdr x) (cdr y))))))))
-
 ;;;; `package-activate'
 
 (defun package--get-activatable-pkg (pkg-name)
@@ -995,7 +955,7 @@ package-unpack
           (package--native-compile-async new-desc))
         ;; After compilation, load again any files loaded by
         ;; `activate-1', so that we use the byte-compiled definitions.
-        (package--load-files-for-activation new-desc :reload)))
+        (package--reload-previously-loaded new-desc)))
     pkg-dir))
 
 (defun package-generate-description-file (pkg-desc pkg-file)
diff --git a/test/lisp/emacs-lisp/package-resources/macro-builtin-package-1.0/macro-builtin-aux.el b/test/lisp/emacs-lisp/package-resources/macro-builtin-package-1.0/macro-builtin-aux.el
new file mode 100644
index 0000000000..724f88ec9e
--- /dev/null
+++ b/test/lisp/emacs-lisp/package-resources/macro-builtin-package-1.0/macro-builtin-aux.el
@@ -0,0 +1,12 @@
+;;; macro-builtin-aux.el --- laksd                                  -*- lexical-binding: t; -*-
+
+;; Author: Artur Malabarba <[email-masked]>
+
+;;; Code:
+
+(defun macro-builtin-aux-1 ( &rest forms)
+  "Description"
+  `(progn ,@forms))
+
+(provide 'macro-builtin-aux)
+;;; macro-builtin-aux.el ends here
diff --git a/test/lisp/emacs-lisp/package-resources/macro-builtin-package-1.0/macro-builtin.el b/test/lisp/emacs-lisp/package-resources/macro-builtin-package-1.0/macro-builtin.el
new file mode 100644
index 0000000000..828968a057
--- /dev/null
+++ b/test/lisp/emacs-lisp/package-resources/macro-builtin-package-1.0/macro-builtin.el
@@ -0,0 +1,21 @@
+;;; macro-builtin.el --- laksd                                  -*- lexical-binding: t; -*-
+
+;; Author: Artur Malabarba <[email-masked]>
+;; Keywords: tools
+;; Version: 1.0
+
+;;; Code:
+
+(require 'macro-builtin-aux)
+
+(defmacro macro-builtin-1 ( &rest forms)
+  "Description"
+  `(progn ,@forms))
+
+(defun macro-builtin-func ()
+  ""
+  (macro-builtin-1 'a 'b)
+  (macro-builtin-aux-1 'a 'b))
+
+(provide 'macro-builtin)
+;;; macro-builtin.el ends here
diff --git a/test/lisp/emacs-lisp/package-resources/macro-builtin-package-2.0/macro-builtin-aux.el b/test/lisp/emacs-lisp/package-resources/macro-builtin-package-2.0/macro-builtin-aux.el
new file mode 100644
index 0000000000..9f257d9d22
--- /dev/null
+++ b/test/lisp/emacs-lisp/package-resources/macro-builtin-package-2.0/macro-builtin-aux.el
@@ -0,0 +1,16 @@
+;;; macro-builtin-aux.el --- laksd                                  -*- lexical-binding: t; -*-
+
+;; Author: Artur Malabarba <[email-masked]>
+
+;;; Code:
+
+(defmacro macro-builtin-aux-1 ( &rest forms)
+  "Description"
+  `(progn ,@forms))
+
+(defmacro macro-builtin-aux-3 ( &rest _)
+  "Description"
+  90)
+
+(provide 'macro-builtin-aux)
+;;; macro-builtin-aux.el ends here
diff --git a/test/lisp/emacs-lisp/package-resources/macro-builtin-package-2.0/macro-builtin.el b/test/lisp/emacs-lisp/package-resources/macro-builtin-package-2.0/macro-builtin.el
new file mode 100644
index 0000000000..5d241c082d
--- /dev/null
+++ b/test/lisp/emacs-lisp/package-resources/macro-builtin-package-2.0/macro-builtin.el
@@ -0,0 +1,30 @@
+;;; macro-builtin.el --- laksd                                  -*- lexical-binding: t; -*-
+
+;; Author: Artur Malabarba <[email-masked]>
+;; Keywords: tools
+;; Version: 2.0
+
+;;; Code:
+
+(require 'macro-builtin-aux)
+
+(defmacro macro-builtin-1 ( &rest forms)
+  "Description"
+  `(progn ,(cadr (car forms))))
+
+
+(defun macro-builtin-func ()
+  ""
+  (list (macro-builtin-1 '1 'b)
+        (macro-builtin-aux-1 'a 'b)))
+
+(defmacro macro-builtin-3 (&rest _)
+  "Description"
+  10)
+
+(defun macro-builtin-10-and-90 ()
+  ""
+  (list (macro-builtin-3 haha) (macro-builtin-aux-3 hehe)))
+
+(provide 'macro-builtin)
+;;; macro-builtin.el ends here
diff --git a/test/lisp/emacs-lisp/package-tests.el b/test/lisp/emacs-lisp/package-tests.el
index 2943579955..71e2fd8edc 100644
--- a/test/lisp/emacs-lisp/package-tests.el
+++ b/test/lisp/emacs-lisp/package-tests.el
@@ -342,9 +342,13 @@ package-test-install-dependency
 
 (declare-function macro-problem-func "macro-problem" ())
 (declare-function macro-problem-10-and-90 "macro-problem" ())
+(declare-function macro-builtin-func "macro-builtin" ())
+(declare-function macro-builtin-10-and-90 "macro-builtin" ())
 
 (ert-deftest package-test-macro-compilation ()
-  "Install a package which includes a dependency."
+  "\"Activation has to be done before compilation, so that if we're
+   upgrading and macros have changed we load the new definitions
+   before compiling.\" -- package.el"
   (with-package-test (:basedir (ert-resource-directory))
     (package-install-file (expand-file-name "macro-problem-package-1.0/"))
     (require 'macro-problem)
@@ -357,6 +361,32 @@ package-test-macro-compilation
     ;; `macro-problem-10-and-90' depends on an entirely new macro from `macro-aux'.
     (should (equal (macro-problem-10-and-90) '(10 90)))))
 
+(ert-deftest package-test-macro-compilation-gz ()
+  "Built-in's can be superseded as well."
+  (with-package-test (:basedir (ert-resource-directory))
+    (let ((dir (expand-file-name "macro-builtin-package-1.0")))
+      (unwind-protect
+          (let ((load-path load-path))
+            (add-to-list 'load-path (directory-file-name dir))
+            (byte-recompile-directory dir 0 t)
+            (mapc (lambda (f) (rename-file f (concat f ".gz")))
+                  (directory-files-recursively dir "\\`[^\\.].*\\.el\\'"))
+            (require 'macro-builtin)
+            (should (member (expand-file-name "macro-builtin-aux.elc" dir)
+                            (mapcar #'car load-history)))
+            ;; `macro-builtin-func' uses a macro from `macro-aux'.
+            (should (equal (macro-builtin-func) '(progn a b)))
+            (package-install-file (expand-file-name "macro-builtin-package-2.0/"))
+            ;; After upgrading, `macro-builtin-func' depends on a new version
+            ;; of the macro from `macro-builtin-aux'.
+            (should (equal (macro-builtin-func) '(1 b)))
+            ;; `macro-builtin-10-and-90' depends on an entirely new macro from `macro-aux'.
+            (should (equal (macro-builtin-10-and-90) '(10 90))))
+        (mapc #'delete-file
+              (directory-files-recursively dir "\\`[^\\.].*\\.elc\\'"))
+        (mapc (lambda (f) (rename-file f (file-name-sans-extension f)))
+              (directory-files-recursively dir "\\`[^\\.].*\\.el.gz\\'"))))))
+
 (ert-deftest package-test-install-two-dependencies ()
   "Install a package which includes a dependency."
   (with-package-test ()
-- 
2.26.2

In GNU Emacs 28.0.50 (build 8, x86_64-pc-linux-gnu, GTK+ Version 3.22.30, cairo version 1.15.10)
 of 2021-07-23 built on dick
Repository revision: 10c6a3365d72c0ed651975d16818b956b9acce37
Repository branch: el-gz
Windowing system distributor 'The X.Org Foundation', version 11.0.11906000
System Description: Ubuntu 18.04.4 LTS

Configured using:
 'configure --prefix=/home/dick/.local'
Configured features:
CAIRO DBUS FREETYPE GIF GLIB GMP GNUTLS GSETTINGS HARFBUZZ JPEG JSON LCMS2
LIBSELINUX LIBXML2 MODULES NOTIFY INOTIFY PDUMPER PNG RSVG SECCOMP SOUND
THREADS TIFF TOOLKIT_SCROLL_BARS X11 XDBE XIM XPM GTK3 ZLIB
Important settings:
  value of $LANG: en_US.UTF-8
  locale-coding-system: utf-8-unix

Major mode: Magit

Minor modes in effect:
  async-bytecomp-package-mode: t
  global-git-commit-mode: t
  magit-auto-revert-mode: t
  show-paren-mode: t
  projectile-mode: t
  flx-ido-mode: t
  override-global-mode: t
  shell-dirtrack-mode: t
  global-hl-line-mode: t
  winner-mode: t
  tooltip-mode: t
  mouse-wheel-mode: t
  file-name-shadow-mode: t
  global-font-lock-mode: t
  font-lock-mode: t
  blink-cursor-mode: t
  auto-composition-mode: t
  auto-encryption-mode: t
  auto-compression-mode: t
  buffer-read-only: t
  column-number-mode: t
  line-number-mode: t
  transient-mark-mode: t

Load-path shadows:
/home/dick/ESS/lisp/obsolete/ess-swv hides /home/dick/ESS/lisp/ess-swv
/home/dick/ESS/lisp/obsolete/ess-rutils hides /home/dick/ESS/lisp/ess-rutils
/home/dick/ESS/lisp/obsolete/ess-noweb hides /home/dick/ESS/lisp/ess-noweb
/home/dick/ESS/lisp/obsolete/mouseme hides /home/dick/ESS/lisp/mouseme
/home/dick/ESS/lisp/obsolete/ess-mouse hides /home/dick/ESS/lisp/ess-mouse
/home/dick/ESS/lisp/obsolete/ess-noweb-mode hides /home/dick/ESS/lisp/ess-noweb-mode
/home/dick/ESS/lisp/obsolete/make-regexp hides /home/dick/ESS/lisp/make-regexp
/home/dick/ESS/lisp/obsolete/ess-r-a hides /home/dick/ESS/lisp/ess-r-a
/home/dick/ESS/lisp/obsolete/ess-noweb-font-lock-mode hides /home/dick/ESS/lisp/ess-noweb-font-lock-mode
/home/dick/gomacro-mode/gomacro-mode hides /home/dick/.emacs.d/elpa/gomacro-mode-20200326.1103/gomacro-mode
/home/dick/ESS/lisp/julia-mode hides /home/dick/.emacs.d/elpa/julia-mode-20200717.1915/julia-mode
/home/dick/ESS/lisp/julia-mode-latexsubs hides /home/dick/.emacs.d/elpa/julia-mode-20200717.1915/julia-mode-latexsubs
/home/dick/.emacs.d/elpa/hydra-20170924.2259/lv hides /home/dick/.emacs.d/elpa/lv-20191106.1238/lv
/home/dick/.emacs.d/elpa/gnus-5.14pre/ol-gnus hides /home/dick/.emacs.d/elpa/org-9.4.5/ol-gnus
/home/dick/org-gcal.el/org-gcal hides /home/dick/.emacs.d/elpa/org-gcal-0.3/org-gcal
/home/dick/.emacs.d/elpa/async-20200113.1745/async-autoloads hides /home/dick/.local/share/emacs/site-lisp/emacs-async/async-autoloads
/home/dick/.emacs.d/elpa/async-20200113.1745/async-bytecomp hides /home/dick/.local/share/emacs/site-lisp/emacs-async/async-bytecomp
/home/dick/.emacs.d/elpa/async-20200113.1745/smtpmail-async hides /home/dick/.local/share/emacs/site-lisp/emacs-async/smtpmail-async
/home/dick/.emacs.d/elpa/async-20200113.1745/dired-async hides /home/dick/.local/share/emacs/site-lisp/emacs-async/dired-async
/home/dick/.emacs.d/elpa/async-20200113.1745/async hides /home/dick/.local/share/emacs/site-lisp/emacs-async/async
/home/dick/.emacs.d/elpa/async-20200113.1745/async-pkg hides /home/dick/.local/share/emacs/site-lisp/emacs-async/async-pkg
/home/dick/.emacs.d/lisp/json hides /home/dick/emacs/lisp/json
/home/dick/.emacs.d/elpa/transient-20210221.2251/transient hides /home/dick/emacs/lisp/transient
/home/dick/.emacs.d/elpa/org-9.4.5/ob-css hides /home/dick/emacs/lisp/org/ob-css
/home/dick/.emacs.d/elpa/org-9.4.5/ox-texinfo hides /home/dick/emacs/lisp/org/ox-texinfo
/home/dick/.emacs.d/elpa/org-9.4.5/org-plot hides /home/dick/emacs/lisp/org/org-plot
/home/dick/.emacs.d/elpa/org-9.4.5/ob-eval hides /home/dick/emacs/lisp/org/ob-eval
/home/dick/.emacs.d/elpa/org-9.4.5/ob-ref hides /home/dick/emacs/lisp/org/ob-ref
/home/dick/.emacs.d/elpa/org-9.4.5/org-crypt hides /home/dick/emacs/lisp/org/org-crypt
/home/dick/.emacs.d/elpa/org-9.4.5/ob-tangle hides /home/dick/emacs/lisp/org/ob-tangle
/home/dick/.emacs.d/elpa/org-9.4.5/ob-asymptote hides /home/dick/emacs/lisp/org/ob-asymptote
/home/dick/.emacs.d/elpa/org-9.4.5/ol-w3m hides /home/dick/emacs/lisp/org/ol-w3m
/home/dick/.emacs.d/elpa/org-9.4.5/ob-hledger hides /home/dick/emacs/lisp/org/ob-hledger
/home/dick/.emacs.d/elpa/org-9.4.5/ob-forth hides /home/dick/emacs/lisp/org/ob-forth
/home/dick/.emacs.d/elpa/org-9.4.5/org-mouse hides /home/dick/emacs/lisp/org/org-mouse
/home/dick/.emacs.d/elpa/org-9.4.5/org-indent hides /home/dick/emacs/lisp/org/org-indent
/home/dick/.emacs.d/elpa/org-9.4.5/org-attach-git hides /home/dick/emacs/lisp/org/org-attach-git
/home/dick/.emacs.d/elpa/org-9.4.5/org-element hides /home/dick/emacs/lisp/org/org-element
/home/dick/.emacs.d/elpa/org-9.4.5/ol-mhe hides /home/dick/emacs/lisp/org/ol-mhe
/home/dick/.emacs.d/elpa/org-9.4.5/org-footnote hides /home/dick/emacs/lisp/org/org-footnote
/home/dick/.emacs.d/elpa/org-9.4.5/ob-stan hides /home/dick/emacs/lisp/org/ob-stan
/home/dick/.emacs.d/elpa/org-9.4.5/ob-perl hides /home/dick/emacs/lisp/org/ob-perl
/home/dick/.emacs.d/elpa/org-9.4.5/org-timer hides /home/dick/emacs/lisp/org/org-timer
/home/dick/.emacs.d/elpa/org-9.4.5/org-table hides /home/dick/emacs/lisp/org/org-table
/home/dick/.emacs.d/elpa/org-9.4.5/org-keys hides /home/dick/emacs/lisp/org/org-keys
/home/dick/.emacs.d/elpa/org-9.4.5/org-colview hides /home/dick/emacs/lisp/org/org-colview
/home/dick/.emacs.d/elpa/org-9.4.5/ol hides /home/dick/emacs/lisp/org/ol
/home/dick/.emacs.d/elpa/org-9.4.5/org-entities hides /home/dick/emacs/lisp/org/org-entities
/home/dick/.emacs.d/elpa/org-9.4.5/org-src hides /home/dick/emacs/lisp/org/org-src
/home/dick/.emacs.d/elpa/org-9.4.5/ob-js hides /home/dick/emacs/lisp/org/ob-js
/home/dick/.emacs.d/elpa/org-9.4.5/org hides /home/dick/emacs/lisp/org/org
/home/dick/.emacs.d/elpa/org-9.4.5/ob-makefile hides /home/dick/emacs/lisp/org/ob-makefile
/home/dick/.emacs.d/elpa/org-9.4.5/ob-io hides /home/dick/emacs/lisp/org/ob-io
/home/dick/.emacs.d/elpa/org-9.4.5/org-refile hides /home/dick/emacs/lisp/org/org-refile
/home/dick/.emacs.d/elpa/org-9.4.5/org-clock hides /home/dick/emacs/lisp/org/org-clock
/home/dick/.emacs.d/elpa/org-9.4.5/ob-dot hides /home/dick/emacs/lisp/org/ob-dot
/home/dick/.emacs.d/elpa/org-9.4.5/ob-exp hides /home/dick/emacs/lisp/org/ob-exp
/home/dick/.emacs.d/elpa/org-9.4.5/org-compat hides /home/dick/emacs/lisp/org/org-compat
/home/dick/.emacs.d/elpa/org-9.4.5/ob-maxima hides /home/dick/emacs/lisp/org/ob-maxima
/home/dick/.emacs.d/elpa/org-9.4.5/ob-C hides /home/dick/emacs/lisp/org/ob-C
/home/dick/.emacs.d/elpa/org-9.4.5/org-tempo hides /home/dick/emacs/lisp/org/org-tempo
/home/dick/.emacs.d/elpa/org-9.4.5/ox-md hides /home/dick/emacs/lisp/org/ox-md
/home/dick/.emacs.d/elpa/org-9.4.5/ob-screen hides /home/dick/emacs/lisp/org/ob-screen
/home/dick/.emacs.d/elpa/org-9.4.5/ob-lua hides /home/dick/emacs/lisp/org/ob-lua
/home/dick/.emacs.d/elpa/org-9.4.5/ob-matlab hides /home/dick/emacs/lisp/org/ob-matlab
/home/dick/.emacs.d/elpa/org-9.4.5/ob-groovy hides /home/dick/emacs/lisp/org/ob-groovy
/home/dick/.emacs.d/elpa/org-9.4.5/ol-docview hides /home/dick/emacs/lisp/org/ol-docview
/home/dick/.emacs.d/elpa/org-9.4.5/ob-ebnf hides /home/dick/emacs/lisp/org/ob-ebnf
/home/dick/.emacs.d/elpa/org-9.4.5/ob-sed hides /home/dick/emacs/lisp/org/ob-sed
/home/dick/.emacs.d/elpa/org-9.4.5/ox-html hides /home/dick/emacs/lisp/org/ox-html
/home/dick/.emacs.d/elpa/org-9.4.5/ob-emacs-lisp hides /home/dick/emacs/lisp/org/ob-emacs-lisp
/home/dick/.emacs.d/elpa/org-9.4.5/ol-bbdb hides /home/dick/emacs/lisp/org/ol-bbdb
/home/dick/.emacs.d/elpa/org-9.4.5/org-macs hides /home/dick/emacs/lisp/org/org-macs
/home/dick/.emacs.d/elpa/org-9.4.5/org-lint hides /home/dick/emacs/lisp/org/org-lint
/home/dick/.emacs.d/elpa/org-9.4.5/org-loaddefs hides /home/dick/emacs/lisp/org/org-loaddefs
/home/dick/.emacs.d/elpa/org-9.4.5/ob-scheme hides /home/dick/emacs/lisp/org/ob-scheme
/home/dick/.emacs.d/elpa/org-9.4.5/org-protocol hides /home/dick/emacs/lisp/org/org-protocol
/home/dick/.emacs.d/elpa/org-9.4.5/ol-eww hides /home/dick/emacs/lisp/org/ol-eww
/home/dick/.emacs.d/elpa/org-9.4.5/ox-beamer hides /home/dick/emacs/lisp/org/ox-beamer
/home/dick/.emacs.d/elpa/org-9.4.5/ob-core hides /home/dick/emacs/lisp/org/ob-core
/home/dick/.emacs.d/elpa/org-9.4.5/org-agenda hides /home/dick/emacs/lisp/org/org-agenda
/home/dick/.emacs.d/elpa/org-9.4.5/ob-plantuml hides /home/dick/emacs/lisp/org/ob-plantuml
/home/dick/.emacs.d/elpa/org-9.4.5/ox-publish hides /home/dick/emacs/lisp/org/ox-publish
/home/dick/.emacs.d/elpa/org-9.4.5/ol-eshell hides /home/dick/emacs/lisp/org/ol-eshell
/home/dick/.emacs.d/elpa/org-9.4.5/ol-rmail hides /home/dick/emacs/lisp/org/ol-rmail
/home/dick/.emacs.d/elpa/org-9.4.5/ob-J hides /home/dick/emacs/lisp/org/ob-J
/home/dick/.emacs.d/elpa/org-9.4.5/ob-abc hides /home/dick/emacs/lisp/org/ob-abc
/home/dick/.emacs.d/elpa/org-9.4.5/ob-awk hides /home/dick/emacs/lisp/org/ob-awk
/home/dick/.emacs.d/elpa/org-9.4.5/ob-gnuplot hides /home/dick/emacs/lisp/org/ob-gnuplot
/home/dick/.emacs.d/elpa/org-9.4.5/ob-sql hides /home/dick/emacs/lisp/org/ob-sql
/home/dick/.emacs.d/elpa/org-9.4.5/ob-python hides /home/dick/emacs/lisp/org/ob-python
/home/dick/.emacs.d/elpa/org-9.4.5/ob-octave hides /home/dick/emacs/lisp/org/ob-octave
/home/dick/.emacs.d/elpa/org-9.4.5/ox-man hides /home/dick/emacs/lisp/org/ox-man
/home/dick/.emacs.d/elpa/org-9.4.5/ol-bibtex hides /home/dick/emacs/lisp/org/ol-bibtex
/home/dick/.emacs.d/elpa/org-9.4.5/org-goto hides /home/dick/emacs/lisp/org/org-goto
/home/dick/.emacs.d/elpa/org-9.4.5/ob-org hides /home/dick/emacs/lisp/org/ob-org
/home/dick/.emacs.d/elpa/org-9.4.5/ob-lob hides /home/dick/emacs/lisp/org/ob-lob
/home/dick/.emacs.d/elpa/org-9.4.5/ob-calc hides /home/dick/emacs/lisp/org/ob-calc
/home/dick/.emacs.d/elpa/org-9.4.5/org-macro hides /home/dick/emacs/lisp/org/org-macro
/home/dick/.emacs.d/elpa/org-9.4.5/ob hides /home/dick/emacs/lisp/org/ob
/home/dick/.emacs.d/elpa/org-9.4.5/ol-info hides /home/dick/emacs/lisp/org/ol-info
/home/dick/.emacs.d/elpa/org-9.4.5/ox-ascii hides /home/dick/emacs/lisp/org/ox-ascii
/home/dick/.emacs.d/elpa/org-9.4.5/ob-clojure hides /home/dick/emacs/lisp/org/ob-clojure
/home/dick/.emacs.d/elpa/org-9.4.5/org-inlinetask hides /home/dick/emacs/lisp/org/org-inlinetask
/home/dick/.emacs.d/elpa/org-9.4.5/ob-vala hides /home/dick/emacs/lisp/org/ob-vala
/home/dick/.emacs.d/elpa/org-9.4.5/ob-ruby hides /home/dick/emacs/lisp/org/ob-ruby
/home/dick/.emacs.d/elpa/org-9.4.5/ob-sass hides /home/dick/emacs/lisp/org/ob-sass
/home/dick/.emacs.d/elpa/org-9.4.5/org-faces hides /home/dick/emacs/lisp/org/org-faces
/home/dick/.emacs.d/elpa/org-9.4.5/org-attach hides /home/dick/emacs/lisp/org/org-attach
/home/dick/.emacs.d/elpa/org-9.4.5/ob-lilypond hides /home/dick/emacs/lisp/org/ob-lilypond
/home/dick/.emacs.d/elpa/org-9.4.5/org-archive hides /home/dick/emacs/lisp/org/org-archive
/home/dick/.emacs.d/elpa/org-9.4.5/ob-shen hides /home/dick/emacs/lisp/org/ob-shen
/home/dick/.emacs.d/elpa/org-9.4.5/org-datetree hides /home/dick/emacs/lisp/org/org-datetree
/home/dick/.emacs.d/elpa/org-9.4.5/org-id hides /home/dick/emacs/lisp/org/org-id
/home/dick/.emacs.d/elpa/org-9.4.5/ob-eshell hides /home/dick/emacs/lisp/org/ob-eshell
/home/dick/.emacs.d/elpa/org-9.4.5/ob-sqlite hides /home/dick/emacs/lisp/org/ob-sqlite
/home/dick/.emacs.d/elpa/org-9.4.5/ob-picolisp hides /home/dick/emacs/lisp/org/ob-picolisp
/home/dick/.emacs.d/elpa/org-9.4.5/org-habit hides /home/dick/emacs/lisp/org/org-habit
/home/dick/.emacs.d/elpa/org-9.4.5/org-ctags hides /home/dick/emacs/lisp/org/org-ctags
/home/dick/.emacs.d/elpa/gnus-5.14pre/ol-gnus hides /home/dick/emacs/lisp/org/ol-gnus
/home/dick/.emacs.d/elpa/org-9.4.5/ob-java hides /home/dick/emacs/lisp/org/ob-java
/home/dick/.emacs.d/elpa/org-9.4.5/ox-latex hides /home/dick/emacs/lisp/org/ox-latex
/home/dick/.emacs.d/elpa/org-9.4.5/org-pcomplete hides /home/dick/emacs/lisp/org/org-pcomplete
/home/dick/.emacs.d/elpa/org-9.4.5/ob-processing hides /home/dick/emacs/lisp/org/ob-processing
/home/dick/.emacs.d/elpa/org-9.4.5/ox-odt hides /home/dick/emacs/lisp/org/ox-odt
/home/dick/.emacs.d/elpa/org-9.4.5/org-feed hides /home/dick/emacs/lisp/org/org-feed
/home/dick/.emacs.d/elpa/org-9.4.5/ob-ditaa hides /home/dick/emacs/lisp/org/ob-ditaa
/home/dick/.emacs.d/elpa/org-9.4.5/ox-org hides /home/dick/emacs/lisp/org/ox-org
/home/dick/.emacs.d/elpa/org-9.4.5/ob-coq hides /home/dick/emacs/lisp/org/ob-coq
/home/dick/.emacs.d/elpa/org-9.4.5/ob-R hides /home/dick/emacs/lisp/org/ob-R
/home/dick/.emacs.d/elpa/org-9.4.5/ob-fortran hides /home/dick/emacs/lisp/org/ob-fortran
/home/dick/.emacs.d/elpa/org-9.4.5/ob-haskell hides /home/dick/emacs/lisp/org/ob-haskell
/home/dick/.emacs.d/elpa/org-9.4.5/ox-icalendar hides /home/dick/emacs/lisp/org/ox-icalendar
/home/dick/.emacs.d/elpa/org-9.4.5/org-num hides /home/dick/emacs/lisp/org/org-num
/home/dick/.emacs.d/elpa/org-9.4.5/ob-ledger hides /home/dick/emacs/lisp/org/ob-ledger
/home/dick/.emacs.d/elpa/org-9.4.5/ox hides /home/dick/emacs/lisp/org/ox
/home/dick/.emacs.d/elpa/org-9.4.5/org-mobile hides /home/dick/emacs/lisp/org/org-mobile
/home/dick/.emacs.d/elpa/org-9.4.5/org-duration hides /home/dick/emacs/lisp/org/org-duration
/home/dick/.emacs.d/elpa/org-9.4.5/org-list hides /home/dick/emacs/lisp/org/org-list
/home/dick/.emacs.d/elpa/org-9.4.5/ob-latex hides /home/dick/emacs/lisp/org/ob-latex
/home/dick/.emacs.d/elpa/org-9.4.5/ob-ocaml hides /home/dick/emacs/lisp/org/ob-ocaml
/home/dick/.emacs.d/elpa/org-9.4.5/ob-lisp hides /home/dick/emacs/lisp/org/ob-lisp
/home/dick/.emacs.d/elpa/org-9.4.5/ob-mscgen hides /home/dick/emacs/lisp/org/ob-mscgen
/home/dick/.emacs.d/elpa/org-9.4.5/ob-comint hides /home/dick/emacs/lisp/org/ob-comint
/home/dick/.emacs.d/elpa/org-9.4.5/org-capture hides /home/dick/emacs/lisp/org/org-capture
/home/dick/.emacs.d/elpa/org-9.4.5/ob-table hides /home/dick/emacs/lisp/org/ob-table
/home/dick/.emacs.d/elpa/org-9.4.5/ob-shell hides /home/dick/emacs/lisp/org/ob-shell
/home/dick/.emacs.d/elpa/org-9.4.5/ol-irc hides /home/dick/emacs/lisp/org/ol-irc
/home/dick/.emacs.d/elpa/org-9.4.5/org-version hides /home/dick/emacs/lisp/org/org-version
/home/dick/.emacs.d/elpa/gnus-5.14pre/mh-compat hides /home/dick/emacs/lisp/mh-e/mh-compat
/home/dick/.emacs.d/elpa/gnus-5.14pre/gnus-sieve hides /home/dick/emacs/lisp/gnus/gnus-sieve
/home/dick/.emacs.d/elpa/gnus-5.14pre/spam-stat hides /home/dick/emacs/lisp/gnus/spam-stat
/home/dick/.emacs.d/elpa/gnus-5.14pre/smiley hides /home/dick/emacs/lisp/gnus/smiley
/home/dick/.emacs.d/elpa/gnus-5.14pre/nntp hides /home/dick/emacs/lisp/gnus/nntp
/home/dick/.emacs.d/elpa/gnus-5.14pre/gnus-util hides /home/dick/emacs/lisp/gnus/gnus-util
/home/dick/.emacs.d/elpa/gnus-5.14pre/mail-source hides /home/dick/emacs/lisp/gnus/mail-source
/home/dick/.emacs.d/elpa/gnus-5.14pre/gnus-gravatar hides /home/dick/emacs/lisp/gnus/gnus-gravatar
/home/dick/.emacs.d/elpa/gnus-5.14pre/nnml hides /home/dick/emacs/lisp/gnus/nnml
/home/dick/.emacs.d/elpa/gnus-5.14pre/spam-report hides /home/dick/emacs/lisp/gnus/spam-report
/home/dick/.emacs.d/elpa/gnus-5.14pre/nnagent hides /home/dick/emacs/lisp/gnus/nnagent
/home/dick/.emacs.d/elpa/gnus-5.14pre/gnus-mh hides /home/dick/emacs/lisp/gnus/gnus-mh
/home/dick/.emacs.d/elpa/gnus-5.14pre/gnus-uu hides /home/dick/emacs/lisp/gnus/gnus-uu
/home/dick/.emacs.d/elpa/gnus-5.14pre/nnrss hides /home/dick/emacs/lisp/gnus/nnrss
/home/dick/.emacs.d/elpa/gnus-5.14pre/gnus-vm hides /home/dick/emacs/lisp/gnus/gnus-vm
/home/dick/.emacs.d/elpa/gnus-5.14pre/nndiary hides /home/dick/emacs/lisp/gnus/nndiary
/home/dick/.emacs.d/elpa/gnus-5.14pre/gnus-delay hides /home/dick/emacs/lisp/gnus/gnus-delay
/home/dick/.emacs.d/elpa/gnus-5.14pre/mm-util hides /home/dick/emacs/lisp/gnus/mm-util
/home/dick/.emacs.d/elpa/gnus-5.14pre/gnus-fun hides /home/dick/emacs/lisp/gnus/gnus-fun
/home/dick/.emacs.d/elpa/gnus-5.14pre/mm-bodies hides /home/dick/emacs/lisp/gnus/mm-bodies
/home/dick/.emacs.d/elpa/gnus-5.14pre/mml1991 hides /home/dick/emacs/lisp/gnus/mml1991
/home/dick/.emacs.d/elpa/gnus-5.14pre/mm-partial hides /home/dick/emacs/lisp/gnus/mm-partial
/home/dick/.emacs.d/elpa/gnus-5.14pre/nndir hides /home/dick/emacs/lisp/gnus/nndir
/home/dick/.emacs.d/elpa/gnus-5.14pre/message hides /home/dick/emacs/lisp/gnus/message
/home/dick/.emacs.d/elpa/gnus-5.14pre/nnmh hides /home/dick/emacs/lisp/gnus/nnmh
/home/dick/.emacs.d/elpa/gnus-5.14pre/gnus-bcklg hides /home/dick/emacs/lisp/gnus/gnus-bcklg
/home/dick/.emacs.d/elpa/gnus-5.14pre/nndraft hides /home/dick/emacs/lisp/gnus/nndraft
/home/dick/.emacs.d/elpa/gnus-5.14pre/gnus-notifications hides /home/dick/emacs/lisp/gnus/gnus-notifications
/home/dick/.emacs.d/elpa/gnus-5.14pre/nnweb hides /home/dick/emacs/lisp/gnus/nnweb
/home/dick/.emacs.d/elpa/gnus-5.14pre/gnus-start hides /home/dick/emacs/lisp/gnus/gnus-start
/home/dick/.emacs.d/elpa/gnus-5.14pre/gnus-cloud hides /home/dick/emacs/lisp/gnus/gnus-cloud
/home/dick/.emacs.d/elpa/gnus-5.14pre/gnus-undo hides /home/dick/emacs/lisp/gnus/gnus-undo
/home/dick/.emacs.d/elpa/gnus-5.14pre/gnus hides /home/dick/emacs/lisp/gnus/gnus
/home/dick/.emacs.d/elpa/gnus-5.14pre/nndoc hides /home/dick/emacs/lisp/gnus/nndoc
/home/dick/.emacs.d/elpa/gnus-5.14pre/nnmaildir hides /home/dick/emacs/lisp/gnus/nnmaildir
/home/dick/.emacs.d/elpa/gnus-5.14pre/gnus-rfc1843 hides /home/dick/emacs/lisp/gnus/gnus-rfc1843
/home/dick/.emacs.d/elpa/gnus-5.14pre/gnus-icalendar hides /home/dick/emacs/lisp/gnus/gnus-icalendar
/home/dick/.emacs.d/elpa/gnus-5.14pre/nnspool hides /home/dick/emacs/lisp/gnus/nnspool
/home/dick/.emacs.d/elpa/gnus-5.14pre/mm-uu hides /home/dick/emacs/lisp/gnus/mm-uu
/home/dick/.emacs.d/elpa/gnus-5.14pre/mml2015 hides /home/dick/emacs/lisp/gnus/mml2015
/home/dick/.emacs.d/elpa/gnus-5.14pre/nnfolder hides /home/dick/emacs/lisp/gnus/nnfolder
/home/dick/.emacs.d/elpa/gnus-5.14pre/nnmairix hides /home/dick/emacs/lisp/gnus/nnmairix
/home/dick/.emacs.d/elpa/gnus-5.14pre/nnheader hides /home/dick/emacs/lisp/gnus/nnheader
/home/dick/.emacs.d/elpa/gnus-5.14pre/mm-view hides /home/dick/emacs/lisp/gnus/mm-view
/home/dick/.emacs.d/elpa/gnus-5.14pre/gnus-cus hides /home/dick/emacs/lisp/gnus/gnus-cus
/home/dick/.emacs.d/elpa/gnus-5.14pre/gnus-dup hides /home/dick/emacs/lisp/gnus/gnus-dup
/home/dick/.emacs.d/elpa/gnus-5.14pre/nnregistry hides /home/dick/emacs/lisp/gnus/nnregistry
/home/dick/.emacs.d/elpa/gnus-5.14pre/gnus-demon hides /home/dick/emacs/lisp/gnus/gnus-demon
/home/dick/.emacs.d/elpa/gnus-5.14pre/legacy-gnus-agent hides /home/dick/emacs/lisp/gnus/legacy-gnus-agent
/home/dick/.emacs.d/elpa/gnus-5.14pre/gnus-html hides /home/dick/emacs/lisp/gnus/gnus-html
/home/dick/.emacs.d/elpa/gnus-5.14pre/smime hides /home/dick/emacs/lisp/gnus/smime
/home/dick/.emacs.d/elpa/gnus-5.14pre/gnus-logic hides /home/dick/emacs/lisp/gnus/gnus-logic
/home/dick/.emacs.d/elpa/gnus-5.14pre/gnus-spec hides /home/dick/emacs/lisp/gnus/gnus-spec
/home/dick/.emacs.d/elpa/gnus-5.14pre/mml-smime hides /home/dick/emacs/lisp/gnus/mml-smime
/home/dick/.emacs.d/elpa/gnus-5.14pre/spam hides /home/dick/emacs/lisp/gnus/spam
/home/dick/.emacs.d/elpa/gnus-5.14pre/gnus-salt hides /home/dick/emacs/lisp/gnus/gnus-salt
/home/dick/.emacs.d/elpa/gnus-5.14pre/nnvirtual hides /home/dick/emacs/lisp/gnus/nnvirtual
/home/dick/.emacs.d/elpa/gnus-5.14pre/canlock hides /home/dick/emacs/lisp/gnus/canlock
/home/dick/.emacs.d/elpa/gnus-5.14pre/gnus-srvr hides /home/dick/emacs/lisp/gnus/gnus-srvr
/home/dick/.emacs.d/elpa/gnus-5.14pre/gnus-draft hides /home/dick/emacs/lisp/gnus/gnus-draft
/home/dick/.emacs.d/elpa/gnus-5.14pre/gnus-score hides /home/dick/emacs/lisp/gnus/gnus-score
/home/dick/.emacs.d/elpa/gnus-5.14pre/gnus-mlspl hides /home/dick/emacs/lisp/gnus/gnus-mlspl
/home/dick/.emacs.d/elpa/gnus-5.14pre/gnus-msg hides /home/dick/emacs/lisp/gnus/gnus-msg
/home/dick/.emacs.d/elpa/gnus-5.14pre/deuglify hides /home/dick/emacs/lisp/gnus/deuglify
/home/dick/.emacs.d/elpa/gnus-5.14pre/gnus-win hides /home/dick/emacs/lisp/gnus/gnus-win
/home/dick/.emacs.d/elpa/gnus-5.14pre/gnus-cite hides /home/dick/emacs/lisp/gnus/gnus-cite
/home/dick/.emacs.d/elpa/gnus-5.14pre/mm-decode hides /home/dick/emacs/lisp/gnus/mm-decode
/home/dick/.emacs.d/elpa/gnus-5.14pre/mml hides /home/dick/emacs/lisp/gnus/mml
/home/dick/.emacs.d/elpa/gnus-5.14pre/mm-encode hides /home/dick/emacs/lisp/gnus/mm-encode
/home/dick/.emacs.d/elpa/gnus-5.14pre/gnus-art hides /home/dick/emacs/lisp/gnus/gnus-art
/home/dick/.emacs.d/elpa/gnus-5.14pre/mml-sec hides /home/dick/emacs/lisp/gnus/mml-sec
/home/dick/.emacs.d/elpa/gnus-5.14pre/nnselect hides /home/dick/emacs/lisp/gnus/nnselect
/home/dick/.emacs.d/elpa/gnus-5.14pre/gnus-search hides /home/dick/emacs/lisp/gnus/gnus-search
/home/dick/.emacs.d/elpa/gnus-5.14pre/mm-url hides /home/dick/emacs/lisp/gnus/mm-url
/home/dick/.emacs.d/elpa/gnus-5.14pre/gnus-picon hides /home/dick/emacs/lisp/gnus/gnus-picon
/home/dick/.emacs.d/elpa/gnus-5.14pre/gssapi hides /home/dick/emacs/lisp/gnus/gssapi
/home/dick/.emacs.d/elpa/gnus-5.14pre/gnus-registry hides /home/dick/emacs/lisp/gnus/gnus-registry
/home/dick/.emacs.d/elpa/gnus-5.14pre/gnus-eform hides /home/dick/emacs/lisp/gnus/gnus-eform
/home/dick/.emacs.d/elpa/gnus-5.14pre/gnus-ml hides /home/dick/emacs/lisp/gnus/gnus-ml
/home/dick/.emacs.d/elpa/gnus-5.14pre/nnnil hides /home/dick/emacs/lisp/gnus/nnnil
/home/dick/.emacs.d/elpa/gnus-5.14pre/nneething hides /home/dick/emacs/lisp/gnus/nneething
/home/dick/.emacs.d/elpa/gnus-5.14pre/gnus-bookmark hides /home/dick/emacs/lisp/gnus/gnus-bookmark
/home/dick/.emacs.d/elpa/gnus-5.14pre/mm-archive hides /home/dick/emacs/lisp/gnus/mm-archive
/home/dick/.emacs.d/elpa/gnus-5.14pre/gnus-group hides /home/dick/emacs/lisp/gnus/gnus-group
/home/dick/.emacs.d/elpa/gnus-5.14pre/gnus-int hides /home/dick/emacs/lisp/gnus/gnus-int
/home/dick/.emacs.d/elpa/gnus-5.14pre/nnmbox hides /home/dick/emacs/lisp/gnus/nnmbox
/home/dick/.emacs.d/elpa/gnus-5.14pre/gnus-kill hides /home/dick/emacs/lisp/gnus/gnus-kill
/home/dick/.emacs.d/elpa/gnus-5.14pre/gnus-async hides /home/dick/emacs/lisp/gnus/gnus-async
/home/dick/.emacs.d/elpa/gnus-5.14pre/gnus-range hides /home/dick/emacs/lisp/gnus/gnus-range
/home/dick/.emacs.d/elpa/gnus-5.14pre/nnmail hides /home/dick/emacs/lisp/gnus/nnmail
/home/dick/.emacs.d/elpa/gnus-5.14pre/score-mode hides /home/dick/emacs/lisp/gnus/score-mode
/home/dick/.emacs.d/elpa/gnus-5.14pre/gmm-utils hides /home/dick/emacs/lisp/gnus/gmm-utils
/home/dick/.emacs.d/elpa/gnus-5.14pre/gnus-topic hides /home/dick/emacs/lisp/gnus/gnus-topic
/home/dick/.emacs.d/elpa/gnus-5.14pre/gnus-sum hides /home/dick/emacs/lisp/gnus/gnus-sum
/home/dick/.emacs.d/elpa/gnus-5.14pre/nnimap hides /home/dick/emacs/lisp/gnus/nnimap
/home/dick/.emacs.d/elpa/gnus-5.14pre/gnus-agent hides /home/dick/emacs/lisp/gnus/gnus-agent
/home/dick/.emacs.d/elpa/gnus-5.14pre/nnoo hides /home/dick/emacs/lisp/gnus/nnoo
/home/dick/.emacs.d/elpa/gnus-5.14pre/gnus-cache hides /home/dick/emacs/lisp/gnus/gnus-cache
/home/dick/.emacs.d/elpa/gnus-5.14pre/nnbabyl hides /home/dick/emacs/lisp/gnus/nnbabyl
/home/dick/.emacs.d/elpa/gnus-5.14pre/gnus-dired hides /home/dick/emacs/lisp/gnus/gnus-dired
/home/dick/.emacs.d/elpa/gnus-5.14pre/spam-wash hides /home/dick/emacs/lisp/gnus/spam-wash
/home/dick/.emacs.d/elpa/gnus-5.14pre/gnus-dbus hides /home/dick/emacs/lisp/gnus/gnus-dbus
/home/dick/.emacs.d/elpa/gnus-5.14pre/gnus-diary hides /home/dick/emacs/lisp/gnus/gnus-diary
/home/dick/.emacs.d/elpa/gnus-5.14pre/nngateway hides /home/dick/emacs/lisp/gnus/nngateway
/home/dick/.emacs.d/elpa/gnus-5.14pre/mm-extern hides /home/dick/emacs/lisp/gnus/mm-extern
/home/dick/.emacs.d/elpa/hierarchy-20171221.1151/hierarchy hides /home/dick/emacs/lisp/emacs-lisp/hierarchy
/home/dick/.emacs.d/elpa/gnus-5.14pre/nnir hides /home/dick/emacs/lisp/obsolete/nnir

Features:
(shadow bbdb-message flyspell ispell footnote emacsbug magit-extras misearch
multi-isearch bug-reference magit-patch-changelog magit-patch magit-submodule
magit-obsolete magit-popup async-bytecomp async magit-blame magit-stash
magit-reflog magit-bisect magit-push magit-pull magit-fetch magit-clone
magit-remote magit-commit magit-sequence magit-notes magit-worktree magit-tag
magit-merge magit-branch magit-reset magit-files magit-refs magit-status magit
magit-repos magit-apply magit-wip magit-log magit-diff smerge-mode diff
git-commit log-edit pcvs-util add-log magit-core magit-autorevert magit-margin
magit-transient magit-process with-editor vterm face-remap vterm-module term
ehelp eshell esh-cmd esh-ext esh-opt esh-proc esh-io esh-arg esh-module
esh-groups esh-util server magit-mode transient magit-git magit-section
magit-utils which-func imenu vc-git diff-mode vc-dispatcher qp sort smiley
mail-extr gnus-async gnus-ml gnus-notifications gnus-fun notifications
gnus-kill gnus-dup disp-table mm-archive gnutls url-cache nntwitter
nntwitter-api nnrss nndiscourse rbenv nnhackernews benchmark utf-7
network-stream nnfolder bbdb-gnus gnus-demon nntp nnmairix nnml nnreddit
gnus-topic url-http url-auth url-gw nsm virtualenvwrapper gud s json-rpc
python tramp-sh tramp tramp-loaddefs trampver tramp-integration files-x
tramp-compat ls-lisp gnus-score score-mode gnus-bcklg gnus-srvr gnus-cite
bbdb-mua bbdb-com crm bbdb bbdb-site timezone gnus-delay gnus-draft gnus-cache
gnus-agent gnus-msg nndraft nnmh use-package use-package-delight
use-package-diminish paredit-ext paredit mu4e mu4e-org mu4e-main mu4e-view
mu4e-view-gnus gnus-art mm-uu mml2015 mm-view mml-smime smime dig
mu4e-view-common mu4e-headers mu4e-compose mu4e-context mu4e-draft
mu4e-actions org-capture org-refile rfc2368 smtpmail sendmail mu4e-mark
mu4e-proc mu4e-utils doc-view jka-compr image-mode exif mu4e-lists
mu4e-message flow-fill org-tempo tempo org org-macro org-footnote
org-pcomplete org-list org-faces org-entities org-version ob-R ob-emacs-lisp
ob-ein ein-cell ein-output-area ein-kernel ein-ipdb ein-query ein-events
ein-websocket websocket bindat ein-node ewoc ein-log ein-classes ein-core
request autorevert filenotify ein ein-utils anaphora deferred dash cc-mode
cc-fonts cc-guess cc-menus cc-cmds cc-styles cc-align cc-engine cc-vars
cc-defs ob ob-tangle org-src ob-ref ob-lob ob-table ob-exp ob-comint ob-core
ob-eval org-table ol org-keys org-compat org-macs org-loaddefs find-func
cal-menu calendar cal-loaddefs gnus-sum shr kinsoku svg dom gnus-group mm-url
gnus-undo gnus-start gnus-dbus dbus xml gnus-cloud nnimap nnmail mail-source
utf7 netrc nnoo parse-time iso8601 gnus-spec gnus-int gnus-range gnus-win
mule-util mu4e-vars message rmc puny dired-x dired dired-loaddefs rfc822 mml
mml-sec epa epg epg-config mm-decode mm-bodies mm-encode mail-parse rfc2231
mailabbrev gmm-utils mailheader mu4e-meta subed subed-vtt subed-srt
subed-common subed-mpv subed-debug subed-config inf-ruby ruby-mode smie
company pcase haskell-interactive-mode haskell-presentation-mode
haskell-process haskell-session haskell-compile haskell-mode haskell-cabal
haskell-utils haskell-font-lock haskell-indentation haskell-string
haskell-sort-imports haskell-lexeme rx haskell-align-imports
haskell-complete-module haskell-ghc-support etags fileloop generator dabbrev
haskell-customize hydra lv use-package-ensure paren solarized-theme
solarized-definitions projectile ibuf-ext ibuffer ibuffer-loaddefs grep gnus
nnheader gnus-util rmail rmail-loaddefs rfc2047 rfc2045 ietf-drums mm-util
mail-prsvr mail-utils time-date flx-ido flx google-translate-default-ui
google-translate-core-ui facemenu color ido google-translate-core
google-translate-tk google-translate-backend use-package-bind-key bind-key
auto-complete advice popup cus-edit pp cus-load wid-edit ess-r-mode
ess-r-flymake flymake-proc flymake warnings thingatpt ess-r-xref xref ess-trns
ess-r-package shell pcomplete ess-r-completion ess-roxy ess-r-syntax ess-rd
noutline outline easy-mmode hideshow ess-s-lang ess-help ess-mode ess-inf
project format-spec ess-tracebug ess ess-utils ess-custom compile
text-property-search comint ansi-color emms-player-mplayer emms-player-simple
emms emms-compat cl-extra help-mode use-package-core derived hl-line winner
ring edmacro kmacro finder-inf json-reformat-autoloads json-snatcher-autoloads
sml-mode-autoloads tornado-template-mode-autoloads info package browse-url url
url-proxy url-privacy url-expand url-methods url-history url-cookie url-domsuf
url-util mailcap url-handlers url-parse auth-source cl-seq eieio eieio-core
cl-macs eieio-loaddefs password-cache json subr-x map url-vars seq byte-opt gv
bytecomp byte-compile cconv cl-loaddefs cl-lib iso-transl tooltip eldoc
electric uniquify ediff-hook vc-hooks lisp-float-type mwheel term/x-win x-win
term/common-win x-dnd tool-bar dnd fontset image regexp-opt fringe
tabulated-list replace newcomment text-mode elisp-mode lisp-mode prog-mode
register page tab-bar menu-bar rfn-eshadow isearch easymenu timer select
scroll-bar mouse jit-lock font-lock syntax font-core term/tty-colors frame
minibuffer cl-generic cham georgian utf-8-lang misc-lang vietnamese tibetan
thai tai-viet lao korean japanese eucjp-ms cp51932 hebrew greek romanian
slovak czech european ethiopic indian cyrillic chinese composite charscript
charprop case-table epa-hook jka-cmpr-hook help simple abbrev obarray
cl-preloaded nadvice button loaddefs faces cus-face macroexp files window
text-properties overlay sha1 md5 base64 format env code-pages mule custom
widget hashtable-print-readable backquote threads dbusbind inotify lcms2
dynamic-setting system-font-setting font-render-setting cairo move-toolbar gtk
x-toolkit x multi-tty make-network-process emacs)

Memory information:
((conses 16 1190935 94244)
 (symbols 48 59781 2)
 (strings 32 203377 13437)
 (string-bytes 1 7002790)
 (vectors 16 60918)
 (vector-slots 8 850567 67117)
 (floats 8 2088 1051)
 (intervals 56 1583 36)
 (buffers 992 31))