From mboxrd@z Thu Jan 1 00:00:00 1970 Path: news.gmane.io!.POSTED.blaine.gmane.org!not-for-mail From: dick.r.chiang@gmail.com Newsgroups: gmane.emacs.bugs Subject: bug#49708: 28.0.50; [PATCH] Fix byte compilation of package built-ins Date: Fri, 23 Jul 2021 08:00:30 -0400 Message-ID: <87pmv9z1cx.fsf@dick> Mime-Version: 1.0 Content-Type: multipart/mixed; boundary="=-=-=" Injection-Info: ciao.gmane.io; posting-host="blaine.gmane.org:116.202.254.214"; logging-data="12397"; mail-complaints-to="usenet@ciao.gmane.io" User-Agent: Gnus/5.14 (Gnus v5.14pre) Emacs/28.0.50 (gnu/linux) To: 49708@debbugs.gnu.org Original-X-From: bug-gnu-emacs-bounces+geb-bug-gnu-emacs=m.gmane-mx.org@gnu.org Fri Jul 23 14:01:25 2021 Return-path: Envelope-to: geb-bug-gnu-emacs@m.gmane-mx.org Original-Received: from lists.gnu.org ([209.51.188.17]) by ciao.gmane.io with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.92) (envelope-from ) id 1m6tro-00032Q-Ht for geb-bug-gnu-emacs@m.gmane-mx.org; Fri, 23 Jul 2021 14:01:24 +0200 Original-Received: from localhost ([::1]:57950 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1m6trn-0000YU-D6 for geb-bug-gnu-emacs@m.gmane-mx.org; Fri, 23 Jul 2021 08:01:23 -0400 Original-Received: from eggs.gnu.org ([2001:470:142:3::10]:48158) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1m6trV-0000Uf-9l for bug-gnu-emacs@gnu.org; Fri, 23 Jul 2021 08:01:06 -0400 Original-Received: from debbugs.gnu.org ([209.51.188.43]:59157) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1m6trR-0000pH-U6 for bug-gnu-emacs@gnu.org; Fri, 23 Jul 2021 08:01:03 -0400 Original-Received: from Debian-debbugs by debbugs.gnu.org with local (Exim 4.84_2) (envelope-from ) id 1m6trR-0000Vj-RF for bug-gnu-emacs@gnu.org; Fri, 23 Jul 2021 08:01:01 -0400 X-Loop: help-debbugs@gnu.org Resent-From: dick.r.chiang@gmail.com Original-Sender: "Debbugs-submit" Resent-CC: bug-gnu-emacs@gnu.org Resent-Date: Fri, 23 Jul 2021 12:01:01 +0000 Resent-Message-ID: Resent-Sender: help-debbugs@gnu.org X-GNU-PR-Message: report 49708 X-GNU-PR-Package: emacs X-GNU-PR-Keywords: patch X-Debbugs-Original-To: bug-gnu-emacs@gnu.org Original-Received: via spool by submit@debbugs.gnu.org id=B.16270416471934 (code B ref -1); Fri, 23 Jul 2021 12:01:01 +0000 Original-Received: (at submit) by debbugs.gnu.org; 23 Jul 2021 12:00:47 +0000 Original-Received: from localhost ([127.0.0.1]:42470 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1m6trB-0000V6-7m for submit@debbugs.gnu.org; Fri, 23 Jul 2021 08:00:47 -0400 Original-Received: from lists.gnu.org ([209.51.188.17]:45186) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1m6tr5-0000Uu-B4 for submit@debbugs.gnu.org; Fri, 23 Jul 2021 08:00:43 -0400 Original-Received: from eggs.gnu.org ([2001:470:142:3::10]:48006) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1m6tr4-0000Jc-H0 for bug-gnu-emacs@gnu.org; Fri, 23 Jul 2021 08:00:39 -0400 Original-Received: from mail-qt1-x832.google.com ([2607:f8b0:4864:20::832]:38813) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1m6tr0-0000YZ-Cs for bug-gnu-emacs@gnu.org; Fri, 23 Jul 2021 08:00:38 -0400 Original-Received: by mail-qt1-x832.google.com with SMTP id h10so1446447qth.5 for ; Fri, 23 Jul 2021 05:00:33 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=from:to:subject:date:message-id:user-agent:mime-version; bh=I1dI1syH1gwsz9sapwwAc+EE3+5Isc384Aus1JuSqRA=; b=TC3qFnB8BXGXFOcRnXtonwm61AR4pukrvYdOqBoUXXIg9/jLTZ8BoQng5/VRVsJdX/ XyX4RMVB2ZDy1pC9cRjnjD3jz1M2/ug/uAjj0yxYkBwhSEfjcpq5pjvlpdbaUc5ASaKi nfNnVmF+EeXnytNv8VPIh/1fny0GS3UVX8jtfO6UqSDC0hQFkU08F+WCv+pNEDjkVfst q6riJbP0+nRZMabfwZM5opsw7NJn4o1aQOIfbEmjl0Gw06hw9hq0HT3YrLnd9QUV3UtF 8sWfpFoUilmC2+zixEqDDPbE3nSTKy0UtG5gtOgusshc3k21iXRdGjIBpPD3KcECFFRN uEdQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:subject:date:message-id:user-agent :mime-version; bh=I1dI1syH1gwsz9sapwwAc+EE3+5Isc384Aus1JuSqRA=; b=oXqQFXw/PSo3JlrhQtfNXzo8YK2pwecNhYAKB8dI6PCiQVrniljFdjI4Jz6dLtnNvr L6H7LUEeE0t/7RufwOVpsx5JcXRJQqHZyiRCq8lJQNDo7c54l/Zvj8+xuWPV/g1kcVpi MP+HBrAUzyntVKHs4Bo57CSiQxR6EiOvcBsLSGq4SigeEEMZfikW3odUiiosrQVlawIj RkFUUiZ5Fq6kRcK5/ht4pmPiRWnR3U6LVnSAMNfv26MNiDjxr3a8PV1d1Gr+GHJklEOQ 1ByH4w78GTPz90+da6j/HSnLUyWf6dU6cwwUjKqWKePl+cc6jfKbUypAfjLp51Zvbl// S4rg== X-Gm-Message-State: AOAM531EZ/VhUfqcP35zPRwM+qDr0CwUf7ubAplznlMnelvrCCjOEWDa BYMHLD0YNZeDB65gMbmyTwHqHpYSW5I= X-Google-Smtp-Source: ABdhPJyzfz0iVnCzdcv29xJBpPe5Qp5ZDBxiIKPc+ubleQppPlaebCMXfaOHPyEXytl5PP1o1ydVgA== X-Received: by 2002:ac8:4401:: with SMTP id j1mr3604817qtn.137.1627041632310; Fri, 23 Jul 2021 05:00:32 -0700 (PDT) Original-Received: from localhost ([68.237.93.126]) by smtp.gmail.com with ESMTPSA id a11sm7580009qkl.125.2021.07.23.05.00.31 for (version=TLS1_2 cipher=ECDHE-ECDSA-CHACHA20-POLY1305 bits=256/256); Fri, 23 Jul 2021 05:00:31 -0700 (PDT) Received-SPF: pass client-ip=2607:f8b0:4864:20::832; envelope-from=dick.r.chiang@gmail.com; helo=mail-qt1-x832.google.com X-Spam_score_int: -1 X-Spam_score: -0.2 X-Spam_bar: / X-Spam_report: (-0.2 / 5.0 requ) DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, FREEMAIL_FROM=0.001, RCVD_IN_DNSWL_NONE=-0.0001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=ham autolearn_force=no X-Spam_action: no action X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list X-BeenThere: bug-gnu-emacs@gnu.org List-Id: "Bug reports for GNU Emacs, the Swiss army knife of text editors" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: bug-gnu-emacs-bounces+geb-bug-gnu-emacs=m.gmane-mx.org@gnu.org Original-Sender: "bug-gnu-emacs" Xref: news.gmane.io gmane.emacs.bugs:210571 Archived-At: --=-=-= Content-Type: text/plain 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? --=-=-= Content-Type: text/x-diff Content-Disposition: attachment; filename=0001-Package-byte-compilation-breaks-for-built-ins.patch >From 0c3fe76b809fc1448b17c37943a5ccf09ff29f4a Mon Sep 17 00:00:00 2001 From: dickmao 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 + +;;; 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 +;; 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 + +;;; 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 +;; 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 --=-=-= Content-Type: text/plain 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)) --=-=-=--