From unknown Fri Aug 08 20:52:40 2025 Content-Disposition: inline Content-Transfer-Encoding: quoted-printable MIME-Version: 1.0 X-Mailer: MIME-tools 5.509 (Entity 5.509) Content-Type: text/plain; charset=utf-8 From: bug#78844 <78844@debbugs.gnu.org> To: bug#78844 <78844@debbugs.gnu.org> Subject: Status: 30.1; feature request: public interface for querying builtin packages and versions Reply-To: bug#78844 <78844@debbugs.gnu.org> Date: Sat, 09 Aug 2025 03:52:40 +0000 retitle 78844 30.1; feature request: public interface for querying builtin = packages and versions reassign 78844 emacs submitter 78844 Xiyue Deng severity 78844 wishlist thanks From debbugs-submit-bounces@debbugs.gnu.org Thu Jun 19 19:45:44 2025 Received: (at submit) by debbugs.gnu.org; 19 Jun 2025 23:45:45 +0000 Received: from localhost ([127.0.0.1]:40087 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1uSOwy-0001A3-Bt for submit@debbugs.gnu.org; Thu, 19 Jun 2025 19:45:44 -0400 Received: from lists.gnu.org ([2001:470:142::17]:44828) by debbugs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.84_2) (envelope-from ) id 1uSOww-00018l-JQ for submit@debbugs.gnu.org; Thu, 19 Jun 2025 19:45:42 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1uSOwq-0005V2-P5 for bug-gnu-emacs@gnu.org; Thu, 19 Jun 2025 19:45:37 -0400 Received: from mail-pf1-x42d.google.com ([2607:f8b0:4864:20::42d]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1uSOwl-0001uL-8Z for bug-gnu-emacs@gnu.org; Thu, 19 Jun 2025 19:45:36 -0400 Received: by mail-pf1-x42d.google.com with SMTP id d2e1a72fcca58-748da522e79so673405b3a.1 for ; Thu, 19 Jun 2025 16:45:30 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1750376729; x=1750981529; darn=gnu.org; h=mime-version:message-id:date:subject:to:from:from:to:cc:subject :date:message-id:reply-to; bh=Sv5s7c8P5Hg84czxosbWGBQQJlzRvNS3D/+3TIzSZfw=; b=Jt1j1+1ioEE2i3QLgJ1ufILvdL4xjV/4O0Y+52OR3ia4+NRRXJgleLY+virIQ5rStN q2H0cN2izlm9iV6FxT6NQ0/RA3DU2LO+VwBfhGpriMZh4nGaDNRdLObUSwwTqOByhoyh gDz7yYW5TN/yzCqgvYZfollkr2JBONNxRqP+zUAqitX2a4gt6GCYIY+3P+9Q7FsEDMgA wIPtu1CEEwYjd4TUxWckcFII8pH1duy0fsWrmHicDwTAYb+z+eJub6/0ie1jOrQyATmM m9NRv1Feq1e+NYmifHVSkqkJBZsGn7WwBlxp5cNrT4Y4h6Db8GI7AS9oPlDXbQWlS1oQ 9Tqg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1750376729; x=1750981529; h=mime-version:message-id:date:subject:to:from:x-gm-message-state :from:to:cc:subject:date:message-id:reply-to; bh=Sv5s7c8P5Hg84czxosbWGBQQJlzRvNS3D/+3TIzSZfw=; b=VeQZefUYHr734KLwUAcPyQah9hYLwKhZVJXU6Utzy05tHbJU1CuR7IpZv4z0YlPXNT e0V+tklb05O7LPKCOEMue9krWtW3Vvv029xyZeq2BJRWT8UanpsmalbIyUvsdoDcjuPo sVVkZMmgvyTbodOJ9jgn03586t7bscDLVfevs3qLlZSJpCS2z3h1fCJthE3gKqrFe/90 WA8b0DGkDX8HFJ5WNUlgh9gvD/sd9fu56VOcG6syZ0lREJUgEEY0bdbE4s1bDinuKxMg ufhF/c5LtSgBct9wDDN1BSDDaepi2QsH2iVxAbjI+byyMiLW/C3tUBfNd41wEPa8KYft IZlg== X-Gm-Message-State: AOJu0Yx0KhOg1TOEZ+otJKn4QndWaQ9oLeDhcFRGBc7guduJGv8QShrl rQPvAnatMXAFHNmG7rc8MJARnnskBqDa/b2Zol7YhUwVXQ9gAxHEFp5jOW67bg== X-Gm-Gg: ASbGnctlLsmjkVfj9dscT1sHb8CaE/UXZcSYf8CCLDTyHXOpG+XHKbiZoQxoYSbcMFF CNYhsdo2wEI6e0wdubKvYxJopTIL27hQbvPg+UKis4lAxVe5FDcgK66lN1zCm0kF24WrdqfhE0o 5rpw4VX2Cs8uzCnPibRpaoF72vZbx+DAYrESoMQxYdP5iqYVDRELtJH1mP8HgFaAOZcDYzg47mb EE+nxckF/aJXNsQC8isY0gtWtHik6rHzZ/xKNEvBPIfruj5ee55ucPY9E8rQQjHAFEJdd70TLux Q2/hygiP7cB8Tp9YtsAVrgFTEoO5VbM8GRaX9PnVKP4YDjB86E0RbZajh38q5+WiqJ9ByI9eArA d5DpgJZCn/aI3cfDWC7mN X-Google-Smtp-Source: AGHT+IFgj8ATp8d/sfZZMVT5mw1kl8/WBcTD7RpDvinNV1LbxJdKiTNaoEUsWjyGqAsB4U18oF9erA== X-Received: by 2002:a05:6a00:1250:b0:736:d297:164 with SMTP id d2e1a72fcca58-7490d757267mr770988b3a.1.1750376726634; Thu, 19 Jun 2025 16:45:26 -0700 (PDT) Received: from debian-qemu (syn-076-094-249-045.res.spectrum.com. [76.94.249.45]) by smtp.gmail.com with ESMTPSA id d2e1a72fcca58-7490a6c21d7sm690966b3a.170.2025.06.19.16.45.25 for (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 19 Jun 2025 16:45:26 -0700 (PDT) From: Xiyue Deng To: bug-gnu-emacs@gnu.org Subject: 30.1; feature request: public interface for querying builtin packages and versions X-Debbugs-Cc: Date: Thu, 19 Jun 2025 16:45:24 -0700 Message-ID: <878qlnz46j.fsf@debian-qemu> MIME-Version: 1.0 Content-Type: text/plain Received-SPF: pass client-ip=2607:f8b0:4864:20::42d; envelope-from=manphiz@gmail.com; helo=mail-pf1-x42d.google.com X-Spam_score_int: -20 X-Spam_score: -2.1 X-Spam_bar: -- X-Spam_report: (-2.1 / 5.0 requ) BAYES_00=-1.9, 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-Debbugs-Envelope-To: submit X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" Emacs addons can be external or built-in. It would be great to have a way to get the builtin package information like name and versions. This would help distributors to choose whether an external addon is required. As an example, the org-mode bundled with Emacs 30.1 is of version 9.7.11. If another addon requires only org-mode >= 9.7, it can just depend on Emacs; while if it depends on org-mode >= 9.7.20, it would need to depend on an externally packaged org-mode (currently 9.7.29 is packaged in Debian). Currently in 30.1 Emacs provides internal variables for builtin package information, e.g. `package--builtins' and `package--builtin-versions'. I am not aware of any public interface for querying such information, and it would be great to have a few. For example, `package-get-builtin-packages' to return a list of built-in package names, and `package-get-builtin-package-version' to get the version-list for a given package. Example implementations: #+BEGIN_SRC emacs-lisp (defun package-get-builtin-packages () "A list of built-in package symbols." (mapcar #'car package--builtin-versions)) (defun package-get-builtin-package-version (package) "Get the version-list of a given PACKAGE symbol" (alist-get package package--builtin-versions)) #+END_SRC Having a stable public interface for querying such information helps distribution package maintainers to get such information in the long run. In GNU Emacs 30.1 (build 1, x86_64-pc-linux-gnu, GTK+ Version 3.24.49, cairo version 1.18.4) of 2025-03-30, modified by Debian built on sbuild System Description: Debian GNU/Linux 13 (trixie) Configured using: 'configure --build x86_64-linux-gnu --prefix=/usr --sharedstatedir=/var/lib --libexecdir=/usr/libexec --localstatedir=/var/lib --infodir=/usr/share/info --mandir=/usr/share/man --with-libsystemd --with-pop=yes --enable-locallisppath=/etc/emacs:/usr/local/share/emacs/30.1/site-lisp:/usr/local/share/emacs/site-lisp:/usr/share/emacs/30.1/site-lisp:/usr/share/emacs/site-lisp --with-sound=alsa --without-gconf --with-mailutils --build x86_64-linux-gnu --prefix=/usr --sharedstatedir=/var/lib --libexecdir=/usr/libexec --localstatedir=/var/lib --infodir=/usr/share/info --mandir=/usr/share/man --with-libsystemd --with-pop=yes --enable-locallisppath=/etc/emacs:/usr/local/share/emacs/30.1/site-lisp:/usr/local/share/emacs/site-lisp:/usr/share/emacs/30.1/site-lisp:/usr/share/emacs/site-lisp --with-sound=alsa --without-gconf --with-mailutils --with-cairo --with-x=yes --with-x-toolkit=gtk3 --with-toolkit-scroll-bars 'CFLAGS=-g -O2 -Werror=implicit-function-declaration -ffile-prefix-map=/build/reproducible-path/emacs-30.1+1=. -fstack-protector-strong -fstack-clash-protection -Wformat -Werror=format-security -fcf-protection -Wall' 'CPPFLAGS=-Wdate-time -D_FORTIFY_SOURCE=2' LDFLAGS=-Wl,-z,relro' Configured features: ACL CAIRO DBUS FREETYPE GIF GLIB GMP GNUTLS GPM GSETTINGS HARFBUZZ JPEG LCMS2 LIBOTF LIBSELINUX LIBSYSTEMD LIBXML2 M17N_FLT MODULES NATIVE_COMP NOTIFY INOTIFY PDUMPER PNG RSVG SECCOMP SOUND SQLITE3 THREADS TIFF TOOLKIT_SCROLL_BARS TREE_SITTER WEBP X11 XDBE XIM XINPUT2 XPM GTK3 ZLIB Important settings: value of $LANG: C.UTF-8 locale-coding-system: utf-8-unix Major mode: Lisp Interaction Minor modes in effect: TeX-PDF-mode: t global-git-commit-mode: t magit-auto-revert-mode: t server-mode: t subword-mode: t bug-reference-prog-mode: t whitespace-mode: t yas-minor-mode: t xclip-mode: t treemacs-project-follow-mode: t treemacs-follow-mode: t treemacs-git-mode: t treemacs-fringe-indicator-mode: t auth-source-xoauth2-plugin-mode: t activities-tabs-mode: t activities-mode: t fido-vertical-mode: t icomplete-vertical-mode: t icomplete-mode: t fido-mode: t override-global-mode: t global-display-line-numbers-mode: t display-line-numbers-mode: t global-auto-revert-mode: t tooltip-mode: t global-eldoc-mode: t eldoc-mode: t show-paren-mode: t electric-indent-mode: t mouse-wheel-mode: t tool-bar-mode: t tab-bar-mode: t file-name-shadow-mode: t global-font-lock-mode: t font-lock-mode: t blink-cursor-mode: t minibuffer-regexp-mode: t column-number-mode: t line-number-mode: t transient-mark-mode: t auto-composition-mode: t auto-encryption-mode: t auto-compression-mode: t Load-path shadows: /usr/share/emacs/site-lisp/elpa/debian-el-37.19/debian-autoloads hides /usr/share/emacs/site-lisp/elpa/gnuplot-0.8.1/debian-autoloads /usr/share/emacs/site-lisp/elpa/ace-window-0.10.0/ace-window-pkg hides /usr/share/emacs/site-lisp/elpa-src/ace-window-0.10.0/ace-window-pkg /usr/share/emacs/site-lisp/elpa/ace-window-0.10.0/ace-window hides /usr/share/emacs/site-lisp/elpa-src/ace-window-0.10.0/ace-window /usr/share/emacs/site-lisp/elpa/ace-window-0.10.0/ace-window-autoloads hides /usr/share/emacs/site-lisp/elpa-src/ace-window-0.10.0/ace-window-autoloads /usr/share/emacs/site-lisp/elpa/activities-0.7.2/activities-tabs hides /usr/share/emacs/site-lisp/elpa-src/activities-0.7.2/activities-tabs /usr/share/emacs/site-lisp/elpa/activities-0.7.2/activities-autoloads hides /usr/share/emacs/site-lisp/elpa-src/activities-0.7.2/activities-autoloads /usr/share/emacs/site-lisp/elpa/activities-0.7.2/activities-list hides /usr/share/emacs/site-lisp/elpa-src/activities-0.7.2/activities-list /usr/share/emacs/site-lisp/elpa/activities-0.7.2/activities hides /usr/share/emacs/site-lisp/elpa-src/activities-0.7.2/activities /usr/share/emacs/site-lisp/elpa/activities-0.7.2/activities-pkg hides /usr/share/emacs/site-lisp/elpa-src/activities-0.7.2/activities-pkg /usr/share/emacs/site-lisp/elpa/apache-mode-2.2.0/apache-mode hides /usr/share/emacs/site-lisp/elpa-src/apache-mode-2.2.0/apache-mode /usr/share/emacs/site-lisp/elpa/apache-mode-2.2.0/apache-mode-autoloads hides /usr/share/emacs/site-lisp/elpa-src/apache-mode-2.2.0/apache-mode-autoloads /usr/share/emacs/site-lisp/elpa/apache-mode-2.2.0/apache-mode-pkg hides /usr/share/emacs/site-lisp/elpa-src/apache-mode-2.2.0/apache-mode-pkg /usr/share/emacs/site-lisp/elpa/async-1.9.9/dired-async hides /usr/share/emacs/site-lisp/elpa-src/async-1.9.9/dired-async /usr/share/emacs/site-lisp/elpa/async-1.9.9/async-pkg hides /usr/share/emacs/site-lisp/elpa-src/async-1.9.9/async-pkg /usr/share/emacs/site-lisp/elpa/async-1.9.9/async hides /usr/share/emacs/site-lisp/elpa-src/async-1.9.9/async /usr/share/emacs/site-lisp/elpa/async-1.9.9/async-bytecomp hides /usr/share/emacs/site-lisp/elpa-src/async-1.9.9/async-bytecomp /usr/share/emacs/site-lisp/elpa/async-1.9.9/smtpmail-async hides /usr/share/emacs/site-lisp/elpa-src/async-1.9.9/smtpmail-async /usr/share/emacs/site-lisp/elpa/async-1.9.9/async-package hides /usr/share/emacs/site-lisp/elpa-src/async-1.9.9/async-package /usr/share/emacs/site-lisp/elpa/async-1.9.9/async-autoloads hides /usr/share/emacs/site-lisp/elpa-src/async-1.9.9/async-autoloads /usr/share/emacs/site-lisp/elpa/ats2-mode-1.0/ats2-mode-autoloads hides /usr/share/emacs/site-lisp/elpa-src/ats2-mode-1.0/ats2-mode-autoloads /usr/share/emacs/site-lisp/elpa/ats2-mode-1.0/ats2-mode hides /usr/share/emacs/site-lisp/elpa-src/ats2-mode-1.0/ats2-mode /usr/share/emacs/site-lisp/elpa/ats2-mode-1.0/ats2-mode-pkg hides /usr/share/emacs/site-lisp/elpa-src/ats2-mode-1.0/ats2-mode-pkg /usr/share/emacs/site-lisp/elpa/avy-0.5.0/avy hides /usr/share/emacs/site-lisp/elpa-src/avy-0.5.0/avy /usr/share/emacs/site-lisp/elpa/avy-0.5.0/avy-pkg hides /usr/share/emacs/site-lisp/elpa-src/avy-0.5.0/avy-pkg /usr/share/emacs/site-lisp/elpa/avy-0.5.0/avy-autoloads hides /usr/share/emacs/site-lisp/elpa-src/avy-0.5.0/avy-autoloads /usr/share/emacs/site-lisp/elpa/bar-cursor-2.0/bar-cursor-autoloads hides /usr/share/emacs/site-lisp/elpa-src/bar-cursor-2.0/bar-cursor-autoloads /usr/share/emacs/site-lisp/elpa/bar-cursor-2.0/bar-cursor hides /usr/share/emacs/site-lisp/elpa-src/bar-cursor-2.0/bar-cursor /usr/share/emacs/site-lisp/elpa/bar-cursor-2.0/bar-cursor-pkg hides /usr/share/emacs/site-lisp/elpa-src/bar-cursor-2.0/bar-cursor-pkg /usr/share/emacs/site-lisp/elpa/bazel-0/bazel-autoloads hides /usr/share/emacs/site-lisp/elpa-src/bazel-0/bazel-autoloads /usr/share/emacs/site-lisp/elpa/bazel-0/test hides /usr/share/emacs/site-lisp/elpa-src/bazel-0/test /usr/share/emacs/site-lisp/elpa/bazel-0/bazel-pkg hides /usr/share/emacs/site-lisp/elpa-src/bazel-0/bazel-pkg /usr/share/emacs/site-lisp/elpa/bazel-0/bazel hides /usr/share/emacs/site-lisp/elpa-src/bazel-0/bazel /usr/share/emacs/site-lisp/elpa/bison-mode-0.3/bison-mode-autoloads hides /usr/share/emacs/site-lisp/elpa-src/bison-mode-0.3/bison-mode-autoloads /usr/share/emacs/site-lisp/elpa/bison-mode-0.3/bison-mode-pkg hides /usr/share/emacs/site-lisp/elpa-src/bison-mode-0.3/bison-mode-pkg /usr/share/emacs/site-lisp/elpa/bison-mode-0.3/bison-mode hides /usr/share/emacs/site-lisp/elpa-src/bison-mode-0.3/bison-mode /usr/share/emacs/site-lisp/elpa/bm-202309/bm-autoloads hides /usr/share/emacs/site-lisp/elpa-src/bm-202309/bm-autoloads /usr/share/emacs/site-lisp/elpa/bm-202309/bm-pkg hides /usr/share/emacs/site-lisp/elpa-src/bm-202309/bm-pkg /usr/share/emacs/site-lisp/elpa/bm-202309/bm hides /usr/share/emacs/site-lisp/elpa-src/bm-202309/bm /usr/share/emacs/site-lisp/elpa/bm-202309/bm-sync hides /usr/share/emacs/site-lisp/elpa-src/bm-202309/bm-sync /usr/share/emacs/site-lisp/elpa/boxquote-2.3/boxquote-pkg hides /usr/share/emacs/site-lisp/elpa-src/boxquote-2.3/boxquote-pkg /usr/share/emacs/site-lisp/elpa/boxquote-2.3/boxquote-autoloads hides /usr/share/emacs/site-lisp/elpa-src/boxquote-2.3/boxquote-autoloads /usr/share/emacs/site-lisp/elpa/boxquote-2.3/boxquote hides /usr/share/emacs/site-lisp/elpa-src/boxquote-2.3/boxquote /usr/share/emacs/site-lisp/elpa/bpftrace-mode-0.1.0/bpftrace-mode hides /usr/share/emacs/site-lisp/elpa-src/bpftrace-mode-0.1.0/bpftrace-mode /usr/share/emacs/site-lisp/elpa/bpftrace-mode-0.1.0/bpftrace-mode-pkg hides /usr/share/emacs/site-lisp/elpa-src/bpftrace-mode-0.1.0/bpftrace-mode-pkg /usr/share/emacs/site-lisp/elpa/bpftrace-mode-0.1.0/bpftrace-mode-autoloads hides /usr/share/emacs/site-lisp/elpa-src/bpftrace-mode-0.1.0/bpftrace-mode-autoloads /usr/share/emacs/site-lisp/elpa/browse-kill-ring-2.0.0/browse-kill-ring-autoloads hides /usr/share/emacs/site-lisp/elpa-src/browse-kill-ring-2.0.0/browse-kill-ring-autoloads /usr/share/emacs/site-lisp/elpa/browse-kill-ring-2.0.0/browse-kill-ring-pkg hides /usr/share/emacs/site-lisp/elpa-src/browse-kill-ring-2.0.0/browse-kill-ring-pkg /usr/share/emacs/site-lisp/elpa/browse-kill-ring-2.0.0/browse-kill-ring hides /usr/share/emacs/site-lisp/elpa-src/browse-kill-ring-2.0.0/browse-kill-ring /usr/share/emacs/site-lisp/elpa/caml-4.9/caml-autoloads hides /usr/share/emacs/site-lisp/elpa-src/caml-4.9/caml-autoloads /usr/share/emacs/site-lisp/elpa/caml-4.9/caml-font hides /usr/share/emacs/site-lisp/elpa-src/caml-4.9/caml-font /usr/share/emacs/site-lisp/elpa/caml-4.9/caml hides /usr/share/emacs/site-lisp/elpa-src/caml-4.9/caml /usr/share/emacs/site-lisp/elpa/caml-4.9/inf-caml hides /usr/share/emacs/site-lisp/elpa-src/caml-4.9/inf-caml /usr/share/emacs/site-lisp/elpa/caml-4.9/caml-font-old hides /usr/share/emacs/site-lisp/elpa-src/caml-4.9/caml-font-old /usr/share/emacs/site-lisp/elpa/caml-4.9/activate-caml-mode hides /usr/share/emacs/site-lisp/elpa-src/caml-4.9/activate-caml-mode /usr/share/emacs/site-lisp/elpa/caml-4.9/caml-types hides /usr/share/emacs/site-lisp/elpa-src/caml-4.9/caml-types /usr/share/emacs/site-lisp/elpa/caml-4.9/camldebug hides /usr/share/emacs/site-lisp/elpa-src/caml-4.9/camldebug /usr/share/emacs/site-lisp/elpa/caml-4.9/caml-pkg hides /usr/share/emacs/site-lisp/elpa-src/caml-4.9/caml-pkg /usr/share/emacs/site-lisp/elpa/caml-4.9/caml-help hides /usr/share/emacs/site-lisp/elpa-src/caml-4.9/caml-help /usr/share/emacs/site-lisp/elpa/cfrs-1.6.0/cfrs-pkg hides /usr/share/emacs/site-lisp/elpa-src/cfrs-1.6.0/cfrs-pkg /usr/share/emacs/site-lisp/elpa/cfrs-1.6.0/cfrs hides /usr/share/emacs/site-lisp/elpa-src/cfrs-1.6.0/cfrs /usr/share/emacs/site-lisp/elpa/cfrs-1.6.0/cfrs-autoloads hides /usr/share/emacs/site-lisp/elpa-src/cfrs-1.6.0/cfrs-autoloads /usr/share/emacs/site-lisp/elpa/clojure-mode-5.19.0/clojure-mode hides /usr/share/emacs/site-lisp/elpa-src/clojure-mode-5.19.0/clojure-mode /usr/share/emacs/site-lisp/elpa/clojure-mode-5.19.0/clojure-mode-pkg hides /usr/share/emacs/site-lisp/elpa-src/clojure-mode-5.19.0/clojure-mode-pkg /usr/share/emacs/site-lisp/elpa/clojure-mode-5.19.0/clojure-mode-autoloads hides /usr/share/emacs/site-lisp/elpa-src/clojure-mode-5.19.0/clojure-mode-autoloads /usr/share/emacs/site-lisp/elpa/clojure-mode-extra-font-locking-3.0.0/clojure-mode-extra-font-locking-pkg hides /usr/share/emacs/site-lisp/elpa-src/clojure-mode-extra-font-locking-3.0.0/clojure-mode-extra-font-locking-pkg /usr/share/emacs/site-lisp/elpa/clojure-mode-extra-font-locking-3.0.0/clojure-mode-extra-font-locking hides /usr/share/emacs/site-lisp/elpa-src/clojure-mode-extra-font-locking-3.0.0/clojure-mode-extra-font-locking /usr/share/emacs/site-lisp/elpa/clojure-mode-extra-font-locking-3.0.0/clojure-mode-extra-font-locking-autoloads hides /usr/share/emacs/site-lisp/elpa-src/clojure-mode-extra-font-locking-3.0.0/clojure-mode-extra-font-locking-autoloads /usr/share/emacs/site-lisp/elpa/cmake-mode-4.0.1/cmake-mode-pkg hides /usr/share/emacs/site-lisp/elpa-src/cmake-mode-4.0.1/cmake-mode-pkg /usr/share/emacs/site-lisp/elpa/cmake-mode-4.0.1/cmake-mode-autoloads hides /usr/share/emacs/site-lisp/elpa-src/cmake-mode-4.0.1/cmake-mode-autoloads /usr/share/emacs/site-lisp/elpa/cmake-mode-4.0.1/cmake-mode hides /usr/share/emacs/site-lisp/elpa-src/cmake-mode-4.0.1/cmake-mode /usr/share/emacs/site-lisp/elpa/color-theme-modern-0.0.2/late-night-theme hides /usr/share/emacs/site-lisp/elpa-src/color-theme-modern-0.0.2/late-night-theme /usr/share/emacs/site-lisp/elpa/color-theme-modern-0.0.2/desert-theme hides /usr/share/emacs/site-lisp/elpa-src/color-theme-modern-0.0.2/desert-theme /usr/share/emacs/site-lisp/elpa/color-theme-modern-0.0.2/aalto-dark-theme hides /usr/share/emacs/site-lisp/elpa-src/color-theme-modern-0.0.2/aalto-dark-theme /usr/share/emacs/site-lisp/elpa/color-theme-modern-0.0.2/taming-mr-arneson-theme hides /usr/share/emacs/site-lisp/elpa-src/color-theme-modern-0.0.2/taming-mr-arneson-theme /usr/share/emacs/site-lisp/elpa/color-theme-modern-0.0.2/blue-mood-theme hides /usr/share/emacs/site-lisp/elpa-src/color-theme-modern-0.0.2/blue-mood-theme /usr/share/emacs/site-lisp/elpa/color-theme-modern-0.0.2/hober-theme hides /usr/share/emacs/site-lisp/elpa-src/color-theme-modern-0.0.2/hober-theme /usr/share/emacs/site-lisp/elpa/color-theme-modern-0.0.2/pok-wob-theme hides /usr/share/emacs/site-lisp/elpa-src/color-theme-modern-0.0.2/pok-wob-theme /usr/share/emacs/site-lisp/elpa/color-theme-modern-0.0.2/emacs-21-theme hides /usr/share/emacs/site-lisp/elpa-src/color-theme-modern-0.0.2/emacs-21-theme /usr/share/emacs/site-lisp/elpa/color-theme-modern-0.0.2/fischmeister-theme hides /usr/share/emacs/site-lisp/elpa-src/color-theme-modern-0.0.2/fischmeister-theme /usr/share/emacs/site-lisp/elpa/color-theme-modern-0.0.2/simple-1-theme hides /usr/share/emacs/site-lisp/elpa-src/color-theme-modern-0.0.2/simple-1-theme /usr/share/emacs/site-lisp/elpa/color-theme-modern-0.0.2/dark-info-theme hides /usr/share/emacs/site-lisp/elpa-src/color-theme-modern-0.0.2/dark-info-theme /usr/share/emacs/site-lisp/elpa/color-theme-modern-0.0.2/raspopovic-theme hides /usr/share/emacs/site-lisp/elpa-src/color-theme-modern-0.0.2/raspopovic-theme /usr/share/emacs/site-lisp/elpa/color-theme-modern-0.0.2/dark-green-theme hides /usr/share/emacs/site-lisp/elpa-src/color-theme-modern-0.0.2/dark-green-theme /usr/share/emacs/site-lisp/elpa/color-theme-modern-0.0.2/mistyday-theme hides /usr/share/emacs/site-lisp/elpa-src/color-theme-modern-0.0.2/mistyday-theme /usr/share/emacs/site-lisp/elpa/color-theme-modern-0.0.2/wheat-theme hides /usr/share/emacs/site-lisp/elpa-src/color-theme-modern-0.0.2/wheat-theme /usr/share/emacs/site-lisp/elpa/color-theme-modern-0.0.2/whateveryouwant-theme hides /usr/share/emacs/site-lisp/elpa-src/color-theme-modern-0.0.2/whateveryouwant-theme /usr/share/emacs/site-lisp/elpa/color-theme-modern-0.0.2/pok-wog-theme hides /usr/share/emacs/site-lisp/elpa-src/color-theme-modern-0.0.2/pok-wog-theme /usr/share/emacs/site-lisp/elpa/color-theme-modern-0.0.2/dark-erc-theme hides /usr/share/emacs/site-lisp/elpa-src/color-theme-modern-0.0.2/dark-erc-theme /usr/share/emacs/site-lisp/elpa/color-theme-modern-0.0.2/calm-forest-theme hides /usr/share/emacs/site-lisp/elpa-src/color-theme-modern-0.0.2/calm-forest-theme /usr/share/emacs/site-lisp/elpa/color-theme-modern-0.0.2/blue-erc-theme hides /usr/share/emacs/site-lisp/elpa-src/color-theme-modern-0.0.2/blue-erc-theme /usr/share/emacs/site-lisp/elpa/color-theme-modern-0.0.2/feng-shui-theme hides /usr/share/emacs/site-lisp/elpa-src/color-theme-modern-0.0.2/feng-shui-theme /usr/share/emacs/site-lisp/elpa/color-theme-modern-0.0.2/jonadabian-slate-theme hides /usr/share/emacs/site-lisp/elpa-src/color-theme-modern-0.0.2/jonadabian-slate-theme /usr/share/emacs/site-lisp/elpa/color-theme-modern-0.0.2/jb-simple-theme hides /usr/share/emacs/site-lisp/elpa-src/color-theme-modern-0.0.2/jb-simple-theme /usr/share/emacs/site-lisp/elpa/color-theme-modern-0.0.2/andreas-theme hides /usr/share/emacs/site-lisp/elpa-src/color-theme-modern-0.0.2/andreas-theme /usr/share/emacs/site-lisp/elpa/color-theme-modern-0.0.2/word-perfect-theme hides /usr/share/emacs/site-lisp/elpa-src/color-theme-modern-0.0.2/word-perfect-theme /usr/share/emacs/site-lisp/elpa/color-theme-modern-0.0.2/retro-orange-theme hides /usr/share/emacs/site-lisp/elpa-src/color-theme-modern-0.0.2/retro-orange-theme /usr/share/emacs/site-lisp/elpa/color-theme-modern-0.0.2/goldenrod-theme hides /usr/share/emacs/site-lisp/elpa-src/color-theme-modern-0.0.2/goldenrod-theme /usr/share/emacs/site-lisp/elpa/color-theme-modern-0.0.2/lethe-theme hides /usr/share/emacs/site-lisp/elpa-src/color-theme-modern-0.0.2/lethe-theme /usr/share/emacs/site-lisp/elpa/color-theme-modern-0.0.2/marine-theme hides /usr/share/emacs/site-lisp/elpa-src/color-theme-modern-0.0.2/marine-theme /usr/share/emacs/site-lisp/elpa/color-theme-modern-0.0.2/snowish-theme hides /usr/share/emacs/site-lisp/elpa-src/color-theme-modern-0.0.2/snowish-theme /usr/share/emacs/site-lisp/elpa/color-theme-modern-0.0.2/midnight-theme hides /usr/share/emacs/site-lisp/elpa-src/color-theme-modern-0.0.2/midnight-theme /usr/share/emacs/site-lisp/elpa/color-theme-modern-0.0.2/robin-hood-theme hides /usr/share/emacs/site-lisp/elpa-src/color-theme-modern-0.0.2/robin-hood-theme /usr/share/emacs/site-lisp/elpa/color-theme-modern-0.0.2/lawrence-theme hides /usr/share/emacs/site-lisp/elpa-src/color-theme-modern-0.0.2/lawrence-theme /usr/share/emacs/site-lisp/elpa/color-theme-modern-0.0.2/railscast-theme hides /usr/share/emacs/site-lisp/elpa-src/color-theme-modern-0.0.2/railscast-theme /usr/share/emacs/site-lisp/elpa/color-theme-modern-0.0.2/standard-theme hides /usr/share/emacs/site-lisp/elpa-src/color-theme-modern-0.0.2/standard-theme /usr/share/emacs/site-lisp/elpa/color-theme-modern-0.0.2/clarity-theme hides /usr/share/emacs/site-lisp/elpa-src/color-theme-modern-0.0.2/clarity-theme /usr/share/emacs/site-lisp/elpa/color-theme-modern-0.0.2/bharadwaj-slate-theme hides /usr/share/emacs/site-lisp/elpa-src/color-theme-modern-0.0.2/bharadwaj-slate-theme /usr/share/emacs/site-lisp/elpa/color-theme-modern-0.0.2/rotor-theme hides /usr/share/emacs/site-lisp/elpa-src/color-theme-modern-0.0.2/rotor-theme /usr/share/emacs/site-lisp/elpa/color-theme-modern-0.0.2/gnome-theme hides /usr/share/emacs/site-lisp/elpa-src/color-theme-modern-0.0.2/gnome-theme /usr/share/emacs/site-lisp/elpa/color-theme-modern-0.0.2/ld-dark-theme hides /usr/share/emacs/site-lisp/elpa-src/color-theme-modern-0.0.2/ld-dark-theme /usr/share/emacs/site-lisp/elpa/color-theme-modern-0.0.2/salmon-diff-theme hides /usr/share/emacs/site-lisp/elpa-src/color-theme-modern-0.0.2/salmon-diff-theme /usr/share/emacs/site-lisp/elpa/color-theme-modern-0.0.2/greiner-theme hides /usr/share/emacs/site-lisp/elpa-src/color-theme-modern-0.0.2/greiner-theme /usr/share/emacs/site-lisp/elpa/color-theme-modern-0.0.2/blue-eshell-theme hides /usr/share/emacs/site-lisp/elpa-src/color-theme-modern-0.0.2/blue-eshell-theme /usr/share/emacs/site-lisp/elpa/color-theme-modern-0.0.2/subtle-hacker-theme hides /usr/share/emacs/site-lisp/elpa-src/color-theme-modern-0.0.2/subtle-hacker-theme /usr/share/emacs/site-lisp/elpa/color-theme-modern-0.0.2/blue-sea-theme hides /usr/share/emacs/site-lisp/elpa-src/color-theme-modern-0.0.2/blue-sea-theme /usr/share/emacs/site-lisp/elpa/color-theme-modern-0.0.2/euphoria-theme hides /usr/share/emacs/site-lisp/elpa-src/color-theme-modern-0.0.2/euphoria-theme /usr/share/emacs/site-lisp/elpa/color-theme-modern-0.0.2/jonadabian-theme hides /usr/share/emacs/site-lisp/elpa-src/color-theme-modern-0.0.2/jonadabian-theme /usr/share/emacs/site-lisp/elpa/color-theme-modern-0.0.2/aliceblue-theme hides /usr/share/emacs/site-lisp/elpa-src/color-theme-modern-0.0.2/aliceblue-theme /usr/share/emacs/site-lisp/elpa/color-theme-modern-0.0.2/jsc-dark-theme hides /usr/share/emacs/site-lisp/elpa-src/color-theme-modern-0.0.2/jsc-dark-theme /usr/share/emacs/site-lisp/elpa/color-theme-modern-0.0.2/bharadwaj-theme hides /usr/share/emacs/site-lisp/elpa-src/color-theme-modern-0.0.2/bharadwaj-theme /usr/share/emacs/site-lisp/elpa/color-theme-modern-0.0.2/salmon-font-lock-theme hides /usr/share/emacs/site-lisp/elpa-src/color-theme-modern-0.0.2/salmon-font-lock-theme /usr/share/emacs/site-lisp/elpa/color-theme-modern-0.0.2/deep-blue-theme hides /usr/share/emacs/site-lisp/elpa-src/color-theme-modern-0.0.2/deep-blue-theme /usr/share/emacs/site-lisp/elpa/color-theme-modern-0.0.2/charcoal-black-theme hides /usr/share/emacs/site-lisp/elpa-src/color-theme-modern-0.0.2/charcoal-black-theme /usr/share/emacs/site-lisp/elpa/color-theme-modern-0.0.2/resolve-theme hides /usr/share/emacs/site-lisp/elpa-src/color-theme-modern-0.0.2/resolve-theme /usr/share/emacs/site-lisp/elpa/color-theme-modern-0.0.2/parus-theme hides /usr/share/emacs/site-lisp/elpa-src/color-theme-modern-0.0.2/parus-theme /usr/share/emacs/site-lisp/elpa/color-theme-modern-0.0.2/matrix-theme hides /usr/share/emacs/site-lisp/elpa-src/color-theme-modern-0.0.2/matrix-theme /usr/share/emacs/site-lisp/elpa/color-theme-modern-0.0.2/subtle-blue-theme hides /usr/share/emacs/site-lisp/elpa-src/color-theme-modern-0.0.2/subtle-blue-theme /usr/share/emacs/site-lisp/elpa/color-theme-modern-0.0.2/jsc-light-theme hides /usr/share/emacs/site-lisp/elpa-src/color-theme-modern-0.0.2/jsc-light-theme /usr/share/emacs/site-lisp/elpa/color-theme-modern-0.0.2/digital-ofs1-theme hides /usr/share/emacs/site-lisp/elpa-src/color-theme-modern-0.0.2/digital-ofs1-theme /usr/share/emacs/site-lisp/elpa/color-theme-modern-0.0.2/dark-blue-theme hides /usr/share/emacs/site-lisp/elpa-src/color-theme-modern-0.0.2/dark-blue-theme /usr/share/emacs/site-lisp/elpa/color-theme-modern-0.0.2/arjen-theme hides /usr/share/emacs/site-lisp/elpa-src/color-theme-modern-0.0.2/arjen-theme /usr/share/emacs/site-lisp/elpa/color-theme-modern-0.0.2/katester-theme hides /usr/share/emacs/site-lisp/elpa-src/color-theme-modern-0.0.2/katester-theme /usr/share/emacs/site-lisp/elpa/color-theme-modern-0.0.2/color-theme-modern-autoloads hides /usr/share/emacs/site-lisp/elpa-src/color-theme-modern-0.0.2/color-theme-modern-autoloads /usr/share/emacs/site-lisp/elpa/color-theme-modern-0.0.2/classic-theme hides /usr/share/emacs/site-lisp/elpa-src/color-theme-modern-0.0.2/classic-theme /usr/share/emacs/site-lisp/elpa/color-theme-modern-0.0.2/marquardt-theme hides /usr/share/emacs/site-lisp/elpa-src/color-theme-modern-0.0.2/marquardt-theme /usr/share/emacs/site-lisp/elpa/color-theme-modern-0.0.2/tty-dark-theme hides /usr/share/emacs/site-lisp/elpa-src/color-theme-modern-0.0.2/tty-dark-theme /usr/share/emacs/site-lisp/elpa/color-theme-modern-0.0.2/blippblopp-theme hides /usr/share/emacs/site-lisp/elpa-src/color-theme-modern-0.0.2/blippblopp-theme /usr/share/emacs/site-lisp/elpa/color-theme-modern-0.0.2/ramangalahy-theme hides /usr/share/emacs/site-lisp/elpa-src/color-theme-modern-0.0.2/ramangalahy-theme /usr/share/emacs/site-lisp/elpa/color-theme-modern-0.0.2/infodoc-theme hides /usr/share/emacs/site-lisp/elpa-src/color-theme-modern-0.0.2/infodoc-theme /usr/share/emacs/site-lisp/elpa/color-theme-modern-0.0.2/high-contrast-theme hides /usr/share/emacs/site-lisp/elpa-src/color-theme-modern-0.0.2/high-contrast-theme /usr/share/emacs/site-lisp/elpa/color-theme-modern-0.0.2/ryerson-theme hides /usr/share/emacs/site-lisp/elpa-src/color-theme-modern-0.0.2/ryerson-theme /usr/share/emacs/site-lisp/elpa/color-theme-modern-0.0.2/renegade-theme hides /usr/share/emacs/site-lisp/elpa-src/color-theme-modern-0.0.2/renegade-theme /usr/share/emacs/site-lisp/elpa/color-theme-modern-0.0.2/kingsajz-theme hides /usr/share/emacs/site-lisp/elpa-src/color-theme-modern-0.0.2/kingsajz-theme /usr/share/emacs/site-lisp/elpa/color-theme-modern-0.0.2/black-on-gray-theme hides /usr/share/emacs/site-lisp/elpa-src/color-theme-modern-0.0.2/black-on-gray-theme /usr/share/emacs/site-lisp/elpa/color-theme-modern-0.0.2/dark-font-lock-theme hides /usr/share/emacs/site-lisp/elpa-src/color-theme-modern-0.0.2/dark-font-lock-theme /usr/share/emacs/site-lisp/elpa/color-theme-modern-0.0.2/xemacs-theme hides /usr/share/emacs/site-lisp/elpa-src/color-theme-modern-0.0.2/xemacs-theme /usr/share/emacs/site-lisp/elpa/color-theme-modern-0.0.2/cobalt-theme hides /usr/share/emacs/site-lisp/elpa-src/color-theme-modern-0.0.2/cobalt-theme /usr/share/emacs/site-lisp/elpa/color-theme-modern-0.0.2/scintilla-theme hides /usr/share/emacs/site-lisp/elpa-src/color-theme-modern-0.0.2/scintilla-theme /usr/share/emacs/site-lisp/elpa/color-theme-modern-0.0.2/sitaramv-solaris-theme hides /usr/share/emacs/site-lisp/elpa-src/color-theme-modern-0.0.2/sitaramv-solaris-theme /usr/share/emacs/site-lisp/elpa/color-theme-modern-0.0.2/shaman-theme hides /usr/share/emacs/site-lisp/elpa-src/color-theme-modern-0.0.2/shaman-theme /usr/share/emacs/site-lisp/elpa/color-theme-modern-0.0.2/blue-gnus-theme hides /usr/share/emacs/site-lisp/elpa-src/color-theme-modern-0.0.2/blue-gnus-theme /usr/share/emacs/site-lisp/elpa/color-theme-modern-0.0.2/emacs-nw-theme hides /usr/share/emacs/site-lisp/elpa-src/color-theme-modern-0.0.2/emacs-nw-theme /usr/share/emacs/site-lisp/elpa/color-theme-modern-0.0.2/beige-eshell-theme hides /usr/share/emacs/site-lisp/elpa-src/color-theme-modern-0.0.2/beige-eshell-theme /usr/share/emacs/site-lisp/elpa/color-theme-modern-0.0.2/color-theme-modern-pkg hides /usr/share/emacs/site-lisp/elpa-src/color-theme-modern-0.0.2/color-theme-modern-pkg /usr/share/emacs/site-lisp/elpa/color-theme-modern-0.0.2/gray30-theme hides /usr/share/emacs/site-lisp/elpa-src/color-theme-modern-0.0.2/gray30-theme /usr/share/emacs/site-lisp/elpa/color-theme-modern-0.0.2/julie-theme hides /usr/share/emacs/site-lisp/elpa-src/color-theme-modern-0.0.2/julie-theme /usr/share/emacs/site-lisp/elpa/color-theme-modern-0.0.2/dark-blue2-theme hides /usr/share/emacs/site-lisp/elpa-src/color-theme-modern-0.0.2/dark-blue2-theme /usr/share/emacs/site-lisp/elpa/color-theme-modern-0.0.2/retro-green-theme hides /usr/share/emacs/site-lisp/elpa-src/color-theme-modern-0.0.2/retro-green-theme /usr/share/emacs/site-lisp/elpa/color-theme-modern-0.0.2/taylor-theme hides /usr/share/emacs/site-lisp/elpa-src/color-theme-modern-0.0.2/taylor-theme /usr/share/emacs/site-lisp/elpa/color-theme-modern-0.0.2/vim-colors-theme hides /usr/share/emacs/site-lisp/elpa-src/color-theme-modern-0.0.2/vim-colors-theme /usr/share/emacs/site-lisp/elpa/color-theme-modern-0.0.2/jedit-grey-theme hides /usr/share/emacs/site-lisp/elpa-src/color-theme-modern-0.0.2/jedit-grey-theme /usr/share/emacs/site-lisp/elpa/color-theme-modern-0.0.2/beige-diff-theme hides /usr/share/emacs/site-lisp/elpa-src/color-theme-modern-0.0.2/beige-diff-theme /usr/share/emacs/site-lisp/elpa/color-theme-modern-0.0.2/oswald-theme hides /usr/share/emacs/site-lisp/elpa-src/color-theme-modern-0.0.2/oswald-theme /usr/share/emacs/site-lisp/elpa/color-theme-modern-0.0.2/pierson-theme hides /usr/share/emacs/site-lisp/elpa-src/color-theme-modern-0.0.2/pierson-theme /usr/share/emacs/site-lisp/elpa/color-theme-modern-0.0.2/comidia-theme hides /usr/share/emacs/site-lisp/elpa-src/color-theme-modern-0.0.2/comidia-theme /usr/share/emacs/site-lisp/elpa/color-theme-modern-0.0.2/dark-laptop-theme hides /usr/share/emacs/site-lisp/elpa-src/color-theme-modern-0.0.2/dark-laptop-theme /usr/share/emacs/site-lisp/elpa/color-theme-modern-0.0.2/snow-theme hides /usr/share/emacs/site-lisp/elpa-src/color-theme-modern-0.0.2/snow-theme /usr/share/emacs/site-lisp/elpa/color-theme-modern-0.0.2/xp-theme hides /usr/share/emacs/site-lisp/elpa-src/color-theme-modern-0.0.2/xp-theme /usr/share/emacs/site-lisp/elpa/color-theme-modern-0.0.2/color-theme-modern hides /usr/share/emacs/site-lisp/elpa-src/color-theme-modern-0.0.2/color-theme-modern /usr/share/emacs/site-lisp/elpa/color-theme-modern-0.0.2/dark-gnus-theme hides /usr/share/emacs/site-lisp/elpa-src/color-theme-modern-0.0.2/dark-gnus-theme /usr/share/emacs/site-lisp/elpa/color-theme-modern-0.0.2/subdued-theme hides /usr/share/emacs/site-lisp/elpa-src/color-theme-modern-0.0.2/subdued-theme /usr/share/emacs/site-lisp/elpa/color-theme-modern-0.0.2/standard-ediff-theme hides /usr/share/emacs/site-lisp/elpa-src/color-theme-modern-0.0.2/standard-ediff-theme /usr/share/emacs/site-lisp/elpa/color-theme-modern-0.0.2/sitaramv-nt-theme hides /usr/share/emacs/site-lisp/elpa-src/color-theme-modern-0.0.2/sitaramv-nt-theme /usr/share/emacs/site-lisp/elpa/color-theme-modern-0.0.2/gtk-ide-theme hides /usr/share/emacs/site-lisp/elpa-src/color-theme-modern-0.0.2/gtk-ide-theme /usr/share/emacs/site-lisp/elpa/color-theme-modern-0.0.2/jsc-light2-theme hides /usr/share/emacs/site-lisp/elpa-src/color-theme-modern-0.0.2/jsc-light2-theme /usr/share/emacs/site-lisp/elpa/color-theme-modern-0.0.2/gnome2-theme hides /usr/share/emacs/site-lisp/elpa-src/color-theme-modern-0.0.2/gnome2-theme /usr/share/emacs/site-lisp/elpa/color-theme-modern-0.0.2/aalto-light-theme hides /usr/share/emacs/site-lisp/elpa-src/color-theme-modern-0.0.2/aalto-light-theme /usr/share/emacs/site-lisp/elpa/color-theme-modern-0.0.2/billw-theme hides /usr/share/emacs/site-lisp/elpa-src/color-theme-modern-0.0.2/billw-theme /usr/share/emacs/site-lisp/elpa/color-theme-modern-0.0.2/montz-theme hides /usr/share/emacs/site-lisp/elpa-src/color-theme-modern-0.0.2/montz-theme /usr/share/emacs/site-lisp/elpa/color-theme-modern-0.0.2/gray1-theme hides /usr/share/emacs/site-lisp/elpa-src/color-theme-modern-0.0.2/gray1-theme /usr/share/emacs/site-lisp/elpa/company-1.0.2/company-cmake hides /usr/share/emacs/site-lisp/elpa-src/company-1.0.2/company-cmake /usr/share/emacs/site-lisp/elpa/company-1.0.2/company-bbdb hides /usr/share/emacs/site-lisp/elpa-src/company-1.0.2/company-bbdb /usr/share/emacs/site-lisp/elpa/company-1.0.2/company-keywords hides /usr/share/emacs/site-lisp/elpa-src/company-1.0.2/company-keywords /usr/share/emacs/site-lisp/elpa/company-1.0.2/company-capf hides /usr/share/emacs/site-lisp/elpa-src/company-1.0.2/company-capf /usr/share/emacs/site-lisp/elpa/company-1.0.2/company-clang hides /usr/share/emacs/site-lisp/elpa-src/company-1.0.2/company-clang /usr/share/emacs/site-lisp/elpa/company-1.0.2/company-pkg hides /usr/share/emacs/site-lisp/elpa-src/company-1.0.2/company-pkg /usr/share/emacs/site-lisp/elpa/company-1.0.2/company-files hides /usr/share/emacs/site-lisp/elpa-src/company-1.0.2/company-files /usr/share/emacs/site-lisp/elpa/company-1.0.2/company-gtags hides /usr/share/emacs/site-lisp/elpa-src/company-1.0.2/company-gtags /usr/share/emacs/site-lisp/elpa/company-1.0.2/company-yasnippet hides /usr/share/emacs/site-lisp/elpa-src/company-1.0.2/company-yasnippet /usr/share/emacs/site-lisp/elpa/company-1.0.2/company-oddmuse hides /usr/share/emacs/site-lisp/elpa-src/company-1.0.2/company-oddmuse /usr/share/emacs/site-lisp/elpa/company-1.0.2/company-template hides /usr/share/emacs/site-lisp/elpa-src/company-1.0.2/company-template /usr/share/emacs/site-lisp/elpa/company-1.0.2/company-autoloads hides /usr/share/emacs/site-lisp/elpa-src/company-1.0.2/company-autoloads /usr/share/emacs/site-lisp/elpa/company-1.0.2/company-tng hides /usr/share/emacs/site-lisp/elpa-src/company-1.0.2/company-tng /usr/share/emacs/site-lisp/elpa/company-1.0.2/company-ispell hides /usr/share/emacs/site-lisp/elpa-src/company-1.0.2/company-ispell /usr/share/emacs/site-lisp/elpa/company-1.0.2/company-tempo hides /usr/share/emacs/site-lisp/elpa-src/company-1.0.2/company-tempo /usr/share/emacs/site-lisp/elpa/company-1.0.2/company-dabbrev hides /usr/share/emacs/site-lisp/elpa-src/company-1.0.2/company-dabbrev /usr/share/emacs/site-lisp/elpa/company-1.0.2/company-abbrev hides /usr/share/emacs/site-lisp/elpa-src/company-1.0.2/company-abbrev /usr/share/emacs/site-lisp/elpa/company-1.0.2/company-css hides /usr/share/emacs/site-lisp/elpa-src/company-1.0.2/company-css /usr/share/emacs/site-lisp/elpa/company-1.0.2/company hides /usr/share/emacs/site-lisp/elpa-src/company-1.0.2/company /usr/share/emacs/site-lisp/elpa/company-1.0.2/company-nxml hides /usr/share/emacs/site-lisp/elpa-src/company-1.0.2/company-nxml /usr/share/emacs/site-lisp/elpa/company-1.0.2/company-etags hides /usr/share/emacs/site-lisp/elpa-src/company-1.0.2/company-etags /usr/share/emacs/site-lisp/elpa/company-1.0.2/company-dabbrev-code hides /usr/share/emacs/site-lisp/elpa-src/company-1.0.2/company-dabbrev-code /usr/share/emacs/site-lisp/elpa/company-1.0.2/company-semantic hides /usr/share/emacs/site-lisp/elpa-src/company-1.0.2/company-semantic /usr/share/emacs/site-lisp/elpa/company-1.0.2/company-tests hides /usr/share/emacs/site-lisp/elpa-src/company-1.0.2/company-tests /usr/share/emacs/site-lisp/elpa/compat-30.1.0.0/compat-30 hides /usr/share/emacs/site-lisp/elpa-src/compat-30.1.0.0/compat-30 /usr/share/emacs/site-lisp/elpa/compat-30.1.0.0/compat-macs hides /usr/share/emacs/site-lisp/elpa-src/compat-30.1.0.0/compat-macs /usr/share/emacs/site-lisp/elpa/compat-30.1.0.0/compat-26 hides /usr/share/emacs/site-lisp/elpa-src/compat-30.1.0.0/compat-26 /usr/share/emacs/site-lisp/elpa/compat-30.1.0.0/compat-25 hides /usr/share/emacs/site-lisp/elpa-src/compat-30.1.0.0/compat-25 /usr/share/emacs/site-lisp/elpa/compat-30.1.0.0/compat-27 hides /usr/share/emacs/site-lisp/elpa-src/compat-30.1.0.0/compat-27 /usr/share/emacs/site-lisp/elpa/compat-30.1.0.0/compat-pkg hides /usr/share/emacs/site-lisp/elpa-src/compat-30.1.0.0/compat-pkg /usr/share/emacs/site-lisp/elpa/compat-30.1.0.0/compat-autoloads hides /usr/share/emacs/site-lisp/elpa-src/compat-30.1.0.0/compat-autoloads /usr/share/emacs/site-lisp/elpa/compat-30.1.0.0/compat-28 hides /usr/share/emacs/site-lisp/elpa-src/compat-30.1.0.0/compat-28 /usr/share/emacs/site-lisp/elpa/compat-30.1.0.0/compat-29 hides /usr/share/emacs/site-lisp/elpa-src/compat-30.1.0.0/compat-29 /usr/share/emacs/site-lisp/elpa/compat-30.1.0.0/compat hides /usr/share/emacs/site-lisp/elpa-src/compat-30.1.0.0/compat /usr/share/emacs/site-lisp/elpa/corfu-2.1/corfu-popupinfo hides /usr/share/emacs/site-lisp/elpa-src/corfu-2.1/corfu-popupinfo /usr/share/emacs/site-lisp/elpa/corfu-2.1/corfu-quick hides /usr/share/emacs/site-lisp/elpa-src/corfu-2.1/corfu-quick /usr/share/emacs/site-lisp/elpa/corfu-2.1/corfu-echo hides /usr/share/emacs/site-lisp/elpa-src/corfu-2.1/corfu-echo /usr/share/emacs/site-lisp/elpa/corfu-2.1/corfu-autoloads hides /usr/share/emacs/site-lisp/elpa-src/corfu-2.1/corfu-autoloads /usr/share/emacs/site-lisp/elpa/corfu-2.1/corfu-info hides /usr/share/emacs/site-lisp/elpa-src/corfu-2.1/corfu-info /usr/share/emacs/site-lisp/elpa/corfu-2.1/corfu hides /usr/share/emacs/site-lisp/elpa-src/corfu-2.1/corfu /usr/share/emacs/site-lisp/elpa/corfu-2.1/corfu-indexed hides /usr/share/emacs/site-lisp/elpa-src/corfu-2.1/corfu-indexed /usr/share/emacs/site-lisp/elpa/corfu-2.1/corfu-pkg hides /usr/share/emacs/site-lisp/elpa-src/corfu-2.1/corfu-pkg /usr/share/emacs/site-lisp/elpa/corfu-2.1/corfu-history hides /usr/share/emacs/site-lisp/elpa-src/corfu-2.1/corfu-history /usr/share/emacs/site-lisp/elpa/corfu-terminal-0.7/corfu-terminal hides /usr/share/emacs/site-lisp/elpa-src/corfu-terminal-0.7/corfu-terminal /usr/share/emacs/site-lisp/elpa/corfu-terminal-0.7/corfu-terminal-autoloads hides /usr/share/emacs/site-lisp/elpa-src/corfu-terminal-0.7/corfu-terminal-autoloads /usr/share/emacs/site-lisp/elpa/corfu-terminal-0.7/corfu-terminal-pkg hides /usr/share/emacs/site-lisp/elpa-src/corfu-terminal-0.7/corfu-terminal-pkg /usr/share/emacs/site-lisp/elpa/csv-mode-1.27/csv-mode-autoloads hides /usr/share/emacs/site-lisp/elpa-src/csv-mode-1.27/csv-mode-autoloads /usr/share/emacs/site-lisp/elpa/csv-mode-1.27/csv-mode hides /usr/share/emacs/site-lisp/elpa-src/csv-mode-1.27/csv-mode /usr/share/emacs/site-lisp/elpa/csv-mode-1.27/csv-mode-tests hides /usr/share/emacs/site-lisp/elpa-src/csv-mode-1.27/csv-mode-tests /usr/share/emacs/site-lisp/elpa/csv-mode-1.27/csv-mode-pkg hides /usr/share/emacs/site-lisp/elpa-src/csv-mode-1.27/csv-mode-pkg /usr/share/emacs/site-lisp/elpa/dape-0.24.1/dape-pkg hides /usr/share/emacs/site-lisp/elpa-src/dape-0.24.1/dape-pkg /usr/share/emacs/site-lisp/elpa/dape-0.24.1/dape-autoloads hides /usr/share/emacs/site-lisp/elpa-src/dape-0.24.1/dape-autoloads /usr/share/emacs/site-lisp/elpa/dape-0.24.1/dape-tests hides /usr/share/emacs/site-lisp/elpa-src/dape-0.24.1/dape-tests /usr/share/emacs/site-lisp/elpa/dape-0.24.1/dape hides /usr/share/emacs/site-lisp/elpa-src/dape-0.24.1/dape /usr/share/emacs/site-lisp/elpa/dart-mode-1.0.7/dart-mode hides /usr/share/emacs/site-lisp/elpa-src/dart-mode-1.0.7/dart-mode /usr/share/emacs/site-lisp/elpa/dart-mode-1.0.7/dart-mode-pkg hides /usr/share/emacs/site-lisp/elpa-src/dart-mode-1.0.7/dart-mode-pkg /usr/share/emacs/site-lisp/elpa/dart-mode-1.0.7/dart-mode-autoloads hides /usr/share/emacs/site-lisp/elpa-src/dart-mode-1.0.7/dart-mode-autoloads /usr/share/emacs/site-lisp/elpa/dash-2.20.0/dash hides /usr/share/emacs/site-lisp/elpa-src/dash-2.20.0/dash /usr/share/emacs/site-lisp/elpa/dash-2.20.0/dash-autoloads hides /usr/share/emacs/site-lisp/elpa-src/dash-2.20.0/dash-autoloads /usr/share/emacs/site-lisp/elpa/dash-2.20.0/dash-pkg hides /usr/share/emacs/site-lisp/elpa-src/dash-2.20.0/dash-pkg /usr/share/emacs/site-lisp/elpa/debian-el-37.19/debian-bug hides /usr/share/emacs/site-lisp/elpa-src/debian-el-37.19/debian-bug /usr/share/emacs/site-lisp/elpa/debian-el-37.19/deb-view hides /usr/share/emacs/site-lisp/elpa-src/debian-el-37.19/deb-view /usr/share/emacs/site-lisp/elpa/debian-el-37.19/debian-el-autoloads hides /usr/share/emacs/site-lisp/elpa-src/debian-el-37.19/debian-el-autoloads /usr/share/emacs/site-lisp/elpa/debian-el-37.19/preseed hides /usr/share/emacs/site-lisp/elpa-src/debian-el-37.19/preseed /usr/share/emacs/site-lisp/elpa/debian-el-37.19/apt-utils hides /usr/share/emacs/site-lisp/elpa-src/debian-el-37.19/apt-utils /usr/share/emacs/site-lisp/elpa/debian-el-37.19/debian-el-pkg hides /usr/share/emacs/site-lisp/elpa-src/debian-el-37.19/debian-el-pkg /usr/share/emacs/site-lisp/elpa/debian-el-37.19/debian-el hides /usr/share/emacs/site-lisp/elpa-src/debian-el-37.19/debian-el /usr/share/emacs/site-lisp/elpa/debian-el-37.19/gnus-BTS hides /usr/share/emacs/site-lisp/elpa-src/debian-el-37.19/gnus-BTS /usr/share/emacs/site-lisp/elpa/debian-el-37.19/debian-autoloads hides /usr/share/emacs/site-lisp/elpa-src/debian-el-37.19/debian-autoloads /usr/share/emacs/site-lisp/elpa/debian-el-37.19/apt-sources hides /usr/share/emacs/site-lisp/elpa-src/debian-el-37.19/apt-sources /usr/share/emacs/site-lisp/elpa/debian-el-37.19/apt-deb822-sources hides /usr/share/emacs/site-lisp/elpa-src/debian-el-37.19/apt-deb822-sources /usr/share/emacs/site-lisp/elpa/debpaste-0.1.5/debpaste hides /usr/share/emacs/site-lisp/elpa-src/debpaste-0.1.5/debpaste /usr/share/emacs/site-lisp/elpa/debpaste-0.1.5/debpaste-pkg hides /usr/share/emacs/site-lisp/elpa-src/debpaste-0.1.5/debpaste-pkg /usr/share/emacs/site-lisp/elpa/debpaste-0.1.5/debpaste-autoloads hides /usr/share/emacs/site-lisp/elpa-src/debpaste-0.1.5/debpaste-autoloads /usr/share/emacs/site-lisp/elpa/devscripts-40/pbuilder-mode hides /usr/share/emacs/site-lisp/elpa-src/devscripts-40/pbuilder-mode /usr/share/emacs/site-lisp/elpa/devscripts-40/pbuilder-log-view-mode hides /usr/share/emacs/site-lisp/elpa-src/devscripts-40/pbuilder-log-view-mode /usr/share/emacs/site-lisp/elpa/devscripts-40/devscripts hides /usr/share/emacs/site-lisp/elpa-src/devscripts-40/devscripts /usr/share/emacs/site-lisp/elpa/devscripts-40/devscripts-pkg hides /usr/share/emacs/site-lisp/elpa-src/devscripts-40/devscripts-pkg /usr/share/emacs/site-lisp/elpa/devscripts-40/devscripts-autoloads hides /usr/share/emacs/site-lisp/elpa-src/devscripts-40/devscripts-autoloads /usr/share/emacs/site-lisp/elpa/diminish-0.45/diminish-autoloads hides /usr/share/emacs/site-lisp/elpa-src/diminish-0.45/diminish-autoloads /usr/share/emacs/site-lisp/elpa/diminish-0.45/diminish hides /usr/share/emacs/site-lisp/elpa-src/diminish-0.45/diminish /usr/share/emacs/site-lisp/elpa/diminish-0.45/diminish-pkg hides /usr/share/emacs/site-lisp/elpa-src/diminish-0.45/diminish-pkg /usr/share/emacs/site-lisp/elpa/dockerfile-mode-1.7/dockerfile-mode-pkg hides /usr/share/emacs/site-lisp/elpa-src/dockerfile-mode-1.7/dockerfile-mode-pkg /usr/share/emacs/site-lisp/elpa/dockerfile-mode-1.7/dockerfile-mode-autoloads hides /usr/share/emacs/site-lisp/elpa-src/dockerfile-mode-1.7/dockerfile-mode-autoloads /usr/share/emacs/site-lisp/elpa/dockerfile-mode-1.7/dockerfile-mode hides /usr/share/emacs/site-lisp/elpa-src/dockerfile-mode-1.7/dockerfile-mode /usr/share/emacs/site-lisp/elpa/dpkg-dev-el-37.19/debian-bts-control hides /usr/share/emacs/site-lisp/elpa-src/dpkg-dev-el-37.19/debian-bts-control /usr/share/emacs/site-lisp/elpa/dpkg-dev-el-37.19/dpkg-dev-el hides /usr/share/emacs/site-lisp/elpa-src/dpkg-dev-el-37.19/dpkg-dev-el /usr/share/emacs/site-lisp/elpa/dpkg-dev-el-37.19/dpkg-dev-common-utils hides /usr/share/emacs/site-lisp/elpa-src/dpkg-dev-el-37.19/dpkg-dev-common-utils /usr/share/emacs/site-lisp/elpa/dpkg-dev-el-37.19/debian-autopkgtest-control-mode hides /usr/share/emacs/site-lisp/elpa-src/dpkg-dev-el-37.19/debian-autopkgtest-control-mode /usr/share/emacs/site-lisp/elpa/dpkg-dev-el-37.19/debian-changelog-mode hides /usr/share/emacs/site-lisp/elpa-src/dpkg-dev-el-37.19/debian-changelog-mode /usr/share/emacs/site-lisp/elpa/dpkg-dev-el-37.19/debian-copyright hides /usr/share/emacs/site-lisp/elpa-src/dpkg-dev-el-37.19/debian-copyright /usr/share/emacs/site-lisp/elpa/dpkg-dev-el-37.19/readme-debian hides /usr/share/emacs/site-lisp/elpa-src/dpkg-dev-el-37.19/readme-debian /usr/share/emacs/site-lisp/elpa/dpkg-dev-el-37.19/dpkg-dev-el-autoloads hides /usr/share/emacs/site-lisp/elpa-src/dpkg-dev-el-37.19/dpkg-dev-el-autoloads /usr/share/emacs/site-lisp/elpa/dpkg-dev-el-37.19/dpkg-dev-el-pkg hides /usr/share/emacs/site-lisp/elpa-src/dpkg-dev-el-37.19/dpkg-dev-el-pkg /usr/share/emacs/site-lisp/elpa/dpkg-dev-el-37.19/debian-control-mode hides /usr/share/emacs/site-lisp/elpa-src/dpkg-dev-el-37.19/debian-control-mode /usr/share/emacs/site-lisp/elpa/elfeed-3.4.2/elfeed-pkg hides /usr/share/emacs/site-lisp/elpa-src/elfeed-3.4.2/elfeed-pkg /usr/share/emacs/site-lisp/elpa/elfeed-3.4.2/elfeed-link hides /usr/share/emacs/site-lisp/elpa-src/elfeed-3.4.2/elfeed-link /usr/share/emacs/site-lisp/elpa/elfeed-3.4.2/elfeed-lib hides /usr/share/emacs/site-lisp/elpa-src/elfeed-3.4.2/elfeed-lib /usr/share/emacs/site-lisp/elpa/elfeed-3.4.2/elfeed-search hides /usr/share/emacs/site-lisp/elpa-src/elfeed-3.4.2/elfeed-search /usr/share/emacs/site-lisp/elpa/elfeed-3.4.2/elfeed-show hides /usr/share/emacs/site-lisp/elpa-src/elfeed-3.4.2/elfeed-show /usr/share/emacs/site-lisp/elpa/elfeed-3.4.2/elfeed-db hides /usr/share/emacs/site-lisp/elpa-src/elfeed-3.4.2/elfeed-db /usr/share/emacs/site-lisp/elpa/elfeed-3.4.2/elfeed-curl hides /usr/share/emacs/site-lisp/elpa-src/elfeed-3.4.2/elfeed-curl /usr/share/emacs/site-lisp/elpa/elfeed-3.4.2/elfeed-log hides /usr/share/emacs/site-lisp/elpa-src/elfeed-3.4.2/elfeed-log /usr/share/emacs/site-lisp/elpa/elfeed-3.4.2/elfeed-csv hides /usr/share/emacs/site-lisp/elpa-src/elfeed-3.4.2/elfeed-csv /usr/share/emacs/site-lisp/elpa/elfeed-3.4.2/elfeed-autoloads hides /usr/share/emacs/site-lisp/elpa-src/elfeed-3.4.2/elfeed-autoloads /usr/share/emacs/site-lisp/elpa/elfeed-3.4.2/xml-query hides /usr/share/emacs/site-lisp/elpa-src/elfeed-3.4.2/xml-query /usr/share/emacs/site-lisp/elpa/elfeed-3.4.2/elfeed hides /usr/share/emacs/site-lisp/elpa-src/elfeed-3.4.2/elfeed /usr/share/emacs/site-lisp/elpa/elm-mode-0.20.3/elm-imenu hides /usr/share/emacs/site-lisp/elpa-src/elm-mode-0.20.3/elm-imenu /usr/share/emacs/site-lisp/elpa/elm-mode-0.20.3/elm-mode hides /usr/share/emacs/site-lisp/elpa-src/elm-mode-0.20.3/elm-mode /usr/share/emacs/site-lisp/elpa/elm-mode-0.20.3/elm-tags hides /usr/share/emacs/site-lisp/elpa-src/elm-mode-0.20.3/elm-tags /usr/share/emacs/site-lisp/elpa/elm-mode-0.20.3/elm-mode-autoloads hides /usr/share/emacs/site-lisp/elpa-src/elm-mode-0.20.3/elm-mode-autoloads /usr/share/emacs/site-lisp/elpa/elm-mode-0.20.3/elm-interactive hides /usr/share/emacs/site-lisp/elpa-src/elm-mode-0.20.3/elm-interactive /usr/share/emacs/site-lisp/elpa/elm-mode-0.20.3/elm-format hides /usr/share/emacs/site-lisp/elpa-src/elm-mode-0.20.3/elm-format /usr/share/emacs/site-lisp/elpa/elm-mode-0.20.3/elm-util hides /usr/share/emacs/site-lisp/elpa-src/elm-mode-0.20.3/elm-util /usr/share/emacs/site-lisp/elpa/elm-mode-0.20.3/elm-mode-pkg hides /usr/share/emacs/site-lisp/elpa-src/elm-mode-0.20.3/elm-mode-pkg /usr/share/emacs/site-lisp/elpa/elm-mode-0.20.3/elm-indent hides /usr/share/emacs/site-lisp/elpa-src/elm-mode-0.20.3/elm-indent /usr/share/emacs/site-lisp/elpa/elm-mode-0.20.3/elm-font-lock hides /usr/share/emacs/site-lisp/elpa-src/elm-mode-0.20.3/elm-font-lock /usr/share/emacs/site-lisp/elpa/epl-0.9/epl-autoloads hides /usr/share/emacs/site-lisp/elpa-src/epl-0.9/epl-autoloads /usr/share/emacs/site-lisp/elpa/epl-0.9/epl-pkg hides /usr/share/emacs/site-lisp/elpa-src/epl-0.9/epl-pkg /usr/share/emacs/site-lisp/elpa/epl-0.9/epl hides /usr/share/emacs/site-lisp/elpa-src/epl-0.9/epl /usr/share/emacs/site-lisp/elpa/eproject-1.5/eproject-ruby-on-rails hides /usr/share/emacs/site-lisp/elpa-src/eproject-1.5/eproject-ruby-on-rails /usr/share/emacs/site-lisp/elpa/eproject-1.5/eproject-python hides /usr/share/emacs/site-lisp/elpa-src/eproject-1.5/eproject-python /usr/share/emacs/site-lisp/elpa/eproject-1.5/eproject-clojure-leiningen hides /usr/share/emacs/site-lisp/elpa-src/eproject-1.5/eproject-clojure-leiningen /usr/share/emacs/site-lisp/elpa/eproject-1.5/eproject-javascript-grunt hides /usr/share/emacs/site-lisp/elpa-src/eproject-1.5/eproject-javascript-grunt /usr/share/emacs/site-lisp/elpa/eproject-1.5/eproject-tests hides /usr/share/emacs/site-lisp/elpa-src/eproject-1.5/eproject-tests /usr/share/emacs/site-lisp/elpa/eproject-1.5/eproject-android hides /usr/share/emacs/site-lisp/elpa-src/eproject-1.5/eproject-android /usr/share/emacs/site-lisp/elpa/eproject-1.5/eproject-extras hides /usr/share/emacs/site-lisp/elpa-src/eproject-1.5/eproject-extras /usr/share/emacs/site-lisp/elpa/eproject-1.5/eproject-javascript-bower hides /usr/share/emacs/site-lisp/elpa-src/eproject-1.5/eproject-javascript-bower /usr/share/emacs/site-lisp/elpa/eproject-1.5/eproject-pkg hides /usr/share/emacs/site-lisp/elpa-src/eproject-1.5/eproject-pkg /usr/share/emacs/site-lisp/elpa/eproject-1.5/eproject-arduino hides /usr/share/emacs/site-lisp/elpa-src/eproject-1.5/eproject-arduino /usr/share/emacs/site-lisp/elpa/eproject-1.5/eproject-javascript-npm hides /usr/share/emacs/site-lisp/elpa-src/eproject-1.5/eproject-javascript-npm /usr/share/emacs/site-lisp/elpa/eproject-1.5/eproject-ruby hides /usr/share/emacs/site-lisp/elpa-src/eproject-1.5/eproject-ruby /usr/share/emacs/site-lisp/elpa/eproject-1.5/eproject-php-composer hides /usr/share/emacs/site-lisp/elpa-src/eproject-1.5/eproject-php-composer /usr/share/emacs/site-lisp/elpa/eproject-1.5/eproject-autoloads hides /usr/share/emacs/site-lisp/elpa-src/eproject-1.5/eproject-autoloads /usr/share/emacs/site-lisp/elpa/eproject-1.5/eproject-perl hides /usr/share/emacs/site-lisp/elpa-src/eproject-1.5/eproject-perl /usr/share/emacs/site-lisp/elpa/eproject-1.5/eproject hides /usr/share/emacs/site-lisp/elpa-src/eproject-1.5/eproject /usr/share/emacs/site-lisp/elpa/evil-1.14.2/evil-core hides /usr/share/emacs/site-lisp/elpa-src/evil-1.14.2/evil-core /usr/share/emacs/site-lisp/elpa/evil-1.14.2/evil-types hides /usr/share/emacs/site-lisp/elpa-src/evil-1.14.2/evil-types /usr/share/emacs/site-lisp/elpa/evil-1.14.2/evil-vars hides /usr/share/emacs/site-lisp/elpa-src/evil-1.14.2/evil-vars /usr/share/emacs/site-lisp/elpa/evil-1.14.2/evil-commands hides /usr/share/emacs/site-lisp/elpa-src/evil-1.14.2/evil-commands /usr/share/emacs/site-lisp/elpa/evil-1.14.2/evil-jumps hides /usr/share/emacs/site-lisp/elpa-src/evil-1.14.2/evil-jumps /usr/share/emacs/site-lisp/elpa/evil-1.14.2/evil-integration hides /usr/share/emacs/site-lisp/elpa-src/evil-1.14.2/evil-integration /usr/share/emacs/site-lisp/elpa/evil-1.14.2/evil-keybindings hides /usr/share/emacs/site-lisp/elpa-src/evil-1.14.2/evil-keybindings /usr/share/emacs/site-lisp/elpa/evil-1.14.2/evil-pkg hides /usr/share/emacs/site-lisp/elpa-src/evil-1.14.2/evil-pkg /usr/share/emacs/site-lisp/elpa/evil-1.14.2/evil hides /usr/share/emacs/site-lisp/elpa-src/evil-1.14.2/evil /usr/share/emacs/site-lisp/elpa/evil-1.14.2/evil-ex hides /usr/share/emacs/site-lisp/elpa-src/evil-1.14.2/evil-ex /usr/share/emacs/site-lisp/elpa/evil-1.14.2/evil-common hides /usr/share/emacs/site-lisp/elpa-src/evil-1.14.2/evil-common /usr/share/emacs/site-lisp/elpa/evil-1.14.2/evil-digraphs hides /usr/share/emacs/site-lisp/elpa-src/evil-1.14.2/evil-digraphs /usr/share/emacs/site-lisp/elpa/evil-1.14.2/evil-states hides /usr/share/emacs/site-lisp/elpa-src/evil-1.14.2/evil-states /usr/share/emacs/site-lisp/elpa/evil-1.14.2/evil-macros hides /usr/share/emacs/site-lisp/elpa-src/evil-1.14.2/evil-macros /usr/share/emacs/site-lisp/elpa/evil-1.14.2/evil-command-window hides /usr/share/emacs/site-lisp/elpa-src/evil-1.14.2/evil-command-window /usr/share/emacs/site-lisp/elpa/evil-1.14.2/evil-search hides /usr/share/emacs/site-lisp/elpa-src/evil-1.14.2/evil-search /usr/share/emacs/site-lisp/elpa/evil-1.14.2/evil-maps hides /usr/share/emacs/site-lisp/elpa-src/evil-1.14.2/evil-maps /usr/share/emacs/site-lisp/elpa/evil-1.14.2/evil-autoloads hides /usr/share/emacs/site-lisp/elpa-src/evil-1.14.2/evil-autoloads /usr/share/emacs/site-lisp/elpa/evil-1.14.2/evil-repeat hides /usr/share/emacs/site-lisp/elpa-src/evil-1.14.2/evil-repeat /usr/share/emacs/site-lisp/elpa/exec-path-from-shell-2.2/exec-path-from-shell-autoloads hides /usr/share/emacs/site-lisp/elpa-src/exec-path-from-shell-2.2/exec-path-from-shell-autoloads /usr/share/emacs/site-lisp/elpa/exec-path-from-shell-2.2/exec-path-from-shell hides /usr/share/emacs/site-lisp/elpa-src/exec-path-from-shell-2.2/exec-path-from-shell /usr/share/emacs/site-lisp/elpa/exec-path-from-shell-2.2/exec-path-from-shell-pkg hides /usr/share/emacs/site-lisp/elpa-src/exec-path-from-shell-2.2/exec-path-from-shell-pkg /usr/share/emacs/site-lisp/elpa/f-0.21.0/f-autoloads hides /usr/share/emacs/site-lisp/elpa-src/f-0.21.0/f-autoloads /usr/share/emacs/site-lisp/elpa/f-0.21.0/f hides /usr/share/emacs/site-lisp/elpa-src/f-0.21.0/f /usr/share/emacs/site-lisp/elpa/f-0.21.0/f-pkg hides /usr/share/emacs/site-lisp/elpa-src/f-0.21.0/f-pkg /usr/share/emacs/site-lisp/elpa/f-0.21.0/f-shortdoc hides /usr/share/emacs/site-lisp/elpa-src/f-0.21.0/f-shortdoc /usr/share/emacs/site-lisp/elpa/folding-20240308.333/folding hides /usr/share/emacs/site-lisp/elpa-src/folding-20240308.333/folding /usr/share/emacs/site-lisp/elpa/folding-20240308.333/folding-pkg hides /usr/share/emacs/site-lisp/elpa-src/folding-20240308.333/folding-pkg /usr/share/emacs/site-lisp/elpa/folding-20240308.333/folding-autoloads hides /usr/share/emacs/site-lisp/elpa-src/folding-20240308.333/folding-autoloads /usr/share/emacs/site-lisp/elpa/format-all-0.6.0/format-all-pkg hides /usr/share/emacs/site-lisp/elpa-src/format-all-0.6.0/format-all-pkg /usr/share/emacs/site-lisp/elpa/format-all-0.6.0/format-all-autoloads hides /usr/share/emacs/site-lisp/elpa-src/format-all-0.6.0/format-all-autoloads /usr/share/emacs/site-lisp/elpa/format-all-0.6.0/format-all hides /usr/share/emacs/site-lisp/elpa-src/format-all-0.6.0/format-all /usr/share/emacs/site-lisp/elpa/fountain-mode-3.7.1/fountain-theme hides /usr/share/emacs/site-lisp/elpa-src/fountain-mode-3.7.1/fountain-theme /usr/share/emacs/site-lisp/elpa/fountain-mode-3.7.1/fountain-mode-pkg hides /usr/share/emacs/site-lisp/elpa-src/fountain-mode-3.7.1/fountain-mode-pkg /usr/share/emacs/site-lisp/elpa/fountain-mode-3.7.1/fountain-mode-autoloads hides /usr/share/emacs/site-lisp/elpa-src/fountain-mode-3.7.1/fountain-mode-autoloads /usr/share/emacs/site-lisp/elpa/fountain-mode-3.7.1/fountain-mode hides /usr/share/emacs/site-lisp/elpa-src/fountain-mode-3.7.1/fountain-mode /usr/share/emacs/site-lisp/elpa/git-modes-1.4.4/git-modes-autoloads hides /usr/share/emacs/site-lisp/elpa-src/git-modes-1.4.4/git-modes-autoloads /usr/share/emacs/site-lisp/elpa/git-modes-1.4.4/git-modes hides /usr/share/emacs/site-lisp/elpa-src/git-modes-1.4.4/git-modes /usr/share/emacs/site-lisp/elpa/git-modes-1.4.4/git-modes-pkg hides /usr/share/emacs/site-lisp/elpa-src/git-modes-1.4.4/git-modes-pkg /usr/share/emacs/site-lisp/elpa/gitattributes-mode-1.4.4/gitattributes-mode-pkg hides /usr/share/emacs/site-lisp/elpa-src/gitattributes-mode-1.4.4/gitattributes-mode-pkg /usr/share/emacs/site-lisp/elpa/gitattributes-mode-1.4.4/gitattributes-mode-autoloads hides /usr/share/emacs/site-lisp/elpa-src/gitattributes-mode-1.4.4/gitattributes-mode-autoloads /usr/share/emacs/site-lisp/elpa/gitattributes-mode-1.4.4/gitattributes-mode hides /usr/share/emacs/site-lisp/elpa-src/gitattributes-mode-1.4.4/gitattributes-mode /usr/share/emacs/site-lisp/elpa/gitconfig-mode-1.4.4/gitconfig-mode-autoloads hides /usr/share/emacs/site-lisp/elpa-src/gitconfig-mode-1.4.4/gitconfig-mode-autoloads /usr/share/emacs/site-lisp/elpa/gitconfig-mode-1.4.4/gitconfig-mode hides /usr/share/emacs/site-lisp/elpa-src/gitconfig-mode-1.4.4/gitconfig-mode /usr/share/emacs/site-lisp/elpa/gitconfig-mode-1.4.4/gitconfig-mode-pkg hides /usr/share/emacs/site-lisp/elpa-src/gitconfig-mode-1.4.4/gitconfig-mode-pkg /usr/share/emacs/site-lisp/elpa/gitignore-mode-1.4.4/gitignore-mode-autoloads hides /usr/share/emacs/site-lisp/elpa-src/gitignore-mode-1.4.4/gitignore-mode-autoloads /usr/share/emacs/site-lisp/elpa/gitignore-mode-1.4.4/gitignore-mode hides /usr/share/emacs/site-lisp/elpa-src/gitignore-mode-1.4.4/gitignore-mode /usr/share/emacs/site-lisp/elpa/gitignore-mode-1.4.4/gitignore-mode-pkg hides /usr/share/emacs/site-lisp/elpa-src/gitignore-mode-1.4.4/gitignore-mode-pkg /usr/share/emacs/site-lisp/elpa/gitlab-ci-mode-20191022.12.4/gitlab-ci-mode-autoloads hides /usr/share/emacs/site-lisp/elpa-src/gitlab-ci-mode-20191022.12.4/gitlab-ci-mode-autoloads /usr/share/emacs/site-lisp/elpa/gitlab-ci-mode-20191022.12.4/gitlab-ci-mode-pkg hides /usr/share/emacs/site-lisp/elpa-src/gitlab-ci-mode-20191022.12.4/gitlab-ci-mode-pkg /usr/share/emacs/site-lisp/elpa/gitlab-ci-mode-20191022.12.4/gitlab-ci-mode hides /usr/share/emacs/site-lisp/elpa-src/gitlab-ci-mode-20191022.12.4/gitlab-ci-mode /usr/share/emacs/site-lisp/elpa/gnuplot-0.8.1/gnuplot-gui hides /usr/share/emacs/site-lisp/elpa-src/gnuplot-0.8.1/gnuplot-gui /usr/share/emacs/site-lisp/elpa/gnuplot-0.8.1/gnuplot-context hides /usr/share/emacs/site-lisp/elpa-src/gnuplot-0.8.1/gnuplot-context /usr/share/emacs/site-lisp/elpa/gnuplot-0.8.1/gnuplot hides /usr/share/emacs/site-lisp/elpa-src/gnuplot-0.8.1/gnuplot /usr/share/emacs/site-lisp/elpa/debian-el-37.19/debian-autoloads hides /usr/share/emacs/site-lisp/elpa-src/gnuplot-0.8.1/debian-autoloads /usr/share/emacs/site-lisp/elpa/gnuplot-0.8.1/gnuplot-pkg hides /usr/share/emacs/site-lisp/elpa-src/gnuplot-0.8.1/gnuplot-pkg /usr/share/emacs/site-lisp/elpa/gnuplot-0.8.1/gnuplot-autoloads hides /usr/share/emacs/site-lisp/elpa-src/gnuplot-0.8.1/gnuplot-autoloads /usr/share/emacs/site-lisp/elpa/go-mode-1.6.0/go-mode-autoloads hides /usr/share/emacs/site-lisp/elpa-src/go-mode-1.6.0/go-mode-autoloads /usr/share/emacs/site-lisp/elpa/go-mode-1.6.0/go-mode hides /usr/share/emacs/site-lisp/elpa-src/go-mode-1.6.0/go-mode /usr/share/emacs/site-lisp/elpa/go-mode-1.6.0/go-guru hides /usr/share/emacs/site-lisp/elpa-src/go-mode-1.6.0/go-guru /usr/share/emacs/site-lisp/elpa/go-mode-1.6.0/go-mode-pkg hides /usr/share/emacs/site-lisp/elpa-src/go-mode-1.6.0/go-mode-pkg /usr/share/emacs/site-lisp/elpa/go-mode-1.6.0/go-rename hides /usr/share/emacs/site-lisp/elpa-src/go-mode-1.6.0/go-rename /usr/share/emacs/site-lisp/elpa/goto-chg-1.7.5/goto-chg hides /usr/share/emacs/site-lisp/elpa-src/goto-chg-1.7.5/goto-chg /usr/share/emacs/site-lisp/elpa/goto-chg-1.7.5/goto-chg-pkg hides /usr/share/emacs/site-lisp/elpa-src/goto-chg-1.7.5/goto-chg-pkg /usr/share/emacs/site-lisp/elpa/goto-chg-1.7.5/goto-chg-autoloads hides /usr/share/emacs/site-lisp/elpa-src/goto-chg-1.7.5/goto-chg-autoloads /usr/share/emacs/site-lisp/elpa/graphviz-dot-mode-0.4.2/graphviz-dot-mode-pkg hides /usr/share/emacs/site-lisp/elpa-src/graphviz-dot-mode-0.4.2/graphviz-dot-mode-pkg /usr/share/emacs/site-lisp/elpa/graphviz-dot-mode-0.4.2/graphviz-dot-mode-autoloads hides /usr/share/emacs/site-lisp/elpa-src/graphviz-dot-mode-0.4.2/graphviz-dot-mode-autoloads /usr/share/emacs/site-lisp/elpa/graphviz-dot-mode-0.4.2/graphviz-dot-mode hides /usr/share/emacs/site-lisp/elpa-src/graphviz-dot-mode-0.4.2/graphviz-dot-mode /usr/share/emacs/site-lisp/elpa/haskell-mode-17.5/haskell-svg hides /usr/share/emacs/site-lisp/elpa-src/haskell-mode-17.5/haskell-svg /usr/share/emacs/site-lisp/elpa/haskell-mode-17.5/haskell-mode-pkg hides /usr/share/emacs/site-lisp/elpa-src/haskell-mode-17.5/haskell-mode-pkg /usr/share/emacs/site-lisp/elpa/haskell-mode-17.5/haskell-utils hides /usr/share/emacs/site-lisp/elpa-src/haskell-mode-17.5/haskell-utils /usr/share/emacs/site-lisp/elpa/haskell-mode-17.5/haskell-sort-imports hides /usr/share/emacs/site-lisp/elpa-src/haskell-mode-17.5/haskell-sort-imports /usr/share/emacs/site-lisp/elpa/haskell-mode-17.5/ghc-core hides /usr/share/emacs/site-lisp/elpa-src/haskell-mode-17.5/ghc-core /usr/share/emacs/site-lisp/elpa/haskell-mode-17.5/haskell-compile hides /usr/share/emacs/site-lisp/elpa-src/haskell-mode-17.5/haskell-compile /usr/share/emacs/site-lisp/elpa/haskell-mode-17.5/haskell-load hides /usr/share/emacs/site-lisp/elpa-src/haskell-mode-17.5/haskell-load /usr/share/emacs/site-lisp/elpa/haskell-mode-17.5/haskell-decl-scan hides /usr/share/emacs/site-lisp/elpa-src/haskell-mode-17.5/haskell-decl-scan /usr/share/emacs/site-lisp/elpa/haskell-mode-17.5/haskell-c2hs hides /usr/share/emacs/site-lisp/elpa-src/haskell-mode-17.5/haskell-c2hs /usr/share/emacs/site-lisp/elpa/haskell-mode-17.5/haskell-session hides /usr/share/emacs/site-lisp/elpa-src/haskell-mode-17.5/haskell-session /usr/share/emacs/site-lisp/elpa/haskell-mode-17.5/haskell-string hides /usr/share/emacs/site-lisp/elpa-src/haskell-mode-17.5/haskell-string /usr/share/emacs/site-lisp/elpa/haskell-mode-17.5/haskell-collapse hides /usr/share/emacs/site-lisp/elpa-src/haskell-mode-17.5/haskell-collapse /usr/share/emacs/site-lisp/elpa/haskell-mode-17.5/haskell-lexeme hides /usr/share/emacs/site-lisp/elpa-src/haskell-mode-17.5/haskell-lexeme /usr/share/emacs/site-lisp/elpa/haskell-mode-17.5/haskell-navigate-imports hides /usr/share/emacs/site-lisp/elpa-src/haskell-mode-17.5/haskell-navigate-imports /usr/share/emacs/site-lisp/elpa/haskell-mode-17.5/haskell-align-imports hides /usr/share/emacs/site-lisp/elpa-src/haskell-mode-17.5/haskell-align-imports /usr/share/emacs/site-lisp/elpa/haskell-mode-17.5/haskell-process hides /usr/share/emacs/site-lisp/elpa-src/haskell-mode-17.5/haskell-process /usr/share/emacs/site-lisp/elpa/haskell-mode-17.5/haskell-interactive-mode hides /usr/share/emacs/site-lisp/elpa-src/haskell-mode-17.5/haskell-interactive-mode /usr/share/emacs/site-lisp/elpa/haskell-mode-17.5/haskell-customize hides /usr/share/emacs/site-lisp/elpa-src/haskell-mode-17.5/haskell-customize /usr/share/emacs/site-lisp/elpa/haskell-mode-17.5/haskell-commands hides /usr/share/emacs/site-lisp/elpa-src/haskell-mode-17.5/haskell-commands /usr/share/emacs/site-lisp/elpa/haskell-mode-17.5/haskell-menu hides /usr/share/emacs/site-lisp/elpa-src/haskell-mode-17.5/haskell-menu /usr/share/emacs/site-lisp/elpa/haskell-mode-17.5/haskell-doc hides /usr/share/emacs/site-lisp/elpa-src/haskell-mode-17.5/haskell-doc /usr/share/emacs/site-lisp/elpa/haskell-mode-17.5/haskell-move-nested hides /usr/share/emacs/site-lisp/elpa-src/haskell-mode-17.5/haskell-move-nested /usr/share/emacs/site-lisp/elpa/haskell-mode-17.5/ghci-script-mode hides /usr/share/emacs/site-lisp/elpa-src/haskell-mode-17.5/ghci-script-mode /usr/share/emacs/site-lisp/elpa/haskell-mode-17.5/w3m-haddock hides /usr/share/emacs/site-lisp/elpa-src/haskell-mode-17.5/w3m-haddock /usr/share/emacs/site-lisp/elpa/haskell-mode-17.5/highlight-uses-mode hides /usr/share/emacs/site-lisp/elpa-src/haskell-mode-17.5/highlight-uses-mode /usr/share/emacs/site-lisp/elpa/haskell-mode-17.5/haskell-debug hides /usr/share/emacs/site-lisp/elpa-src/haskell-mode-17.5/haskell-debug /usr/share/emacs/site-lisp/elpa/haskell-mode-17.5/haskell-modules hides /usr/share/emacs/site-lisp/elpa-src/haskell-mode-17.5/haskell-modules /usr/share/emacs/site-lisp/elpa/haskell-mode-17.5/haskell-indentation hides /usr/share/emacs/site-lisp/elpa-src/haskell-mode-17.5/haskell-indentation /usr/share/emacs/site-lisp/elpa/haskell-mode-17.5/haskell-hoogle hides /usr/share/emacs/site-lisp/elpa-src/haskell-mode-17.5/haskell-hoogle /usr/share/emacs/site-lisp/elpa/haskell-mode-17.5/haskell-repl hides /usr/share/emacs/site-lisp/elpa-src/haskell-mode-17.5/haskell-repl /usr/share/emacs/site-lisp/elpa/haskell-mode-17.5/haskell-sandbox hides /usr/share/emacs/site-lisp/elpa-src/haskell-mode-17.5/haskell-sandbox /usr/share/emacs/site-lisp/elpa/haskell-mode-17.5/haskell-completions hides /usr/share/emacs/site-lisp/elpa-src/haskell-mode-17.5/haskell-completions /usr/share/emacs/site-lisp/elpa/haskell-mode-17.5/haskell hides /usr/share/emacs/site-lisp/elpa-src/haskell-mode-17.5/haskell /usr/share/emacs/site-lisp/elpa/haskell-mode-17.5/haskell-indent hides /usr/share/emacs/site-lisp/elpa-src/haskell-mode-17.5/haskell-indent /usr/share/emacs/site-lisp/elpa/haskell-mode-17.5/haskell-mode hides /usr/share/emacs/site-lisp/elpa-src/haskell-mode-17.5/haskell-mode /usr/share/emacs/site-lisp/elpa/haskell-mode-17.5/haskell-complete-module hides /usr/share/emacs/site-lisp/elpa-src/haskell-mode-17.5/haskell-complete-module /usr/share/emacs/site-lisp/elpa/haskell-mode-17.5/haskell-mode-autoloads hides /usr/share/emacs/site-lisp/elpa-src/haskell-mode-17.5/haskell-mode-autoloads /usr/share/emacs/site-lisp/elpa/haskell-mode-17.5/inf-haskell hides /usr/share/emacs/site-lisp/elpa-src/haskell-mode-17.5/inf-haskell /usr/share/emacs/site-lisp/elpa/haskell-mode-17.5/haskell-unicode-input-method hides /usr/share/emacs/site-lisp/elpa-src/haskell-mode-17.5/haskell-unicode-input-method /usr/share/emacs/site-lisp/elpa/haskell-mode-17.5/haskell-presentation-mode hides /usr/share/emacs/site-lisp/elpa-src/haskell-mode-17.5/haskell-presentation-mode /usr/share/emacs/site-lisp/elpa/haskell-mode-17.5/haskell-ghc-support hides /usr/share/emacs/site-lisp/elpa-src/haskell-mode-17.5/haskell-ghc-support /usr/share/emacs/site-lisp/elpa/haskell-mode-17.5/haskell-cabal hides /usr/share/emacs/site-lisp/elpa-src/haskell-mode-17.5/haskell-cabal /usr/share/emacs/site-lisp/elpa/haskell-mode-17.5/haskell-font-lock hides /usr/share/emacs/site-lisp/elpa-src/haskell-mode-17.5/haskell-font-lock /usr/share/emacs/site-lisp/elpa/helm-4.0.3/helm-pkg hides /usr/share/emacs/site-lisp/elpa-src/helm-4.0.3/helm-pkg /usr/share/emacs/site-lisp/elpa/helm-4.0.3/helm-fd hides /usr/share/emacs/site-lisp/elpa-src/helm-4.0.3/helm-fd /usr/share/emacs/site-lisp/elpa/helm-4.0.3/helm-man hides /usr/share/emacs/site-lisp/elpa-src/helm-4.0.3/helm-man /usr/share/emacs/site-lisp/elpa/helm-4.0.3/helm-global-bindings hides /usr/share/emacs/site-lisp/elpa-src/helm-4.0.3/helm-global-bindings /usr/share/emacs/site-lisp/elpa/helm-4.0.3/helm-net hides /usr/share/emacs/site-lisp/elpa-src/helm-4.0.3/helm-net /usr/share/emacs/site-lisp/elpa/helm-4.0.3/helm-buffers hides /usr/share/emacs/site-lisp/elpa-src/helm-4.0.3/helm-buffers /usr/share/emacs/site-lisp/elpa/helm-4.0.3/helm-external hides /usr/share/emacs/site-lisp/elpa-src/helm-4.0.3/helm-external /usr/share/emacs/site-lisp/elpa/helm-4.0.3/helm-for-files hides /usr/share/emacs/site-lisp/elpa-src/helm-4.0.3/helm-for-files /usr/share/emacs/site-lisp/elpa/helm-4.0.3/helm-elisp hides /usr/share/emacs/site-lisp/elpa-src/helm-4.0.3/helm-elisp /usr/share/emacs/site-lisp/elpa/helm-4.0.3/helm-find hides /usr/share/emacs/site-lisp/elpa-src/helm-4.0.3/helm-find /usr/share/emacs/site-lisp/elpa/helm-4.0.3/helm-imenu hides /usr/share/emacs/site-lisp/elpa-src/helm-4.0.3/helm-imenu /usr/share/emacs/site-lisp/elpa/helm-4.0.3/helm-tags hides /usr/share/emacs/site-lisp/elpa-src/helm-4.0.3/helm-tags /usr/share/emacs/site-lisp/elpa/helm-4.0.3/helm-autoloads hides /usr/share/emacs/site-lisp/elpa-src/helm-4.0.3/helm-autoloads /usr/share/emacs/site-lisp/elpa/helm-4.0.3/helm-types hides /usr/share/emacs/site-lisp/elpa-src/helm-4.0.3/helm-types /usr/share/emacs/site-lisp/elpa/helm-4.0.3/helm-easymenu hides /usr/share/emacs/site-lisp/elpa-src/helm-4.0.3/helm-easymenu /usr/share/emacs/site-lisp/elpa/helm-4.0.3/helm-info hides /usr/share/emacs/site-lisp/elpa-src/helm-4.0.3/helm-info /usr/share/emacs/site-lisp/elpa/helm-4.0.3/helm-dabbrev hides /usr/share/emacs/site-lisp/elpa-src/helm-4.0.3/helm-dabbrev /usr/share/emacs/site-lisp/elpa/helm-4.0.3/helm-sys hides /usr/share/emacs/site-lisp/elpa-src/helm-4.0.3/helm-sys /usr/share/emacs/site-lisp/elpa/helm-4.0.3/helm-packages hides /usr/share/emacs/site-lisp/elpa-src/helm-4.0.3/helm-packages /usr/share/emacs/site-lisp/elpa/helm-4.0.3/helm-locate hides /usr/share/emacs/site-lisp/elpa-src/helm-4.0.3/helm-locate /usr/share/emacs/site-lisp/elpa/helm-4.0.3/helm-utils hides /usr/share/emacs/site-lisp/elpa-src/helm-4.0.3/helm-utils /usr/share/emacs/site-lisp/elpa/helm-4.0.3/helm-eshell hides /usr/share/emacs/site-lisp/elpa-src/helm-4.0.3/helm-eshell /usr/share/emacs/site-lisp/elpa/helm-4.0.3/helm-semantic hides /usr/share/emacs/site-lisp/elpa-src/helm-4.0.3/helm-semantic /usr/share/emacs/site-lisp/elpa/helm-4.0.3/helm-help hides /usr/share/emacs/site-lisp/elpa-src/helm-4.0.3/helm-help /usr/share/emacs/site-lisp/elpa/helm-4.0.3/helm-ring hides /usr/share/emacs/site-lisp/elpa-src/helm-4.0.3/helm-ring /usr/share/emacs/site-lisp/elpa/helm-4.0.3/helm-color hides /usr/share/emacs/site-lisp/elpa-src/helm-4.0.3/helm-color /usr/share/emacs/site-lisp/elpa/helm-4.0.3/helm-files hides /usr/share/emacs/site-lisp/elpa-src/helm-4.0.3/helm-files /usr/share/emacs/site-lisp/elpa/helm-4.0.3/helm-grep hides /usr/share/emacs/site-lisp/elpa-src/helm-4.0.3/helm-grep /usr/share/emacs/site-lisp/elpa/helm-4.0.3/helm-regexp hides /usr/share/emacs/site-lisp/elpa-src/helm-4.0.3/helm-regexp /usr/share/emacs/site-lisp/elpa/helm-4.0.3/helm-x-files hides /usr/share/emacs/site-lisp/elpa-src/helm-4.0.3/helm-x-files /usr/share/emacs/site-lisp/elpa/helm-4.0.3/helm-epa hides /usr/share/emacs/site-lisp/elpa-src/helm-4.0.3/helm-epa /usr/share/emacs/site-lisp/elpa/helm-4.0.3/helm-font hides /usr/share/emacs/site-lisp/elpa-src/helm-4.0.3/helm-font /usr/share/emacs/site-lisp/elpa/helm-4.0.3/helm-command hides /usr/share/emacs/site-lisp/elpa-src/helm-4.0.3/helm-command /usr/share/emacs/site-lisp/elpa/helm-4.0.3/helm-misc hides /usr/share/emacs/site-lisp/elpa-src/helm-4.0.3/helm-misc /usr/share/emacs/site-lisp/elpa/helm-4.0.3/helm hides /usr/share/emacs/site-lisp/elpa-src/helm-4.0.3/helm /usr/share/emacs/site-lisp/elpa/helm-4.0.3/helm-occur hides /usr/share/emacs/site-lisp/elpa-src/helm-4.0.3/helm-occur /usr/share/emacs/site-lisp/elpa/helm-4.0.3/helm-bookmark hides /usr/share/emacs/site-lisp/elpa-src/helm-4.0.3/helm-bookmark /usr/share/emacs/site-lisp/elpa/helm-4.0.3/helm-id-utils hides /usr/share/emacs/site-lisp/elpa-src/helm-4.0.3/helm-id-utils /usr/share/emacs/site-lisp/elpa/helm-4.0.3/helm-mode hides /usr/share/emacs/site-lisp/elpa-src/helm-4.0.3/helm-mode /usr/share/emacs/site-lisp/elpa/helm-4.0.3/helm-adaptive hides /usr/share/emacs/site-lisp/elpa-src/helm-4.0.3/helm-adaptive /usr/share/emacs/site-lisp/elpa/helm-4.0.3/helm-x-icons hides /usr/share/emacs/site-lisp/elpa-src/helm-4.0.3/helm-x-icons /usr/share/emacs/site-lisp/elpa/helm-4.0.3/helm-eval hides /usr/share/emacs/site-lisp/elpa-src/helm-4.0.3/helm-eval /usr/share/emacs/site-lisp/elpa/helm-core-4.0.3/helm-core-autoloads hides /usr/share/emacs/site-lisp/elpa-src/helm-core-4.0.3/helm-core-autoloads /usr/share/emacs/site-lisp/elpa/helm-core-4.0.3/helm-lib hides /usr/share/emacs/site-lisp/elpa-src/helm-core-4.0.3/helm-lib /usr/share/emacs/site-lisp/elpa/helm-core-4.0.3/helm-core hides /usr/share/emacs/site-lisp/elpa-src/helm-core-4.0.3/helm-core /usr/share/emacs/site-lisp/elpa/helm-core-4.0.3/helm-core-pkg hides /usr/share/emacs/site-lisp/elpa-src/helm-core-4.0.3/helm-core-pkg /usr/share/emacs/site-lisp/elpa/helm-core-4.0.3/helm-multi-match hides /usr/share/emacs/site-lisp/elpa-src/helm-core-4.0.3/helm-multi-match /usr/share/emacs/site-lisp/elpa/helm-core-4.0.3/helm-source hides /usr/share/emacs/site-lisp/elpa-src/helm-core-4.0.3/helm-source /usr/share/emacs/site-lisp/elpa/ht-2.3/ht-pkg hides /usr/share/emacs/site-lisp/elpa-src/ht-2.3/ht-pkg /usr/share/emacs/site-lisp/elpa/ht-2.3/ht hides /usr/share/emacs/site-lisp/elpa-src/ht-2.3/ht /usr/share/emacs/site-lisp/elpa/ht-2.3/ht-autoloads hides /usr/share/emacs/site-lisp/elpa-src/ht-2.3/ht-autoloads /usr/share/emacs/site-lisp/elpa/htmlize-1.58/htmlize-autoloads hides /usr/share/emacs/site-lisp/elpa-src/htmlize-1.58/htmlize-autoloads /usr/share/emacs/site-lisp/elpa/htmlize-1.58/htmlize-pkg hides /usr/share/emacs/site-lisp/elpa-src/htmlize-1.58/htmlize-pkg /usr/share/emacs/site-lisp/elpa/htmlize-1.58/htmlize hides /usr/share/emacs/site-lisp/elpa-src/htmlize-1.58/htmlize /usr/share/emacs/site-lisp/elpa/hydra-0.15.0/hydra-examples hides /usr/share/emacs/site-lisp/elpa-src/hydra-0.15.0/hydra-examples /usr/share/emacs/site-lisp/elpa/hydra-0.15.0/hydra-ox hides /usr/share/emacs/site-lisp/elpa-src/hydra-0.15.0/hydra-ox /usr/share/emacs/site-lisp/elpa/hydra-0.15.0/hydra hides /usr/share/emacs/site-lisp/elpa-src/hydra-0.15.0/hydra /usr/share/emacs/site-lisp/elpa/hydra-0.15.0/hydra-autoloads hides /usr/share/emacs/site-lisp/elpa-src/hydra-0.15.0/hydra-autoloads /usr/share/emacs/site-lisp/elpa/hydra-0.15.0/hydra-pkg hides /usr/share/emacs/site-lisp/elpa-src/hydra-0.15.0/hydra-pkg /usr/share/emacs/site-lisp/elpa/imenu-list-0.9/imenu-list-autoloads hides /usr/share/emacs/site-lisp/elpa-src/imenu-list-0.9/imenu-list-autoloads /usr/share/emacs/site-lisp/elpa/imenu-list-0.9/imenu-list hides /usr/share/emacs/site-lisp/elpa-src/imenu-list-0.9/imenu-list /usr/share/emacs/site-lisp/elpa/imenu-list-0.9/imenu-list-pkg hides /usr/share/emacs/site-lisp/elpa-src/imenu-list-0.9/imenu-list-pkg /usr/share/emacs/site-lisp/elpa/inform-mode-1.6.2/inform-mode hides /usr/share/emacs/site-lisp/elpa-src/inform-mode-1.6.2/inform-mode /usr/share/emacs/site-lisp/elpa/inform-mode-1.6.2/inform-mode-pkg hides /usr/share/emacs/site-lisp/elpa-src/inform-mode-1.6.2/inform-mode-pkg /usr/share/emacs/site-lisp/elpa/inform-mode-1.6.2/inform-mode-autoloads hides /usr/share/emacs/site-lisp/elpa-src/inform-mode-1.6.2/inform-mode-autoloads /usr/share/emacs/site-lisp/elpa/inheritenv-0.2/inheritenv hides /usr/share/emacs/site-lisp/elpa-src/inheritenv-0.2/inheritenv /usr/share/emacs/site-lisp/elpa/inheritenv-0.2/inheritenv-tests hides /usr/share/emacs/site-lisp/elpa-src/inheritenv-0.2/inheritenv-tests /usr/share/emacs/site-lisp/elpa/inheritenv-0.2/inheritenv-pkg hides /usr/share/emacs/site-lisp/elpa-src/inheritenv-0.2/inheritenv-pkg /usr/share/emacs/site-lisp/elpa/inheritenv-0.2/inheritenv-autoloads hides /usr/share/emacs/site-lisp/elpa-src/inheritenv-0.2/inheritenv-autoloads /usr/share/emacs/site-lisp/elpa/initsplit-1.8/initsplit-pkg hides /usr/share/emacs/site-lisp/elpa-src/initsplit-1.8/initsplit-pkg /usr/share/emacs/site-lisp/elpa/initsplit-1.8/initsplit hides /usr/share/emacs/site-lisp/elpa-src/initsplit-1.8/initsplit /usr/share/emacs/site-lisp/elpa/initsplit-1.8/initsplit-autoloads hides /usr/share/emacs/site-lisp/elpa-src/initsplit-1.8/initsplit-autoloads /usr/share/emacs/site-lisp/elpa/initsplit-1.8/initsplit-test hides /usr/share/emacs/site-lisp/elpa-src/initsplit-1.8/initsplit-test /usr/share/emacs/site-lisp/elpa/jinja2-mode-0.2/jinja2-mode-pkg hides /usr/share/emacs/site-lisp/elpa-src/jinja2-mode-0.2/jinja2-mode-pkg /usr/share/emacs/site-lisp/elpa/jinja2-mode-0.2/jinja2-mode-autoloads hides /usr/share/emacs/site-lisp/elpa-src/jinja2-mode-0.2/jinja2-mode-autoloads /usr/share/emacs/site-lisp/elpa/jinja2-mode-0.2/jinja2-mode hides /usr/share/emacs/site-lisp/elpa-src/jinja2-mode-0.2/jinja2-mode /usr/share/emacs/site-lisp/elpa/js2-mode-20231224/js2-imenu-extras hides /usr/share/emacs/site-lisp/elpa-src/js2-mode-20231224/js2-imenu-extras /usr/share/emacs/site-lisp/elpa/js2-mode-20231224/js2-mode-pkg hides /usr/share/emacs/site-lisp/elpa-src/js2-mode-20231224/js2-mode-pkg /usr/share/emacs/site-lisp/elpa/js2-mode-20231224/js2-mode hides /usr/share/emacs/site-lisp/elpa-src/js2-mode-20231224/js2-mode /usr/share/emacs/site-lisp/elpa/js2-mode-20231224/js2-old-indent hides /usr/share/emacs/site-lisp/elpa-src/js2-mode-20231224/js2-old-indent /usr/share/emacs/site-lisp/elpa/js2-mode-20231224/js2-mode-autoloads hides /usr/share/emacs/site-lisp/elpa-src/js2-mode-20231224/js2-mode-autoloads /usr/share/emacs/site-lisp/elpa/kivy-mode-0.1.0/kivy-mode-pkg hides /usr/share/emacs/site-lisp/elpa-src/kivy-mode-0.1.0/kivy-mode-pkg /usr/share/emacs/site-lisp/elpa/kivy-mode-0.1.0/kivy-mode-autoloads hides /usr/share/emacs/site-lisp/elpa-src/kivy-mode-0.1.0/kivy-mode-autoloads /usr/share/emacs/site-lisp/elpa/kivy-mode-0.1.0/kivy-mode hides /usr/share/emacs/site-lisp/elpa-src/kivy-mode-0.1.0/kivy-mode /usr/share/emacs/site-lisp/elpa/kotlin-mode-20230123/kotlin-mode-lexer hides /usr/share/emacs/site-lisp/elpa-src/kotlin-mode-20230123/kotlin-mode-lexer /usr/share/emacs/site-lisp/elpa/kotlin-mode-20230123/kotlin-mode-autoloads hides /usr/share/emacs/site-lisp/elpa-src/kotlin-mode-20230123/kotlin-mode-autoloads /usr/share/emacs/site-lisp/elpa/kotlin-mode-20230123/kotlin-mode-pkg hides /usr/share/emacs/site-lisp/elpa-src/kotlin-mode-20230123/kotlin-mode-pkg /usr/share/emacs/site-lisp/elpa/kotlin-mode-20230123/kotlin-mode hides /usr/share/emacs/site-lisp/elpa-src/kotlin-mode-20230123/kotlin-mode /usr/share/emacs/site-lisp/elpa/kotlin-mode-20230123/kotlin-mode-indent hides /usr/share/emacs/site-lisp/elpa-src/kotlin-mode-20230123/kotlin-mode-indent /usr/share/emacs/site-lisp/elpa/language-id-0.20/language-id hides /usr/share/emacs/site-lisp/elpa-src/language-id-0.20/language-id /usr/share/emacs/site-lisp/elpa/language-id-0.20/language-id-pkg hides /usr/share/emacs/site-lisp/elpa-src/language-id-0.20/language-id-pkg /usr/share/emacs/site-lisp/elpa/language-id-0.20/language-id-autoloads hides /usr/share/emacs/site-lisp/elpa-src/language-id-0.20/language-id-autoloads /usr/share/emacs/site-lisp/elpa/let-alist-1.0.6/let-alist hides /usr/share/emacs/site-lisp/elpa-src/let-alist-1.0.6/let-alist /usr/share/emacs/site-lisp/elpa/let-alist-1.0.6/let-alist-pkg hides /usr/share/emacs/site-lisp/elpa-src/let-alist-1.0.6/let-alist-pkg /usr/share/emacs/site-lisp/elpa/let-alist-1.0.6/let-alist-autoloads hides /usr/share/emacs/site-lisp/elpa-src/let-alist-1.0.6/let-alist-autoloads /usr/share/emacs/site-lisp/elpa/llama-0.6.2/llama-test hides /usr/share/emacs/site-lisp/elpa-src/llama-0.6.2/llama-test /usr/share/emacs/site-lisp/elpa/llama-0.6.2/llama-pkg hides /usr/share/emacs/site-lisp/elpa-src/llama-0.6.2/llama-pkg /usr/share/emacs/site-lisp/elpa/llama-0.6.2/llama-autoloads hides /usr/share/emacs/site-lisp/elpa-src/llama-0.6.2/llama-autoloads /usr/share/emacs/site-lisp/elpa/llama-0.6.2/llama hides /usr/share/emacs/site-lisp/elpa-src/llama-0.6.2/llama /usr/share/emacs/site-lisp/elpa/lua-mode-20221027/init-tryout hides /usr/share/emacs/site-lisp/elpa-src/lua-mode-20221027/init-tryout /usr/share/emacs/site-lisp/elpa/lua-mode-20221027/lua-mode-pkg hides /usr/share/emacs/site-lisp/elpa-src/lua-mode-20221027/lua-mode-pkg /usr/share/emacs/site-lisp/elpa/lua-mode-20221027/lua-mode hides /usr/share/emacs/site-lisp/elpa-src/lua-mode-20221027/lua-mode /usr/share/emacs/site-lisp/elpa/lua-mode-20221027/lua-mode-autoloads hides /usr/share/emacs/site-lisp/elpa-src/lua-mode-20221027/lua-mode-autoloads /usr/share/emacs/site-lisp/elpa/lv-0.15.0/lv-autoloads hides /usr/share/emacs/site-lisp/elpa-src/lv-0.15.0/lv-autoloads /usr/share/emacs/site-lisp/elpa/lv-0.15.0/lv hides /usr/share/emacs/site-lisp/elpa-src/lv-0.15.0/lv /usr/share/emacs/site-lisp/elpa/lv-0.15.0/lv-pkg hides /usr/share/emacs/site-lisp/elpa-src/lv-0.15.0/lv-pkg /usr/share/emacs/site-lisp/elpa/magit-4.3.5/magit-bundle hides /usr/share/emacs/site-lisp/elpa-src/magit-4.3.5/magit-bundle /usr/share/emacs/site-lisp/elpa/magit-4.3.5/magit-fetch hides /usr/share/emacs/site-lisp/elpa-src/magit-4.3.5/magit-fetch /usr/share/emacs/site-lisp/elpa/magit-4.3.5/magit-sparse-checkout hides /usr/share/emacs/site-lisp/elpa-src/magit-4.3.5/magit-sparse-checkout /usr/share/emacs/site-lisp/elpa/magit-4.3.5/magit-autorevert hides /usr/share/emacs/site-lisp/elpa-src/magit-4.3.5/magit-autorevert /usr/share/emacs/site-lisp/elpa/magit-4.3.5/magit-bisect hides /usr/share/emacs/site-lisp/elpa-src/magit-4.3.5/magit-bisect /usr/share/emacs/site-lisp/elpa/magit-4.3.5/magit-status hides /usr/share/emacs/site-lisp/elpa-src/magit-4.3.5/magit-status /usr/share/emacs/site-lisp/elpa/magit-4.3.5/magit-reflog hides /usr/share/emacs/site-lisp/elpa-src/magit-4.3.5/magit-reflog /usr/share/emacs/site-lisp/elpa/magit-4.3.5/magit-pkg hides /usr/share/emacs/site-lisp/elpa-src/magit-4.3.5/magit-pkg /usr/share/emacs/site-lisp/elpa/magit-4.3.5/magit-merge hides /usr/share/emacs/site-lisp/elpa-src/magit-4.3.5/magit-merge /usr/share/emacs/site-lisp/elpa/magit-4.3.5/magit-apply hides /usr/share/emacs/site-lisp/elpa-src/magit-4.3.5/magit-apply /usr/share/emacs/site-lisp/elpa/magit-4.3.5/magit-transient hides /usr/share/emacs/site-lisp/elpa-src/magit-4.3.5/magit-transient /usr/share/emacs/site-lisp/elpa/magit-4.3.5/magit-diff hides /usr/share/emacs/site-lisp/elpa-src/magit-4.3.5/magit-diff /usr/share/emacs/site-lisp/elpa/magit-4.3.5/magit-reset hides /usr/share/emacs/site-lisp/elpa-src/magit-4.3.5/magit-reset /usr/share/emacs/site-lisp/elpa/magit-4.3.5/git-commit hides /usr/share/emacs/site-lisp/elpa-src/magit-4.3.5/git-commit /usr/share/emacs/site-lisp/elpa/magit-4.3.5/magit-git hides /usr/share/emacs/site-lisp/elpa-src/magit-4.3.5/magit-git /usr/share/emacs/site-lisp/elpa/magit-4.3.5/magit-commit hides /usr/share/emacs/site-lisp/elpa-src/magit-4.3.5/magit-commit /usr/share/emacs/site-lisp/elpa/magit-4.3.5/magit-margin hides /usr/share/emacs/site-lisp/elpa-src/magit-4.3.5/magit-margin /usr/share/emacs/site-lisp/elpa/magit-4.3.5/magit-gitignore hides /usr/share/emacs/site-lisp/elpa-src/magit-4.3.5/magit-gitignore /usr/share/emacs/site-lisp/elpa/magit-4.3.5/magit-stash hides /usr/share/emacs/site-lisp/elpa-src/magit-4.3.5/magit-stash /usr/share/emacs/site-lisp/elpa/magit-4.3.5/magit-mode hides /usr/share/emacs/site-lisp/elpa-src/magit-4.3.5/magit-mode /usr/share/emacs/site-lisp/elpa/magit-4.3.5/git-rebase hides /usr/share/emacs/site-lisp/elpa-src/magit-4.3.5/git-rebase /usr/share/emacs/site-lisp/elpa/magit-4.3.5/magit-process hides /usr/share/emacs/site-lisp/elpa-src/magit-4.3.5/magit-process /usr/share/emacs/site-lisp/elpa/magit-4.3.5/magit-repos hides /usr/share/emacs/site-lisp/elpa-src/magit-4.3.5/magit-repos /usr/share/emacs/site-lisp/elpa/magit-4.3.5/magit hides /usr/share/emacs/site-lisp/elpa-src/magit-4.3.5/magit /usr/share/emacs/site-lisp/elpa/magit-4.3.5/magit-worktree hides /usr/share/emacs/site-lisp/elpa-src/magit-4.3.5/magit-worktree /usr/share/emacs/site-lisp/elpa/magit-4.3.5/magit-remote hides /usr/share/emacs/site-lisp/elpa-src/magit-4.3.5/magit-remote /usr/share/emacs/site-lisp/elpa/magit-4.3.5/magit-branch hides /usr/share/emacs/site-lisp/elpa-src/magit-4.3.5/magit-branch /usr/share/emacs/site-lisp/elpa/magit-4.3.5/magit-pull hides /usr/share/emacs/site-lisp/elpa-src/magit-4.3.5/magit-pull /usr/share/emacs/site-lisp/elpa/magit-4.3.5/magit-tag hides /usr/share/emacs/site-lisp/elpa-src/magit-4.3.5/magit-tag /usr/share/emacs/site-lisp/elpa/magit-4.3.5/magit-wip hides /usr/share/emacs/site-lisp/elpa-src/magit-4.3.5/magit-wip /usr/share/emacs/site-lisp/elpa/magit-4.3.5/magit-base hides /usr/share/emacs/site-lisp/elpa-src/magit-4.3.5/magit-base /usr/share/emacs/site-lisp/elpa/magit-4.3.5/magit-notes hides /usr/share/emacs/site-lisp/elpa-src/magit-4.3.5/magit-notes /usr/share/emacs/site-lisp/elpa/magit-4.3.5/magit-sequence hides /usr/share/emacs/site-lisp/elpa-src/magit-4.3.5/magit-sequence /usr/share/emacs/site-lisp/elpa/magit-4.3.5/magit-core hides /usr/share/emacs/site-lisp/elpa-src/magit-4.3.5/magit-core /usr/share/emacs/site-lisp/elpa/magit-4.3.5/magit-clone hides /usr/share/emacs/site-lisp/elpa-src/magit-4.3.5/magit-clone /usr/share/emacs/site-lisp/elpa/magit-4.3.5/magit-patch hides /usr/share/emacs/site-lisp/elpa-src/magit-4.3.5/magit-patch /usr/share/emacs/site-lisp/elpa/magit-4.3.5/magit-autoloads hides /usr/share/emacs/site-lisp/elpa-src/magit-4.3.5/magit-autoloads /usr/share/emacs/site-lisp/elpa/magit-4.3.5/magit-subtree hides /usr/share/emacs/site-lisp/elpa-src/magit-4.3.5/magit-subtree /usr/share/emacs/site-lisp/elpa/magit-4.3.5/magit-log hides /usr/share/emacs/site-lisp/elpa-src/magit-4.3.5/magit-log /usr/share/emacs/site-lisp/elpa/magit-4.3.5/magit-files hides /usr/share/emacs/site-lisp/elpa-src/magit-4.3.5/magit-files /usr/share/emacs/site-lisp/elpa/magit-4.3.5/magit-refs hides /usr/share/emacs/site-lisp/elpa-src/magit-4.3.5/magit-refs /usr/share/emacs/site-lisp/elpa/magit-4.3.5/magit-extras hides /usr/share/emacs/site-lisp/elpa-src/magit-4.3.5/magit-extras /usr/share/emacs/site-lisp/elpa/magit-4.3.5/magit-blame hides /usr/share/emacs/site-lisp/elpa-src/magit-4.3.5/magit-blame /usr/share/emacs/site-lisp/elpa/magit-4.3.5/magit-ediff hides /usr/share/emacs/site-lisp/elpa-src/magit-4.3.5/magit-ediff /usr/share/emacs/site-lisp/elpa/magit-4.3.5/magit-push hides /usr/share/emacs/site-lisp/elpa-src/magit-4.3.5/magit-push /usr/share/emacs/site-lisp/elpa/magit-4.3.5/magit-bookmark hides /usr/share/emacs/site-lisp/elpa-src/magit-4.3.5/magit-bookmark /usr/share/emacs/site-lisp/elpa/magit-4.3.5/magit-submodule hides /usr/share/emacs/site-lisp/elpa-src/magit-4.3.5/magit-submodule /usr/share/emacs/site-lisp/elpa/magit-section-4.3.5/magit-section-pkg hides /usr/share/emacs/site-lisp/elpa-src/magit-section-4.3.5/magit-section-pkg /usr/share/emacs/site-lisp/elpa/magit-section-4.3.5/magit-section-autoloads hides /usr/share/emacs/site-lisp/elpa-src/magit-section-4.3.5/magit-section-autoloads /usr/share/emacs/site-lisp/elpa/magit-section-4.3.5/magit-section hides /usr/share/emacs/site-lisp/elpa-src/magit-section-4.3.5/magit-section /usr/share/emacs/site-lisp/elpa/markdown-mode-2.7/markdown-mode-autoloads hides /usr/share/emacs/site-lisp/elpa-src/markdown-mode-2.7/markdown-mode-autoloads /usr/share/emacs/site-lisp/elpa/markdown-mode-2.7/markdown-mode hides /usr/share/emacs/site-lisp/elpa-src/markdown-mode-2.7/markdown-mode /usr/share/emacs/site-lisp/elpa/markdown-mode-2.7/markdown-mode-pkg hides /usr/share/emacs/site-lisp/elpa-src/markdown-mode-2.7/markdown-mode-pkg /usr/share/emacs/site-lisp/elpa/mastodon-2.0.0/mastodon-iso hides /usr/share/emacs/site-lisp/elpa-src/mastodon-2.0.0/mastodon-iso /usr/share/emacs/site-lisp/elpa/mastodon-2.0.0/mastodon-tl hides /usr/share/emacs/site-lisp/elpa-src/mastodon-2.0.0/mastodon-tl /usr/share/emacs/site-lisp/elpa/mastodon-2.0.0/mastodon-discover hides /usr/share/emacs/site-lisp/elpa-src/mastodon-2.0.0/mastodon-discover /usr/share/emacs/site-lisp/elpa/mastodon-2.0.0/mastodon-pkg hides /usr/share/emacs/site-lisp/elpa-src/mastodon-2.0.0/mastodon-pkg /usr/share/emacs/site-lisp/elpa/mastodon-2.0.0/mastodon-transient hides /usr/share/emacs/site-lisp/elpa-src/mastodon-2.0.0/mastodon-transient /usr/share/emacs/site-lisp/elpa/mastodon-2.0.0/mastodon-search hides /usr/share/emacs/site-lisp/elpa-src/mastodon-2.0.0/mastodon-search /usr/share/emacs/site-lisp/elpa/mastodon-2.0.0/mastodon-client hides /usr/share/emacs/site-lisp/elpa-src/mastodon-2.0.0/mastodon-client /usr/share/emacs/site-lisp/elpa/mastodon-2.0.0/mastodon-auth hides /usr/share/emacs/site-lisp/elpa-src/mastodon-2.0.0/mastodon-auth /usr/share/emacs/site-lisp/elpa/mastodon-2.0.0/mastodon-http hides /usr/share/emacs/site-lisp/elpa-src/mastodon-2.0.0/mastodon-http /usr/share/emacs/site-lisp/elpa/mastodon-2.0.0/mastodon hides /usr/share/emacs/site-lisp/elpa-src/mastodon-2.0.0/mastodon /usr/share/emacs/site-lisp/elpa/mastodon-2.0.0/mastodon-toot hides /usr/share/emacs/site-lisp/elpa-src/mastodon-2.0.0/mastodon-toot /usr/share/emacs/site-lisp/elpa/mastodon-2.0.0/mastodon-media hides /usr/share/emacs/site-lisp/elpa-src/mastodon-2.0.0/mastodon-media /usr/share/emacs/site-lisp/elpa/mastodon-2.0.0/mastodon-views hides /usr/share/emacs/site-lisp/elpa-src/mastodon-2.0.0/mastodon-views /usr/share/emacs/site-lisp/elpa/mastodon-2.0.0/mastodon-profile hides /usr/share/emacs/site-lisp/elpa-src/mastodon-2.0.0/mastodon-profile /usr/share/emacs/site-lisp/elpa/mastodon-2.0.0/mastodon-widget hides /usr/share/emacs/site-lisp/elpa-src/mastodon-2.0.0/mastodon-widget /usr/share/emacs/site-lisp/elpa/mastodon-2.0.0/mastodon-autoloads hides /usr/share/emacs/site-lisp/elpa-src/mastodon-2.0.0/mastodon-autoloads /usr/share/emacs/site-lisp/elpa/mastodon-2.0.0/mastodon-inspect hides /usr/share/emacs/site-lisp/elpa-src/mastodon-2.0.0/mastodon-inspect /usr/share/emacs/site-lisp/elpa/mastodon-2.0.0/mastodon-notifications hides /usr/share/emacs/site-lisp/elpa-src/mastodon-2.0.0/mastodon-notifications /usr/share/emacs/site-lisp/elpa/mastodon-2.0.0/mastodon-async hides /usr/share/emacs/site-lisp/elpa-src/mastodon-2.0.0/mastodon-async /usr/share/emacs/site-lisp/elpa/matlab-mode-6.3/semantic-matlab hides /usr/share/emacs/site-lisp/elpa-src/matlab-mode-6.3/semantic-matlab /usr/share/emacs/site-lisp/elpa/matlab-mode-6.3/matlab-org hides /usr/share/emacs/site-lisp/elpa-src/matlab-mode-6.3/matlab-org /usr/share/emacs/site-lisp/elpa/matlab-mode-6.3/matlab-netshell hides /usr/share/emacs/site-lisp/elpa-src/matlab-mode-6.3/matlab-netshell /usr/share/emacs/site-lisp/elpa/matlab-mode-6.3/matlab-cgen hides /usr/share/emacs/site-lisp/elpa-src/matlab-mode-6.3/matlab-cgen /usr/share/emacs/site-lisp/elpa/matlab-mode-6.3/company-matlab-shell hides /usr/share/emacs/site-lisp/elpa-src/matlab-mode-6.3/company-matlab-shell /usr/share/emacs/site-lisp/elpa/matlab-mode-6.3/tlc hides /usr/share/emacs/site-lisp/elpa-src/matlab-mode-6.3/tlc /usr/share/emacs/site-lisp/elpa/matlab-mode-6.3/matlab-scan hides /usr/share/emacs/site-lisp/elpa-src/matlab-mode-6.3/matlab-scan /usr/share/emacs/site-lisp/elpa/matlab-mode-6.3/matlab hides /usr/share/emacs/site-lisp/elpa-src/matlab-mode-6.3/matlab /usr/share/emacs/site-lisp/elpa/matlab-mode-6.3/matlab-shell hides /usr/share/emacs/site-lisp/elpa-src/matlab-mode-6.3/matlab-shell /usr/share/emacs/site-lisp/elpa/matlab-mode-6.3/matlab-mode-autoloads hides /usr/share/emacs/site-lisp/elpa-src/matlab-mode-6.3/matlab-mode-autoloads /usr/share/emacs/site-lisp/elpa/matlab-mode-6.3/mlgud hides /usr/share/emacs/site-lisp/elpa-src/matlab-mode-6.3/mlgud /usr/share/emacs/site-lisp/elpa/matlab-mode-6.3/matlab-shell-gud hides /usr/share/emacs/site-lisp/elpa-src/matlab-mode-6.3/matlab-shell-gud /usr/share/emacs/site-lisp/elpa/matlab-mode-6.3/matlab-mode-pkg hides /usr/share/emacs/site-lisp/elpa-src/matlab-mode-6.3/matlab-mode-pkg /usr/share/emacs/site-lisp/elpa/matlab-mode-6.3/matlab-compat hides /usr/share/emacs/site-lisp/elpa-src/matlab-mode-6.3/matlab-compat /usr/share/emacs/site-lisp/elpa/matlab-mode-6.3/matlab-topic hides /usr/share/emacs/site-lisp/elpa-src/matlab-mode-6.3/matlab-topic /usr/share/emacs/site-lisp/elpa/matlab-mode-6.3/mlint hides /usr/share/emacs/site-lisp/elpa-src/matlab-mode-6.3/mlint /usr/share/emacs/site-lisp/elpa/matlab-mode-6.3/matlab-ccount hides /usr/share/emacs/site-lisp/elpa-src/matlab-mode-6.3/matlab-ccount /usr/share/emacs/site-lisp/elpa/matlab-mode-6.3/matlab-complete hides /usr/share/emacs/site-lisp/elpa-src/matlab-mode-6.3/matlab-complete /usr/share/emacs/site-lisp/elpa/matlab-mode-6.3/matlab-mode hides /usr/share/emacs/site-lisp/elpa-src/matlab-mode-6.3/matlab-mode /usr/share/emacs/site-lisp/elpa/matlab-mode-6.3/matlab-syntax hides /usr/share/emacs/site-lisp/elpa-src/matlab-mode-6.3/matlab-syntax /usr/share/emacs/site-lisp/elpa/matlab-mode-6.3/semanticdb-matlab hides /usr/share/emacs/site-lisp/elpa-src/matlab-mode-6.3/semanticdb-matlab /usr/share/emacs/site-lisp/elpa/matlab-mode-6.3/matlab-sections hides /usr/share/emacs/site-lisp/elpa-src/matlab-mode-6.3/matlab-sections /usr/share/emacs/site-lisp/elpa/matlab-mode-6.3/linemark hides /usr/share/emacs/site-lisp/elpa-src/matlab-mode-6.3/linemark /usr/share/emacs/site-lisp/elpa/meson-mode-0.2/meson-mode hides /usr/share/emacs/site-lisp/elpa-src/meson-mode-0.2/meson-mode /usr/share/emacs/site-lisp/elpa/meson-mode-0.2/meson-mode-pkg hides /usr/share/emacs/site-lisp/elpa-src/meson-mode-0.2/meson-mode-pkg /usr/share/emacs/site-lisp/elpa/meson-mode-0.2/utils hides /usr/share/emacs/site-lisp/elpa-src/meson-mode-0.2/utils /usr/share/emacs/site-lisp/elpa/meson-mode-0.2/meson-mode-autoloads hides /usr/share/emacs/site-lisp/elpa-src/meson-mode-0.2/meson-mode-autoloads /usr/share/emacs/site-lisp/elpa/mutt-alias-1.4/mutt-alias hides /usr/share/emacs/site-lisp/elpa-src/mutt-alias-1.4/mutt-alias /usr/share/emacs/site-lisp/elpa/mutt-alias-1.4/mutt-alias-autoloads hides /usr/share/emacs/site-lisp/elpa-src/mutt-alias-1.4/mutt-alias-autoloads /usr/share/emacs/site-lisp/elpa/mutt-alias-1.4/mutt-alias-pkg hides /usr/share/emacs/site-lisp/elpa-src/mutt-alias-1.4/mutt-alias-pkg /usr/share/emacs/site-lisp/elpa/muttrc-mode-1.2.1/muttrc-mode-pkg hides /usr/share/emacs/site-lisp/elpa-src/muttrc-mode-1.2.1/muttrc-mode-pkg /usr/share/emacs/site-lisp/elpa/muttrc-mode-1.2.1/muttrc-mode-autoloads hides /usr/share/emacs/site-lisp/elpa-src/muttrc-mode-1.2.1/muttrc-mode-autoloads /usr/share/emacs/site-lisp/elpa/muttrc-mode-1.2.1/muttrc-mode hides /usr/share/emacs/site-lisp/elpa-src/muttrc-mode-1.2.1/muttrc-mode /usr/share/emacs/site-lisp/elpa/nginx-mode-1.1.10/nginx-mode-pkg hides /usr/share/emacs/site-lisp/elpa-src/nginx-mode-1.1.10/nginx-mode-pkg /usr/share/emacs/site-lisp/elpa/nginx-mode-1.1.10/nginx-mode-autoloads hides /usr/share/emacs/site-lisp/elpa-src/nginx-mode-1.1.10/nginx-mode-autoloads /usr/share/emacs/site-lisp/elpa/nginx-mode-1.1.10/nginx-mode hides /usr/share/emacs/site-lisp/elpa-src/nginx-mode-1.1.10/nginx-mode /usr/share/emacs/site-lisp/elpa/notmuch-0.39/notmuch-draft hides /usr/share/emacs/site-lisp/elpa-src/notmuch-0.39/notmuch-draft /usr/share/emacs/site-lisp/elpa/notmuch-0.39/notmuch-compat hides /usr/share/emacs/site-lisp/elpa-src/notmuch-0.39/notmuch-compat /usr/share/emacs/site-lisp/elpa/notmuch-0.39/notmuch-parser hides /usr/share/emacs/site-lisp/elpa-src/notmuch-0.39/notmuch-parser /usr/share/emacs/site-lisp/elpa/notmuch-0.39/notmuch-hello hides /usr/share/emacs/site-lisp/elpa-src/notmuch-0.39/notmuch-hello /usr/share/emacs/site-lisp/elpa/notmuch-0.39/notmuch-crypto hides /usr/share/emacs/site-lisp/elpa-src/notmuch-0.39/notmuch-crypto /usr/share/emacs/site-lisp/elpa/notmuch-0.39/notmuch-print hides /usr/share/emacs/site-lisp/elpa-src/notmuch-0.39/notmuch-print /usr/share/emacs/site-lisp/elpa/notmuch-0.39/notmuch-mua hides /usr/share/emacs/site-lisp/elpa-src/notmuch-0.39/notmuch-mua /usr/share/emacs/site-lisp/elpa/notmuch-0.39/notmuch-wash hides /usr/share/emacs/site-lisp/elpa-src/notmuch-0.39/notmuch-wash /usr/share/emacs/site-lisp/elpa/notmuch-0.39/notmuch-tag hides /usr/share/emacs/site-lisp/elpa-src/notmuch-0.39/notmuch-tag /usr/share/emacs/site-lisp/elpa/notmuch-0.39/notmuch-autoloads hides /usr/share/emacs/site-lisp/elpa-src/notmuch-0.39/notmuch-autoloads /usr/share/emacs/site-lisp/elpa/notmuch-0.39/coolj hides /usr/share/emacs/site-lisp/elpa-src/notmuch-0.39/coolj /usr/share/emacs/site-lisp/elpa/notmuch-0.39/notmuch-address hides /usr/share/emacs/site-lisp/elpa-src/notmuch-0.39/notmuch-address /usr/share/emacs/site-lisp/elpa/notmuch-0.39/notmuch-maildir-fcc hides /usr/share/emacs/site-lisp/elpa-src/notmuch-0.39/notmuch-maildir-fcc /usr/share/emacs/site-lisp/elpa/notmuch-0.39/notmuch-lib hides /usr/share/emacs/site-lisp/elpa-src/notmuch-0.39/notmuch-lib /usr/share/emacs/site-lisp/elpa/notmuch-0.39/notmuch-message hides /usr/share/emacs/site-lisp/elpa-src/notmuch-0.39/notmuch-message /usr/share/emacs/site-lisp/elpa/notmuch-0.39/notmuch-tree hides /usr/share/emacs/site-lisp/elpa-src/notmuch-0.39/notmuch-tree /usr/share/emacs/site-lisp/elpa/notmuch-0.39/notmuch-show hides /usr/share/emacs/site-lisp/elpa-src/notmuch-0.39/notmuch-show /usr/share/emacs/site-lisp/elpa/notmuch-0.39/notmuch-pkg hides /usr/share/emacs/site-lisp/elpa-src/notmuch-0.39/notmuch-pkg /usr/share/emacs/site-lisp/elpa/notmuch-0.39/notmuch-version hides /usr/share/emacs/site-lisp/elpa-src/notmuch-0.39/notmuch-version /usr/share/emacs/site-lisp/elpa/notmuch-0.39/notmuch-jump hides /usr/share/emacs/site-lisp/elpa-src/notmuch-0.39/notmuch-jump /usr/share/emacs/site-lisp/elpa/notmuch-0.39/notmuch hides /usr/share/emacs/site-lisp/elpa-src/notmuch-0.39/notmuch /usr/share/emacs/site-lisp/elpa/notmuch-0.39/notmuch-query hides /usr/share/emacs/site-lisp/elpa-src/notmuch-0.39/notmuch-query /usr/share/emacs/site-lisp/elpa/notmuch-0.39/notmuch-company hides /usr/share/emacs/site-lisp/elpa-src/notmuch-0.39/notmuch-company /usr/share/emacs/site-lisp/elpa/oauth2-0.17/oauth2-autoloads hides /usr/share/emacs/site-lisp/elpa-src/oauth2-0.17/oauth2-autoloads /usr/share/emacs/site-lisp/elpa/oauth2-0.17/oauth2-pkg hides /usr/share/emacs/site-lisp/elpa-src/oauth2-0.17/oauth2-pkg /usr/share/emacs/site-lisp/elpa/oauth2-0.17/oauth2 hides /usr/share/emacs/site-lisp/elpa-src/oauth2-0.17/oauth2 /usr/share/emacs/site-lisp/elpa/ol-notmuch-2.1.0/ol-notmuch-autoloads hides /usr/share/emacs/site-lisp/elpa-src/ol-notmuch-2.1.0/ol-notmuch-autoloads /usr/share/emacs/site-lisp/elpa/ol-notmuch-2.1.0/ol-notmuch hides /usr/share/emacs/site-lisp/elpa-src/ol-notmuch-2.1.0/ol-notmuch /usr/share/emacs/site-lisp/elpa/ol-notmuch-2.1.0/ol-notmuch-pkg hides /usr/share/emacs/site-lisp/elpa-src/ol-notmuch-2.1.0/ol-notmuch-pkg /usr/share/emacs/site-lisp/elpa/olivetti-2.0.7/olivetti-pkg hides /usr/share/emacs/site-lisp/elpa-src/olivetti-2.0.7/olivetti-pkg /usr/share/emacs/site-lisp/elpa/olivetti-2.0.7/olivetti-autoloads hides /usr/share/emacs/site-lisp/elpa-src/olivetti-2.0.7/olivetti-autoloads /usr/share/emacs/site-lisp/elpa/olivetti-2.0.7/olivetti hides /usr/share/emacs/site-lisp/elpa-src/olivetti-2.0.7/olivetti /usr/share/emacs/site-lisp/elpa/org-9.7.29/ob-fortran hides /usr/share/emacs/site-lisp/elpa-src/org-9.7.29/ob-fortran /usr/share/emacs/site-lisp/elpa/org-9.7.29/org-plot hides /usr/share/emacs/site-lisp/elpa-src/org-9.7.29/org-plot /usr/share/emacs/site-lisp/elpa/org-9.7.29/ob-eval hides /usr/share/emacs/site-lisp/elpa-src/org-9.7.29/ob-eval /usr/share/emacs/site-lisp/elpa/org-9.7.29/ob-comint hides /usr/share/emacs/site-lisp/elpa-src/org-9.7.29/ob-comint /usr/share/emacs/site-lisp/elpa/org-9.7.29/org-tempo hides /usr/share/emacs/site-lisp/elpa-src/org-9.7.29/org-tempo /usr/share/emacs/site-lisp/elpa/org-9.7.29/ob-python hides /usr/share/emacs/site-lisp/elpa-src/org-9.7.29/ob-python /usr/share/emacs/site-lisp/elpa/org-9.7.29/ox-man hides /usr/share/emacs/site-lisp/elpa-src/org-9.7.29/ox-man /usr/share/emacs/site-lisp/elpa/org-9.7.29/ox-org hides /usr/share/emacs/site-lisp/elpa-src/org-9.7.29/ox-org /usr/share/emacs/site-lisp/elpa/org-9.7.29/ob-lisp hides /usr/share/emacs/site-lisp/elpa-src/org-9.7.29/ob-lisp /usr/share/emacs/site-lisp/elpa/org-9.7.29/org-mouse hides /usr/share/emacs/site-lisp/elpa-src/org-9.7.29/org-mouse /usr/share/emacs/site-lisp/elpa/org-9.7.29/ob-ditaa hides /usr/share/emacs/site-lisp/elpa-src/org-9.7.29/ob-ditaa /usr/share/emacs/site-lisp/elpa/org-9.7.29/ob-clojure hides /usr/share/emacs/site-lisp/elpa-src/org-9.7.29/ob-clojure /usr/share/emacs/site-lisp/elpa/org-9.7.29/oc-csl hides /usr/share/emacs/site-lisp/elpa-src/org-9.7.29/oc-csl /usr/share/emacs/site-lisp/elpa/org-9.7.29/ol-doi hides /usr/share/emacs/site-lisp/elpa-src/org-9.7.29/ol-doi /usr/share/emacs/site-lisp/elpa/org-9.7.29/org-pkg hides /usr/share/emacs/site-lisp/elpa-src/org-9.7.29/org-pkg /usr/share/emacs/site-lisp/elpa/org-9.7.29/ob-lob hides /usr/share/emacs/site-lisp/elpa-src/org-9.7.29/ob-lob /usr/share/emacs/site-lisp/elpa/org-9.7.29/org-autoloads hides /usr/share/emacs/site-lisp/elpa-src/org-9.7.29/org-autoloads /usr/share/emacs/site-lisp/elpa/org-9.7.29/ob-emacs-lisp hides /usr/share/emacs/site-lisp/elpa-src/org-9.7.29/ob-emacs-lisp /usr/share/emacs/site-lisp/elpa/org-9.7.29/org-footnote hides /usr/share/emacs/site-lisp/elpa-src/org-9.7.29/org-footnote /usr/share/emacs/site-lisp/elpa/org-9.7.29/org-persist hides /usr/share/emacs/site-lisp/elpa-src/org-9.7.29/org-persist /usr/share/emacs/site-lisp/elpa/org-9.7.29/org-pcomplete hides /usr/share/emacs/site-lisp/elpa-src/org-9.7.29/org-pcomplete /usr/share/emacs/site-lisp/elpa/org-9.7.29/ob-scheme hides /usr/share/emacs/site-lisp/elpa-src/org-9.7.29/ob-scheme /usr/share/emacs/site-lisp/elpa/org-9.7.29/ob-haskell hides /usr/share/emacs/site-lisp/elpa-src/org-9.7.29/ob-haskell /usr/share/emacs/site-lisp/elpa/org-9.7.29/ob-calc hides /usr/share/emacs/site-lisp/elpa-src/org-9.7.29/ob-calc /usr/share/emacs/site-lisp/elpa/org-9.7.29/ob-js hides /usr/share/emacs/site-lisp/elpa-src/org-9.7.29/ob-js /usr/share/emacs/site-lisp/elpa/org-9.7.29/org-timer hides /usr/share/emacs/site-lisp/elpa-src/org-9.7.29/org-timer /usr/share/emacs/site-lisp/elpa/org-9.7.29/ob-shell hides /usr/share/emacs/site-lisp/elpa-src/org-9.7.29/ob-shell /usr/share/emacs/site-lisp/elpa/org-9.7.29/ol-w3m hides /usr/share/emacs/site-lisp/elpa-src/org-9.7.29/ol-w3m /usr/share/emacs/site-lisp/elpa/org-9.7.29/org-version hides /usr/share/emacs/site-lisp/elpa-src/org-9.7.29/org-version /usr/share/emacs/site-lisp/elpa/org-9.7.29/ob-lua hides /usr/share/emacs/site-lisp/elpa-src/org-9.7.29/ob-lua /usr/share/emacs/site-lisp/elpa/org-9.7.29/ox-html hides /usr/share/emacs/site-lisp/elpa-src/org-9.7.29/ox-html /usr/share/emacs/site-lisp/elpa/org-9.7.29/ob-gnuplot hides /usr/share/emacs/site-lisp/elpa-src/org-9.7.29/ob-gnuplot /usr/share/emacs/site-lisp/elpa/org-9.7.29/ol-irc hides /usr/share/emacs/site-lisp/elpa-src/org-9.7.29/ol-irc /usr/share/emacs/site-lisp/elpa/org-9.7.29/ob-julia hides /usr/share/emacs/site-lisp/elpa-src/org-9.7.29/ob-julia /usr/share/emacs/site-lisp/elpa/org-9.7.29/oc hides /usr/share/emacs/site-lisp/elpa-src/org-9.7.29/oc /usr/share/emacs/site-lisp/elpa/org-9.7.29/org-attach-git hides /usr/share/emacs/site-lisp/elpa-src/org-9.7.29/org-attach-git /usr/share/emacs/site-lisp/elpa/org-9.7.29/org-goto hides /usr/share/emacs/site-lisp/elpa-src/org-9.7.29/org-goto /usr/share/emacs/site-lisp/elpa/org-9.7.29/ox-beamer hides /usr/share/emacs/site-lisp/elpa-src/org-9.7.29/ox-beamer /usr/share/emacs/site-lisp/elpa/org-9.7.29/ob-sqlite hides /usr/share/emacs/site-lisp/elpa-src/org-9.7.29/ob-sqlite /usr/share/emacs/site-lisp/elpa/org-9.7.29/ox-latex hides /usr/share/emacs/site-lisp/elpa-src/org-9.7.29/ox-latex /usr/share/emacs/site-lisp/elpa/org-9.7.29/org-loaddefs hides /usr/share/emacs/site-lisp/elpa-src/org-9.7.29/org-loaddefs /usr/share/emacs/site-lisp/elpa/org-9.7.29/ol-bbdb hides /usr/share/emacs/site-lisp/elpa-src/org-9.7.29/ol-bbdb /usr/share/emacs/site-lisp/elpa/org-9.7.29/org-compat hides /usr/share/emacs/site-lisp/elpa-src/org-9.7.29/org-compat /usr/share/emacs/site-lisp/elpa/org-9.7.29/org-refile hides /usr/share/emacs/site-lisp/elpa-src/org-9.7.29/org-refile /usr/share/emacs/site-lisp/elpa/org-9.7.29/ob-sed hides /usr/share/emacs/site-lisp/elpa-src/org-9.7.29/ob-sed /usr/share/emacs/site-lisp/elpa/org-9.7.29/ob-css hides /usr/share/emacs/site-lisp/elpa-src/org-9.7.29/ob-css /usr/share/emacs/site-lisp/elpa/org-9.7.29/org-clock hides /usr/share/emacs/site-lisp/elpa-src/org-9.7.29/org-clock /usr/share/emacs/site-lisp/elpa/org-9.7.29/ob-java hides /usr/share/emacs/site-lisp/elpa-src/org-9.7.29/ob-java /usr/share/emacs/site-lisp/elpa/org-9.7.29/org-src hides /usr/share/emacs/site-lisp/elpa-src/org-9.7.29/org-src /usr/share/emacs/site-lisp/elpa/org-9.7.29/org-element hides /usr/share/emacs/site-lisp/elpa-src/org-9.7.29/org-element /usr/share/emacs/site-lisp/elpa/org-9.7.29/ox-odt hides /usr/share/emacs/site-lisp/elpa-src/org-9.7.29/ox-odt /usr/share/emacs/site-lisp/elpa/org-9.7.29/org-keys hides /usr/share/emacs/site-lisp/elpa-src/org-9.7.29/org-keys /usr/share/emacs/site-lisp/elpa/org-9.7.29/ob-exp hides /usr/share/emacs/site-lisp/elpa-src/org-9.7.29/ob-exp /usr/share/emacs/site-lisp/elpa/org-9.7.29/org-id hides /usr/share/emacs/site-lisp/elpa-src/org-9.7.29/org-id /usr/share/emacs/site-lisp/elpa/org-9.7.29/org-fold-core hides /usr/share/emacs/site-lisp/elpa-src/org-9.7.29/org-fold-core /usr/share/emacs/site-lisp/elpa/org-9.7.29/ol-docview hides /usr/share/emacs/site-lisp/elpa-src/org-9.7.29/ol-docview /usr/share/emacs/site-lisp/elpa/org-9.7.29/ob-maxima hides /usr/share/emacs/site-lisp/elpa-src/org-9.7.29/ob-maxima /usr/share/emacs/site-lisp/elpa/org-9.7.29/org-table hides /usr/share/emacs/site-lisp/elpa-src/org-9.7.29/org-table /usr/share/emacs/site-lisp/elpa/org-9.7.29/org-protocol hides /usr/share/emacs/site-lisp/elpa-src/org-9.7.29/org-protocol /usr/share/emacs/site-lisp/elpa/org-9.7.29/oc-basic hides /usr/share/emacs/site-lisp/elpa-src/org-9.7.29/oc-basic /usr/share/emacs/site-lisp/elpa/org-9.7.29/ob-tangle hides /usr/share/emacs/site-lisp/elpa-src/org-9.7.29/ob-tangle /usr/share/emacs/site-lisp/elpa/org-9.7.29/org-element-ast hides /usr/share/emacs/site-lisp/elpa-src/org-9.7.29/org-element-ast /usr/share/emacs/site-lisp/elpa/org-9.7.29/org-macro hides /usr/share/emacs/site-lisp/elpa-src/org-9.7.29/org-macro /usr/share/emacs/site-lisp/elpa/org-9.7.29/org-macs hides /usr/share/emacs/site-lisp/elpa-src/org-9.7.29/org-macs /usr/share/emacs/site-lisp/elpa/org-9.7.29/ob-C hides /usr/share/emacs/site-lisp/elpa-src/org-9.7.29/ob-C /usr/share/emacs/site-lisp/elpa/org-9.7.29/ol-bibtex hides /usr/share/emacs/site-lisp/elpa-src/org-9.7.29/ol-bibtex /usr/share/emacs/site-lisp/elpa/org-9.7.29/org-cycle hides /usr/share/emacs/site-lisp/elpa-src/org-9.7.29/org-cycle /usr/share/emacs/site-lisp/elpa/org-9.7.29/org-capture hides /usr/share/emacs/site-lisp/elpa-src/org-9.7.29/org-capture /usr/share/emacs/site-lisp/elpa/org-9.7.29/ol-rmail hides /usr/share/emacs/site-lisp/elpa-src/org-9.7.29/ol-rmail /usr/share/emacs/site-lisp/elpa/org-9.7.29/ox-koma-letter hides /usr/share/emacs/site-lisp/elpa-src/org-9.7.29/ox-koma-letter /usr/share/emacs/site-lisp/elpa/org-9.7.29/ol-eshell hides /usr/share/emacs/site-lisp/elpa-src/org-9.7.29/ol-eshell /usr/share/emacs/site-lisp/elpa/org-9.7.29/org-agenda hides /usr/share/emacs/site-lisp/elpa-src/org-9.7.29/org-agenda /usr/share/emacs/site-lisp/elpa/org-9.7.29/ob-forth hides /usr/share/emacs/site-lisp/elpa-src/org-9.7.29/ob-forth /usr/share/emacs/site-lisp/elpa/org-9.7.29/ol-eww hides /usr/share/emacs/site-lisp/elpa-src/org-9.7.29/ol-eww /usr/share/emacs/site-lisp/elpa/org-9.7.29/org-inlinetask hides /usr/share/emacs/site-lisp/elpa-src/org-9.7.29/org-inlinetask /usr/share/emacs/site-lisp/elpa/org-9.7.29/ob-latex hides /usr/share/emacs/site-lisp/elpa-src/org-9.7.29/ob-latex /usr/share/emacs/site-lisp/elpa/org-9.7.29/ol hides /usr/share/emacs/site-lisp/elpa-src/org-9.7.29/ol /usr/share/emacs/site-lisp/elpa/org-9.7.29/org-mobile hides /usr/share/emacs/site-lisp/elpa-src/org-9.7.29/org-mobile /usr/share/emacs/site-lisp/elpa/org-9.7.29/ob-lilypond hides /usr/share/emacs/site-lisp/elpa-src/org-9.7.29/ob-lilypond /usr/share/emacs/site-lisp/elpa/org-9.7.29/ob-screen hides /usr/share/emacs/site-lisp/elpa-src/org-9.7.29/ob-screen /usr/share/emacs/site-lisp/elpa/org-9.7.29/org-fold hides /usr/share/emacs/site-lisp/elpa-src/org-9.7.29/org-fold /usr/share/emacs/site-lisp/elpa/org-9.7.29/ox-ascii hides /usr/share/emacs/site-lisp/elpa-src/org-9.7.29/ox-ascii /usr/share/emacs/site-lisp/elpa/org-9.7.29/org-datetree hides /usr/share/emacs/site-lisp/elpa-src/org-9.7.29/org-datetree /usr/share/emacs/site-lisp/elpa/org-9.7.29/org-faces hides /usr/share/emacs/site-lisp/elpa-src/org-9.7.29/org-faces /usr/share/emacs/site-lisp/elpa/org-9.7.29/ol-gnus hides /usr/share/emacs/site-lisp/elpa-src/org-9.7.29/ol-gnus /usr/share/emacs/site-lisp/elpa/org-9.7.29/ob-R hides /usr/share/emacs/site-lisp/elpa-src/org-9.7.29/ob-R /usr/share/emacs/site-lisp/elpa/org-9.7.29/ob-matlab hides /usr/share/emacs/site-lisp/elpa-src/org-9.7.29/ob-matlab /usr/share/emacs/site-lisp/elpa/org-9.7.29/ob-awk hides /usr/share/emacs/site-lisp/elpa-src/org-9.7.29/ob-awk /usr/share/emacs/site-lisp/elpa/org-9.7.29/ol-info hides /usr/share/emacs/site-lisp/elpa-src/org-9.7.29/ol-info /usr/share/emacs/site-lisp/elpa/org-9.7.29/org-duration hides /usr/share/emacs/site-lisp/elpa-src/org-9.7.29/org-duration /usr/share/emacs/site-lisp/elpa/org-9.7.29/org-crypt hides /usr/share/emacs/site-lisp/elpa-src/org-9.7.29/org-crypt /usr/share/emacs/site-lisp/elpa/org-9.7.29/ox-texinfo hides /usr/share/emacs/site-lisp/elpa-src/org-9.7.29/ox-texinfo /usr/share/emacs/site-lisp/elpa/org-9.7.29/ob-perl hides /usr/share/emacs/site-lisp/elpa-src/org-9.7.29/ob-perl /usr/share/emacs/site-lisp/elpa/org-9.7.29/ob-plantuml hides /usr/share/emacs/site-lisp/elpa-src/org-9.7.29/ob-plantuml /usr/share/emacs/site-lisp/elpa/org-9.7.29/ox hides /usr/share/emacs/site-lisp/elpa-src/org-9.7.29/ox /usr/share/emacs/site-lisp/elpa/org-9.7.29/org-list hides /usr/share/emacs/site-lisp/elpa-src/org-9.7.29/org-list /usr/share/emacs/site-lisp/elpa/org-9.7.29/org-attach hides /usr/share/emacs/site-lisp/elpa-src/org-9.7.29/org-attach /usr/share/emacs/site-lisp/elpa/org-9.7.29/ob-octave hides /usr/share/emacs/site-lisp/elpa-src/org-9.7.29/ob-octave /usr/share/emacs/site-lisp/elpa/org-9.7.29/ol-mhe hides /usr/share/emacs/site-lisp/elpa-src/org-9.7.29/ol-mhe /usr/share/emacs/site-lisp/elpa/org-9.7.29/org-lint hides /usr/share/emacs/site-lisp/elpa-src/org-9.7.29/org-lint /usr/share/emacs/site-lisp/elpa/org-9.7.29/ob-core hides /usr/share/emacs/site-lisp/elpa-src/org-9.7.29/ob-core /usr/share/emacs/site-lisp/elpa/org-9.7.29/ob-ruby hides /usr/share/emacs/site-lisp/elpa-src/org-9.7.29/ob-ruby /usr/share/emacs/site-lisp/elpa/org-9.7.29/ob-dot hides /usr/share/emacs/site-lisp/elpa-src/org-9.7.29/ob-dot /usr/share/emacs/site-lisp/elpa/org-9.7.29/org-feed hides /usr/share/emacs/site-lisp/elpa-src/org-9.7.29/org-feed /usr/share/emacs/site-lisp/elpa/org-9.7.29/ob-processing hides /usr/share/emacs/site-lisp/elpa-src/org-9.7.29/ob-processing /usr/share/emacs/site-lisp/elpa/org-9.7.29/ob hides /usr/share/emacs/site-lisp/elpa-src/org-9.7.29/ob /usr/share/emacs/site-lisp/elpa/org-9.7.29/ob-eshell hides /usr/share/emacs/site-lisp/elpa-src/org-9.7.29/ob-eshell /usr/share/emacs/site-lisp/elpa/org-9.7.29/org-habit hides /usr/share/emacs/site-lisp/elpa-src/org-9.7.29/org-habit /usr/share/emacs/site-lisp/elpa/org-9.7.29/ox-md hides /usr/share/emacs/site-lisp/elpa-src/org-9.7.29/ox-md /usr/share/emacs/site-lisp/elpa/org-9.7.29/ob-ref hides /usr/share/emacs/site-lisp/elpa-src/org-9.7.29/ob-ref /usr/share/emacs/site-lisp/elpa/org-9.7.29/ob-sass hides /usr/share/emacs/site-lisp/elpa-src/org-9.7.29/ob-sass /usr/share/emacs/site-lisp/elpa/org-9.7.29/ob-org hides /usr/share/emacs/site-lisp/elpa-src/org-9.7.29/ob-org /usr/share/emacs/site-lisp/elpa/org-9.7.29/org hides /usr/share/emacs/site-lisp/elpa-src/org-9.7.29/org /usr/share/emacs/site-lisp/elpa/org-9.7.29/org-indent hides /usr/share/emacs/site-lisp/elpa-src/org-9.7.29/org-indent /usr/share/emacs/site-lisp/elpa/org-9.7.29/org-ctags hides /usr/share/emacs/site-lisp/elpa-src/org-9.7.29/org-ctags /usr/share/emacs/site-lisp/elpa/org-9.7.29/org-entities hides /usr/share/emacs/site-lisp/elpa-src/org-9.7.29/org-entities /usr/share/emacs/site-lisp/elpa/org-9.7.29/ob-makefile hides /usr/share/emacs/site-lisp/elpa-src/org-9.7.29/ob-makefile /usr/share/emacs/site-lisp/elpa/org-9.7.29/ob-ocaml hides /usr/share/emacs/site-lisp/elpa-src/org-9.7.29/ob-ocaml /usr/share/emacs/site-lisp/elpa/org-9.7.29/ol-man hides /usr/share/emacs/site-lisp/elpa-src/org-9.7.29/ol-man /usr/share/emacs/site-lisp/elpa/org-9.7.29/oc-biblatex hides /usr/share/emacs/site-lisp/elpa-src/org-9.7.29/oc-biblatex /usr/share/emacs/site-lisp/elpa/org-9.7.29/org-archive hides /usr/share/emacs/site-lisp/elpa-src/org-9.7.29/org-archive /usr/share/emacs/site-lisp/elpa/org-9.7.29/org-num hides /usr/share/emacs/site-lisp/elpa-src/org-9.7.29/org-num /usr/share/emacs/site-lisp/elpa/org-9.7.29/ob-table hides /usr/share/emacs/site-lisp/elpa-src/org-9.7.29/ob-table /usr/share/emacs/site-lisp/elpa/org-9.7.29/ob-sql hides /usr/share/emacs/site-lisp/elpa-src/org-9.7.29/ob-sql /usr/share/emacs/site-lisp/elpa/org-9.7.29/ox-icalendar hides /usr/share/emacs/site-lisp/elpa-src/org-9.7.29/ox-icalendar /usr/share/emacs/site-lisp/elpa/org-9.7.29/ob-groovy hides /usr/share/emacs/site-lisp/elpa-src/org-9.7.29/ob-groovy /usr/share/emacs/site-lisp/elpa/org-9.7.29/org-colview hides /usr/share/emacs/site-lisp/elpa-src/org-9.7.29/org-colview /usr/share/emacs/site-lisp/elpa/org-9.7.29/oc-natbib hides /usr/share/emacs/site-lisp/elpa-src/org-9.7.29/oc-natbib /usr/share/emacs/site-lisp/elpa/org-9.7.29/oc-bibtex hides /usr/share/emacs/site-lisp/elpa-src/org-9.7.29/oc-bibtex /usr/share/emacs/site-lisp/elpa/org-9.7.29/ox-publish hides /usr/share/emacs/site-lisp/elpa-src/org-9.7.29/ox-publish /usr/share/emacs/site-lisp/elpa/org-drill-2.7.0/org-drill hides /usr/share/emacs/site-lisp/elpa-src/org-drill-2.7.0/org-drill /usr/share/emacs/site-lisp/elpa/org-drill-2.7.0/org-drill-autoloads hides /usr/share/emacs/site-lisp/elpa-src/org-drill-2.7.0/org-drill-autoloads /usr/share/emacs/site-lisp/elpa/org-drill-2.7.0/org-drill-pkg hides /usr/share/emacs/site-lisp/elpa-src/org-drill-2.7.0/org-drill-pkg /usr/share/emacs/site-lisp/elpa/paredit-27beta/paredit-autoloads hides /usr/share/emacs/site-lisp/elpa-src/paredit-27beta/paredit-autoloads /usr/share/emacs/site-lisp/elpa/paredit-27beta/paredit hides /usr/share/emacs/site-lisp/elpa-src/paredit-27beta/paredit /usr/share/emacs/site-lisp/elpa/paredit-27beta/paredit-pkg hides /usr/share/emacs/site-lisp/elpa-src/paredit-27beta/paredit-pkg /usr/share/emacs/site-lisp/elpa/persist-0.6.1/persist-autoloads hides /usr/share/emacs/site-lisp/elpa-src/persist-0.6.1/persist-autoloads /usr/share/emacs/site-lisp/elpa/persist-0.6.1/persist-pkg hides /usr/share/emacs/site-lisp/elpa-src/persist-0.6.1/persist-pkg /usr/share/emacs/site-lisp/elpa/persist-0.6.1/persist hides /usr/share/emacs/site-lisp/elpa-src/persist-0.6.1/persist /usr/share/emacs/site-lisp/elpa/pfuture-1.9/pfuture-pkg hides /usr/share/emacs/site-lisp/elpa-src/pfuture-1.9/pfuture-pkg /usr/share/emacs/site-lisp/elpa/pfuture-1.9/pfuture-autoloads hides /usr/share/emacs/site-lisp/elpa-src/pfuture-1.9/pfuture-autoloads /usr/share/emacs/site-lisp/elpa/pfuture-1.9/pfuture hides /usr/share/emacs/site-lisp/elpa-src/pfuture-1.9/pfuture /usr/share/emacs/site-lisp/elpa/pg-0.53/pg-geometry hides /usr/share/emacs/site-lisp/elpa-src/pg-0.53/pg-geometry /usr/share/emacs/site-lisp/elpa/pg-0.53/pg-bm25 hides /usr/share/emacs/site-lisp/elpa-src/pg-0.53/pg-bm25 /usr/share/emacs/site-lisp/elpa/pg-0.53/pg hides /usr/share/emacs/site-lisp/elpa-src/pg-0.53/pg /usr/share/emacs/site-lisp/elpa/pg-0.53/pg-gis hides /usr/share/emacs/site-lisp/elpa-src/pg-0.53/pg-gis /usr/share/emacs/site-lisp/elpa/pg-0.53/pg-autoloads hides /usr/share/emacs/site-lisp/elpa-src/pg-0.53/pg-autoloads /usr/share/emacs/site-lisp/elpa/pg-0.53/pg-lo hides /usr/share/emacs/site-lisp/elpa-src/pg-0.53/pg-lo /usr/share/emacs/site-lisp/elpa/pg-0.53/pg-pkg hides /usr/share/emacs/site-lisp/elpa-src/pg-0.53/pg-pkg /usr/share/emacs/site-lisp/elpa/php-mode-1.26.1/php-align hides /usr/share/emacs/site-lisp/elpa-src/php-mode-1.26.1/php-align /usr/share/emacs/site-lisp/elpa/php-mode-1.26.1/php-complete hides /usr/share/emacs/site-lisp/elpa-src/php-mode-1.26.1/php-complete /usr/share/emacs/site-lisp/elpa/php-mode-1.26.1/php-face hides /usr/share/emacs/site-lisp/elpa-src/php-mode-1.26.1/php-face /usr/share/emacs/site-lisp/elpa/php-mode-1.26.1/php-mode-debug hides /usr/share/emacs/site-lisp/elpa-src/php-mode-1.26.1/php-mode-debug /usr/share/emacs/site-lisp/elpa/php-mode-1.26.1/php-mode-pkg hides /usr/share/emacs/site-lisp/elpa-src/php-mode-1.26.1/php-mode-pkg /usr/share/emacs/site-lisp/elpa/php-mode-1.26.1/php-local-manual hides /usr/share/emacs/site-lisp/elpa-src/php-mode-1.26.1/php-local-manual /usr/share/emacs/site-lisp/elpa/php-mode-1.26.1/php-ide-phpactor hides /usr/share/emacs/site-lisp/elpa-src/php-mode-1.26.1/php-ide-phpactor /usr/share/emacs/site-lisp/elpa/php-mode-1.26.1/php-mode hides /usr/share/emacs/site-lisp/elpa-src/php-mode-1.26.1/php-mode /usr/share/emacs/site-lisp/elpa/php-mode-1.26.1/php-flymake hides /usr/share/emacs/site-lisp/elpa-src/php-mode-1.26.1/php-flymake /usr/share/emacs/site-lisp/elpa/php-mode-1.26.1/php hides /usr/share/emacs/site-lisp/elpa-src/php-mode-1.26.1/php /usr/share/emacs/site-lisp/elpa/php-mode-1.26.1/php-mode-autoloads hides /usr/share/emacs/site-lisp/elpa-src/php-mode-1.26.1/php-mode-autoloads /usr/share/emacs/site-lisp/elpa/php-mode-1.26.1/php-defs hides /usr/share/emacs/site-lisp/elpa-src/php-mode-1.26.1/php-defs /usr/share/emacs/site-lisp/elpa/php-mode-1.26.1/php-ide hides /usr/share/emacs/site-lisp/elpa-src/php-mode-1.26.1/php-ide /usr/share/emacs/site-lisp/elpa/php-mode-1.26.1/php-format hides /usr/share/emacs/site-lisp/elpa-src/php-mode-1.26.1/php-format /usr/share/emacs/site-lisp/elpa/php-mode-1.26.1/php-project hides /usr/share/emacs/site-lisp/elpa-src/php-mode-1.26.1/php-project /usr/share/emacs/site-lisp/elpa/pip-requirements-0.5/pip-requirements-pkg hides /usr/share/emacs/site-lisp/elpa-src/pip-requirements-0.5/pip-requirements-pkg /usr/share/emacs/site-lisp/elpa/pip-requirements-0.5/pip-requirements-autoloads hides /usr/share/emacs/site-lisp/elpa-src/pip-requirements-0.5/pip-requirements-autoloads /usr/share/emacs/site-lisp/elpa/pip-requirements-0.5/pip-requirements hides /usr/share/emacs/site-lisp/elpa-src/pip-requirements-0.5/pip-requirements /usr/share/emacs/site-lisp/elpa/pkg-info-0.6/pkg-info-pkg hides /usr/share/emacs/site-lisp/elpa-src/pkg-info-0.6/pkg-info-pkg /usr/share/emacs/site-lisp/elpa/pkg-info-0.6/pkg-info-autoloads hides /usr/share/emacs/site-lisp/elpa-src/pkg-info-0.6/pkg-info-autoloads /usr/share/emacs/site-lisp/elpa/pkg-info-0.6/pkg-info hides /usr/share/emacs/site-lisp/elpa-src/pkg-info-0.6/pkg-info /usr/share/emacs/site-lisp/elpa/po-mode-0.23.1/po-mode hides /usr/share/emacs/site-lisp/elpa-src/po-mode-0.23.1/po-mode /usr/share/emacs/site-lisp/elpa/po-mode-0.23.1/po-mode-autoloads hides /usr/share/emacs/site-lisp/elpa-src/po-mode-0.23.1/po-mode-autoloads /usr/share/emacs/site-lisp/elpa/po-mode-0.23.1/po-mode-pkg hides /usr/share/emacs/site-lisp/elpa-src/po-mode-0.23.1/po-mode-pkg /usr/share/emacs/site-lisp/elpa/pod-mode-1.3/pod-mode hides /usr/share/emacs/site-lisp/elpa-src/pod-mode-1.3/pod-mode /usr/share/emacs/site-lisp/elpa/pod-mode-1.3/pod-mode-autoloads hides /usr/share/emacs/site-lisp/elpa-src/pod-mode-1.3/pod-mode-autoloads /usr/share/emacs/site-lisp/elpa/pod-mode-1.3/pod-mode-pkg hides /usr/share/emacs/site-lisp/elpa-src/pod-mode-1.3/pod-mode-pkg /usr/share/emacs/site-lisp/elpa/popon-0.13/popon-pkg hides /usr/share/emacs/site-lisp/elpa-src/popon-0.13/popon-pkg /usr/share/emacs/site-lisp/elpa/popon-0.13/popon hides /usr/share/emacs/site-lisp/elpa-src/popon-0.13/popon /usr/share/emacs/site-lisp/elpa/popon-0.13/popon-autoloads hides /usr/share/emacs/site-lisp/elpa-src/popon-0.13/popon-autoloads /usr/share/emacs/site-lisp/elpa/pos-tip-0.4.6snapshot/pos-tip hides /usr/share/emacs/site-lisp/elpa-src/pos-tip-0.4.6snapshot/pos-tip /usr/share/emacs/site-lisp/elpa/pos-tip-0.4.6snapshot/pos-tip-pkg hides /usr/share/emacs/site-lisp/elpa-src/pos-tip-0.4.6snapshot/pos-tip-pkg /usr/share/emacs/site-lisp/elpa/pos-tip-0.4.6snapshot/pos-tip-autoloads hides /usr/share/emacs/site-lisp/elpa-src/pos-tip-0.4.6snapshot/pos-tip-autoloads /usr/share/emacs/site-lisp/elpa/posframe-1.4.4/posframe-pkg hides /usr/share/emacs/site-lisp/elpa-src/posframe-1.4.4/posframe-pkg /usr/share/emacs/site-lisp/elpa/posframe-1.4.4/posframe-autoloads hides /usr/share/emacs/site-lisp/elpa-src/posframe-1.4.4/posframe-autoloads /usr/share/emacs/site-lisp/elpa/posframe-1.4.4/posframe hides /usr/share/emacs/site-lisp/elpa-src/posframe-1.4.4/posframe /usr/share/emacs/site-lisp/elpa/protobuf-mode-0.3/protobuf-mode hides /usr/share/emacs/site-lisp/elpa-src/protobuf-mode-0.3/protobuf-mode /usr/share/emacs/site-lisp/elpa/protobuf-mode-0.3/protobuf-mode-pkg hides /usr/share/emacs/site-lisp/elpa-src/protobuf-mode-0.3/protobuf-mode-pkg /usr/share/emacs/site-lisp/elpa/protobuf-mode-0.3/protobuf-mode-autoloads hides /usr/share/emacs/site-lisp/elpa-src/protobuf-mode-0.3/protobuf-mode-autoloads /usr/share/emacs/site-lisp/elpa/puppet-mode-0.4/puppet-mode hides /usr/share/emacs/site-lisp/elpa-src/puppet-mode-0.4/puppet-mode /usr/share/emacs/site-lisp/elpa/puppet-mode-0.4/puppet-mode-pkg hides /usr/share/emacs/site-lisp/elpa-src/puppet-mode-0.4/puppet-mode-pkg /usr/share/emacs/site-lisp/elpa/puppet-mode-0.4/puppet-mode-autoloads hides /usr/share/emacs/site-lisp/elpa-src/puppet-mode-0.4/puppet-mode-autoloads /usr/share/emacs/site-lisp/elpa/py-isort-2016.1/py-isort hides /usr/share/emacs/site-lisp/elpa-src/py-isort-2016.1/py-isort /usr/share/emacs/site-lisp/elpa/py-isort-2016.1/py-isort-pkg hides /usr/share/emacs/site-lisp/elpa-src/py-isort-2016.1/py-isort-pkg /usr/share/emacs/site-lisp/elpa/py-isort-2016.1/py-isort-autoloads hides /usr/share/emacs/site-lisp/elpa-src/py-isort-2016.1/py-isort-autoloads /usr/share/emacs/site-lisp/elpa/pyvenv-1.21/pyvenv-pkg hides /usr/share/emacs/site-lisp/elpa-src/pyvenv-1.21/pyvenv-pkg /usr/share/emacs/site-lisp/elpa/pyvenv-1.21/pyvenv-autoloads hides /usr/share/emacs/site-lisp/elpa-src/pyvenv-1.21/pyvenv-autoloads /usr/share/emacs/site-lisp/elpa/pyvenv-1.21/pyvenv hides /usr/share/emacs/site-lisp/elpa-src/pyvenv-1.21/pyvenv /usr/share/emacs/site-lisp/elpa/qml-mode-0.4/qml-mode-pkg hides /usr/share/emacs/site-lisp/elpa-src/qml-mode-0.4/qml-mode-pkg /usr/share/emacs/site-lisp/elpa/qml-mode-0.4/qml-mode-autoloads hides /usr/share/emacs/site-lisp/elpa-src/qml-mode-0.4/qml-mode-autoloads /usr/share/emacs/site-lisp/elpa/qml-mode-0.4/qml-mode hides /usr/share/emacs/site-lisp/elpa-src/qml-mode-0.4/qml-mode /usr/share/emacs/site-lisp/elpa/racket-mode-1/racket-shell hides /usr/share/emacs/site-lisp/elpa-src/racket-mode-1/racket-shell /usr/share/emacs/site-lisp/elpa/racket-mode-1/racket-cmd hides /usr/share/emacs/site-lisp/elpa-src/racket-mode-1/racket-cmd /usr/share/emacs/site-lisp/elpa/racket-mode-1/racket-bug-report hides /usr/share/emacs/site-lisp/elpa-src/racket-mode-1/racket-bug-report /usr/share/emacs/site-lisp/elpa/racket-mode-1/racket-mode-autoloads hides /usr/share/emacs/site-lisp/elpa-src/racket-mode-1/racket-mode-autoloads /usr/share/emacs/site-lisp/elpa/racket-mode-1/racket-scribble hides /usr/share/emacs/site-lisp/elpa-src/racket-mode-1/racket-scribble /usr/share/emacs/site-lisp/elpa/racket-mode-1/racket-browse-url hides /usr/share/emacs/site-lisp/elpa-src/racket-mode-1/racket-browse-url /usr/share/emacs/site-lisp/elpa/racket-mode-1/racket-smart-open hides /usr/share/emacs/site-lisp/elpa-src/racket-mode-1/racket-smart-open /usr/share/emacs/site-lisp/elpa/racket-mode-1/racket-lisp-mode hides /usr/share/emacs/site-lisp/elpa-src/racket-mode-1/racket-lisp-mode /usr/share/emacs/site-lisp/elpa/racket-mode-1/racket-eldoc hides /usr/share/emacs/site-lisp/elpa-src/racket-mode-1/racket-eldoc /usr/share/emacs/site-lisp/elpa/racket-mode-1/racket-complete hides /usr/share/emacs/site-lisp/elpa-src/racket-mode-1/racket-complete /usr/share/emacs/site-lisp/elpa/racket-mode-1/racket-stepper hides /usr/share/emacs/site-lisp/elpa-src/racket-mode-1/racket-stepper /usr/share/emacs/site-lisp/elpa/racket-mode-1/racket-xp hides /usr/share/emacs/site-lisp/elpa-src/racket-mode-1/racket-xp /usr/share/emacs/site-lisp/elpa/racket-mode-1/racket-describe hides /usr/share/emacs/site-lisp/elpa-src/racket-mode-1/racket-describe /usr/share/emacs/site-lisp/elpa/racket-mode-1/racket-font-lock hides /usr/share/emacs/site-lisp/elpa-src/racket-mode-1/racket-font-lock /usr/share/emacs/site-lisp/elpa/racket-mode-1/racket-custom hides /usr/share/emacs/site-lisp/elpa-src/racket-mode-1/racket-custom /usr/share/emacs/site-lisp/elpa/racket-mode-1/racket-edit hides /usr/share/emacs/site-lisp/elpa-src/racket-mode-1/racket-edit /usr/share/emacs/site-lisp/elpa/racket-mode-1/racket-repl hides /usr/share/emacs/site-lisp/elpa-src/racket-mode-1/racket-repl /usr/share/emacs/site-lisp/elpa/racket-mode-1/racket-util hides /usr/share/emacs/site-lisp/elpa-src/racket-mode-1/racket-util /usr/share/emacs/site-lisp/elpa/racket-mode-1/racket-debug hides /usr/share/emacs/site-lisp/elpa-src/racket-mode-1/racket-debug /usr/share/emacs/site-lisp/elpa/racket-mode-1/racket-logger hides /usr/share/emacs/site-lisp/elpa-src/racket-mode-1/racket-logger /usr/share/emacs/site-lisp/elpa/racket-mode-1/racket-parens hides /usr/share/emacs/site-lisp/elpa-src/racket-mode-1/racket-parens /usr/share/emacs/site-lisp/elpa/racket-mode-1/racket-mode hides /usr/share/emacs/site-lisp/elpa-src/racket-mode-1/racket-mode /usr/share/emacs/site-lisp/elpa/racket-mode-1/racket-imenu hides /usr/share/emacs/site-lisp/elpa-src/racket-mode-1/racket-imenu /usr/share/emacs/site-lisp/elpa/racket-mode-1/racket-back-end hides /usr/share/emacs/site-lisp/elpa-src/racket-mode-1/racket-back-end /usr/share/emacs/site-lisp/elpa/racket-mode-1/racket-visit hides /usr/share/emacs/site-lisp/elpa-src/racket-mode-1/racket-visit /usr/share/emacs/site-lisp/elpa/racket-mode-1/racket-indent hides /usr/share/emacs/site-lisp/elpa-src/racket-mode-1/racket-indent /usr/share/emacs/site-lisp/elpa/racket-mode-1/racket-ppss hides /usr/share/emacs/site-lisp/elpa-src/racket-mode-1/racket-ppss /usr/share/emacs/site-lisp/elpa/racket-mode-1/racket-common hides /usr/share/emacs/site-lisp/elpa-src/racket-mode-1/racket-common /usr/share/emacs/site-lisp/elpa/racket-mode-1/racket-keywords-and-builtins hides /usr/share/emacs/site-lisp/elpa-src/racket-mode-1/racket-keywords-and-builtins /usr/share/emacs/site-lisp/elpa/racket-mode-1/racket-mode-pkg hides /usr/share/emacs/site-lisp/elpa-src/racket-mode-1/racket-mode-pkg /usr/share/emacs/site-lisp/elpa/racket-mode-1/racket-doc hides /usr/share/emacs/site-lisp/elpa-src/racket-mode-1/racket-doc /usr/share/emacs/site-lisp/elpa/racket-mode-1/racket-xp-complete hides /usr/share/emacs/site-lisp/elpa-src/racket-mode-1/racket-xp-complete /usr/share/emacs/site-lisp/elpa/racket-mode-1/racket-wsl hides /usr/share/emacs/site-lisp/elpa-src/racket-mode-1/racket-wsl /usr/share/emacs/site-lisp/elpa/racket-mode-1/racket-package hides /usr/share/emacs/site-lisp/elpa-src/racket-mode-1/racket-package /usr/share/emacs/site-lisp/elpa/racket-mode-1/racket-hash-lang hides /usr/share/emacs/site-lisp/elpa-src/racket-mode-1/racket-hash-lang /usr/share/emacs/site-lisp/elpa/racket-mode-1/racket-profile hides /usr/share/emacs/site-lisp/elpa-src/racket-mode-1/racket-profile /usr/share/emacs/site-lisp/elpa/racket-mode-1/racket-input hides /usr/share/emacs/site-lisp/elpa-src/racket-mode-1/racket-input /usr/share/emacs/site-lisp/elpa/racket-mode-1/racket-collection hides /usr/share/emacs/site-lisp/elpa-src/racket-mode-1/racket-collection /usr/share/emacs/site-lisp/elpa/racket-mode-1/racket-repl-buffer-name hides /usr/share/emacs/site-lisp/elpa-src/racket-mode-1/racket-repl-buffer-name /usr/share/emacs/site-lisp/elpa/racket-mode-1/racket-show hides /usr/share/emacs/site-lisp/elpa-src/racket-mode-1/racket-show /usr/share/emacs/site-lisp/elpa/racket-mode-1/racket-scribble-anchor hides /usr/share/emacs/site-lisp/elpa-src/racket-mode-1/racket-scribble-anchor /usr/share/emacs/site-lisp/elpa/rust-mode-1.0.6/rust-mode-treesitter hides /usr/share/emacs/site-lisp/elpa-src/rust-mode-1.0.6/rust-mode-treesitter /usr/share/emacs/site-lisp/elpa/rust-mode-1.0.6/rust-common hides /usr/share/emacs/site-lisp/elpa-src/rust-mode-1.0.6/rust-common /usr/share/emacs/site-lisp/elpa/rust-mode-1.0.6/rust-cargo-tests hides /usr/share/emacs/site-lisp/elpa-src/rust-mode-1.0.6/rust-cargo-tests /usr/share/emacs/site-lisp/elpa/rust-mode-1.0.6/rust-prog-mode hides /usr/share/emacs/site-lisp/elpa-src/rust-mode-1.0.6/rust-prog-mode /usr/share/emacs/site-lisp/elpa/rust-mode-1.0.6/rust-compile hides /usr/share/emacs/site-lisp/elpa-src/rust-mode-1.0.6/rust-compile /usr/share/emacs/site-lisp/elpa/rust-mode-1.0.6/rust-mode-autoloads hides /usr/share/emacs/site-lisp/elpa-src/rust-mode-1.0.6/rust-mode-autoloads /usr/share/emacs/site-lisp/elpa/rust-mode-1.0.6/rust-playpen hides /usr/share/emacs/site-lisp/elpa-src/rust-mode-1.0.6/rust-playpen /usr/share/emacs/site-lisp/elpa/rust-mode-1.0.6/rust-rustfmt hides /usr/share/emacs/site-lisp/elpa-src/rust-mode-1.0.6/rust-rustfmt /usr/share/emacs/site-lisp/elpa/rust-mode-1.0.6/rust-cargo hides /usr/share/emacs/site-lisp/elpa-src/rust-mode-1.0.6/rust-cargo /usr/share/emacs/site-lisp/elpa/rust-mode-1.0.6/rust-utils hides /usr/share/emacs/site-lisp/elpa-src/rust-mode-1.0.6/rust-utils /usr/share/emacs/site-lisp/elpa/rust-mode-1.0.6/rust-mode-pkg hides /usr/share/emacs/site-lisp/elpa-src/rust-mode-1.0.6/rust-mode-pkg /usr/share/emacs/site-lisp/elpa/rust-mode-1.0.6/rust-mode-tests hides /usr/share/emacs/site-lisp/elpa-src/rust-mode-1.0.6/rust-mode-tests /usr/share/emacs/site-lisp/elpa/rust-mode-1.0.6/rust-mode hides /usr/share/emacs/site-lisp/elpa-src/rust-mode-1.0.6/rust-mode /usr/share/emacs/site-lisp/elpa/s-1.13.0/s hides /usr/share/emacs/site-lisp/elpa-src/s-1.13.0/s /usr/share/emacs/site-lisp/elpa/s-1.13.0/s-autoloads hides /usr/share/emacs/site-lisp/elpa-src/s-1.13.0/s-autoloads /usr/share/emacs/site-lisp/elpa/s-1.13.0/s-pkg hides /usr/share/emacs/site-lisp/elpa-src/s-1.13.0/s-pkg /usr/share/emacs/site-lisp/elpa/scala-mode-1.1.1/scala-mode-pkg hides /usr/share/emacs/site-lisp/elpa-src/scala-mode-1.1.1/scala-mode-pkg /usr/share/emacs/site-lisp/elpa/scala-mode-1.1.1/scala-compile hides /usr/share/emacs/site-lisp/elpa-src/scala-mode-1.1.1/scala-compile /usr/share/emacs/site-lisp/elpa/scala-mode-1.1.1/scala-mode-syntax hides /usr/share/emacs/site-lisp/elpa-src/scala-mode-1.1.1/scala-mode-syntax /usr/share/emacs/site-lisp/elpa/scala-mode-1.1.1/scala-mode hides /usr/share/emacs/site-lisp/elpa-src/scala-mode-1.1.1/scala-mode /usr/share/emacs/site-lisp/elpa/scala-mode-1.1.1/scala-mode-autoloads hides /usr/share/emacs/site-lisp/elpa-src/scala-mode-1.1.1/scala-mode-autoloads /usr/share/emacs/site-lisp/elpa/scala-mode-1.1.1/scala-mode-fontlock hides /usr/share/emacs/site-lisp/elpa-src/scala-mode-1.1.1/scala-mode-fontlock /usr/share/emacs/site-lisp/elpa/scala-mode-1.1.1/scala-mode-paragraph hides /usr/share/emacs/site-lisp/elpa-src/scala-mode-1.1.1/scala-mode-paragraph /usr/share/emacs/site-lisp/elpa/scala-mode-1.1.1/scala-organise hides /usr/share/emacs/site-lisp/elpa-src/scala-mode-1.1.1/scala-organise /usr/share/emacs/site-lisp/elpa/scala-mode-1.1.1/scala-mode-prettify-symbols hides /usr/share/emacs/site-lisp/elpa-src/scala-mode-1.1.1/scala-mode-prettify-symbols /usr/share/emacs/site-lisp/elpa/scala-mode-1.1.1/scala-mode-indent hides /usr/share/emacs/site-lisp/elpa-src/scala-mode-1.1.1/scala-mode-indent /usr/share/emacs/site-lisp/elpa/scala-mode-1.1.1/scala-mode-imenu hides /usr/share/emacs/site-lisp/elpa-src/scala-mode-1.1.1/scala-mode-imenu /usr/share/emacs/site-lisp/elpa/scala-mode-1.1.1/scala-mode-lib hides /usr/share/emacs/site-lisp/elpa-src/scala-mode-1.1.1/scala-mode-lib /usr/share/emacs/site-lisp/elpa/scala-mode-1.1.1/scala-mode-map hides /usr/share/emacs/site-lisp/elpa-src/scala-mode-1.1.1/scala-mode-map /usr/share/emacs/site-lisp/elpa/session-2.4.2/session-pkg hides /usr/share/emacs/site-lisp/elpa-src/session-2.4.2/session-pkg /usr/share/emacs/site-lisp/elpa/session-2.4.2/session-autoloads hides /usr/share/emacs/site-lisp/elpa-src/session-2.4.2/session-autoloads /usr/share/emacs/site-lisp/elpa/session-2.4.2/session hides /usr/share/emacs/site-lisp/elpa-src/session-2.4.2/session /usr/share/emacs/site-lisp/elpa/sml-mode-6.12/sml-mode-autoloads hides /usr/share/emacs/site-lisp/elpa-src/sml-mode-6.12/sml-mode-autoloads /usr/share/emacs/site-lisp/elpa/sml-mode-6.12/sml-mode-pkg hides /usr/share/emacs/site-lisp/elpa-src/sml-mode-6.12/sml-mode-pkg /usr/share/emacs/site-lisp/elpa/sml-mode-6.12/sml-mode hides /usr/share/emacs/site-lisp/elpa-src/sml-mode-6.12/sml-mode /usr/share/emacs/site-lisp/elpa/systemd-1.6/systemd hides /usr/share/emacs/site-lisp/elpa-src/systemd-1.6/systemd /usr/share/emacs/site-lisp/elpa/systemd-1.6/systemd-autoloads hides /usr/share/emacs/site-lisp/elpa-src/systemd-1.6/systemd-autoloads /usr/share/emacs/site-lisp/elpa/systemd-1.6/systemd-pkg hides /usr/share/emacs/site-lisp/elpa-src/systemd-1.6/systemd-pkg /usr/share/emacs/site-lisp/elpa/tabbar-20160524/aquamacs-tabbar hides /usr/share/emacs/site-lisp/elpa-src/tabbar-20160524/aquamacs-tabbar /usr/share/emacs/site-lisp/elpa/tabbar-20160524/aquamacs-tools hides /usr/share/emacs/site-lisp/elpa-src/tabbar-20160524/aquamacs-tools /usr/share/emacs/site-lisp/elpa/tabbar-20160524/tabbar-autoloads hides /usr/share/emacs/site-lisp/elpa-src/tabbar-20160524/tabbar-autoloads /usr/share/emacs/site-lisp/elpa/tabbar-20160524/one-buffer-one-frame hides /usr/share/emacs/site-lisp/elpa-src/tabbar-20160524/one-buffer-one-frame /usr/share/emacs/site-lisp/elpa/tabbar-20160524/aquamacs-compat hides /usr/share/emacs/site-lisp/elpa-src/tabbar-20160524/aquamacs-compat /usr/share/emacs/site-lisp/elpa/tabbar-20160524/tabbar-window hides /usr/share/emacs/site-lisp/elpa-src/tabbar-20160524/tabbar-window /usr/share/emacs/site-lisp/elpa/tabbar-20160524/tabbar-pkg hides /usr/share/emacs/site-lisp/elpa-src/tabbar-20160524/tabbar-pkg /usr/share/emacs/site-lisp/elpa/tabbar-20160524/tabbar hides /usr/share/emacs/site-lisp/elpa-src/tabbar-20160524/tabbar /usr/share/emacs/site-lisp/elpa/tp-0.7/tp-pkg hides /usr/share/emacs/site-lisp/elpa-src/tp-0.7/tp-pkg /usr/share/emacs/site-lisp/elpa/tp-0.7/tp-autoloads hides /usr/share/emacs/site-lisp/elpa-src/tp-0.7/tp-autoloads /usr/share/emacs/site-lisp/elpa/tp-0.7/tp hides /usr/share/emacs/site-lisp/elpa-src/tp-0.7/tp /usr/share/emacs/site-lisp/elpa/transient-0.8.8/transient hides /usr/share/emacs/site-lisp/elpa-src/transient-0.8.8/transient /usr/share/emacs/site-lisp/elpa/transient-0.8.8/transient-autoloads hides /usr/share/emacs/site-lisp/elpa-src/transient-0.8.8/transient-autoloads /usr/share/emacs/site-lisp/elpa/transient-0.8.8/transient-pkg hides /usr/share/emacs/site-lisp/elpa-src/transient-0.8.8/transient-pkg /usr/share/emacs/site-lisp/elpa/treemacs-3.2/treemacs-scope hides /usr/share/emacs/site-lisp/elpa-src/treemacs-3.2/treemacs-scope /usr/share/emacs/site-lisp/elpa/treemacs-3.2/treemacs-follow-mode hides /usr/share/emacs/site-lisp/elpa-src/treemacs-3.2/treemacs-follow-mode /usr/share/emacs/site-lisp/elpa/treemacs-3.2/treemacs-tag-follow-mode hides /usr/share/emacs/site-lisp/elpa-src/treemacs-3.2/treemacs-tag-follow-mode /usr/share/emacs/site-lisp/elpa/treemacs-3.2/treemacs-icons-dired hides /usr/share/emacs/site-lisp/elpa-src/treemacs-3.2/treemacs-icons-dired /usr/share/emacs/site-lisp/elpa/treemacs-3.2/treemacs-diagnostics hides /usr/share/emacs/site-lisp/elpa-src/treemacs-3.2/treemacs-diagnostics /usr/share/emacs/site-lisp/elpa/treemacs-3.2/treemacs-project-follow-mode hides /usr/share/emacs/site-lisp/elpa-src/treemacs-3.2/treemacs-project-follow-mode /usr/share/emacs/site-lisp/elpa/treemacs-3.2/treemacs-tags hides /usr/share/emacs/site-lisp/elpa-src/treemacs-3.2/treemacs-tags /usr/share/emacs/site-lisp/elpa/treemacs-3.2/treemacs-icons hides /usr/share/emacs/site-lisp/elpa-src/treemacs-3.2/treemacs-icons /usr/share/emacs/site-lisp/elpa/treemacs-3.2/treemacs-logging hides /usr/share/emacs/site-lisp/elpa-src/treemacs-3.2/treemacs-logging /usr/share/emacs/site-lisp/elpa/treemacs-3.2/treemacs-filewatch-mode hides /usr/share/emacs/site-lisp/elpa-src/treemacs-3.2/treemacs-filewatch-mode /usr/share/emacs/site-lisp/elpa/treemacs-3.2/treemacs-macros hides /usr/share/emacs/site-lisp/elpa-src/treemacs-3.2/treemacs-macros /usr/share/emacs/site-lisp/elpa/treemacs-3.2/treemacs-pkg hides /usr/share/emacs/site-lisp/elpa-src/treemacs-3.2/treemacs-pkg /usr/share/emacs/site-lisp/elpa/treemacs-3.2/treemacs hides /usr/share/emacs/site-lisp/elpa-src/treemacs-3.2/treemacs /usr/share/emacs/site-lisp/elpa/treemacs-3.2/treemacs-fringe-indicator hides /usr/share/emacs/site-lisp/elpa-src/treemacs-3.2/treemacs-fringe-indicator /usr/share/emacs/site-lisp/elpa/treemacs-3.2/treemacs-interface hides /usr/share/emacs/site-lisp/elpa-src/treemacs-3.2/treemacs-interface /usr/share/emacs/site-lisp/elpa/treemacs-3.2/treemacs-compatibility hides /usr/share/emacs/site-lisp/elpa-src/treemacs-3.2/treemacs-compatibility /usr/share/emacs/site-lisp/elpa/treemacs-3.2/treemacs-rendering hides /usr/share/emacs/site-lisp/elpa-src/treemacs-3.2/treemacs-rendering /usr/share/emacs/site-lisp/elpa/treemacs-3.2/treemacs-faces hides /usr/share/emacs/site-lisp/elpa-src/treemacs-3.2/treemacs-faces /usr/share/emacs/site-lisp/elpa/treemacs-3.2/treemacs-treelib hides /usr/share/emacs/site-lisp/elpa-src/treemacs-3.2/treemacs-treelib /usr/share/emacs/site-lisp/elpa/treemacs-3.2/treemacs-bookmarks hides /usr/share/emacs/site-lisp/elpa-src/treemacs-3.2/treemacs-bookmarks /usr/share/emacs/site-lisp/elpa/treemacs-3.2/treemacs-persistence hides /usr/share/emacs/site-lisp/elpa-src/treemacs-3.2/treemacs-persistence /usr/share/emacs/site-lisp/elpa/treemacs-3.2/treemacs-annotations hides /usr/share/emacs/site-lisp/elpa-src/treemacs-3.2/treemacs-annotations /usr/share/emacs/site-lisp/elpa/treemacs-3.2/treemacs-async hides /usr/share/emacs/site-lisp/elpa-src/treemacs-3.2/treemacs-async /usr/share/emacs/site-lisp/elpa/treemacs-3.2/treemacs-themes hides /usr/share/emacs/site-lisp/elpa-src/treemacs-3.2/treemacs-themes /usr/share/emacs/site-lisp/elpa/treemacs-3.2/treemacs-customization hides /usr/share/emacs/site-lisp/elpa-src/treemacs-3.2/treemacs-customization /usr/share/emacs/site-lisp/elpa/treemacs-3.2/treemacs-visuals hides /usr/share/emacs/site-lisp/elpa-src/treemacs-3.2/treemacs-visuals /usr/share/emacs/site-lisp/elpa/treemacs-3.2/treemacs-extensions hides /usr/share/emacs/site-lisp/elpa-src/treemacs-3.2/treemacs-extensions /usr/share/emacs/site-lisp/elpa/treemacs-3.2/treemacs-header-line hides /usr/share/emacs/site-lisp/elpa-src/treemacs-3.2/treemacs-header-line /usr/share/emacs/site-lisp/elpa/treemacs-3.2/treemacs-autoloads hides /usr/share/emacs/site-lisp/elpa-src/treemacs-3.2/treemacs-autoloads /usr/share/emacs/site-lisp/elpa/treemacs-3.2/treemacs-core-utils hides /usr/share/emacs/site-lisp/elpa-src/treemacs-3.2/treemacs-core-utils /usr/share/emacs/site-lisp/elpa/treemacs-3.2/treemacs-mode hides /usr/share/emacs/site-lisp/elpa-src/treemacs-3.2/treemacs-mode /usr/share/emacs/site-lisp/elpa/treemacs-3.2/treemacs-dom hides /usr/share/emacs/site-lisp/elpa-src/treemacs-3.2/treemacs-dom /usr/share/emacs/site-lisp/elpa/treemacs-3.2/treemacs-peek-mode hides /usr/share/emacs/site-lisp/elpa-src/treemacs-3.2/treemacs-peek-mode /usr/share/emacs/site-lisp/elpa/treemacs-3.2/treemacs-mouse-interface hides /usr/share/emacs/site-lisp/elpa-src/treemacs-3.2/treemacs-mouse-interface /usr/share/emacs/site-lisp/elpa/treemacs-3.2/treemacs-hydras hides /usr/share/emacs/site-lisp/elpa-src/treemacs-3.2/treemacs-hydras /usr/share/emacs/site-lisp/elpa/treemacs-3.2/treemacs-workspaces hides /usr/share/emacs/site-lisp/elpa-src/treemacs-3.2/treemacs-workspaces /usr/share/emacs/site-lisp/elpa/treemacs-3.2/treemacs-git-commit-diff-mode hides /usr/share/emacs/site-lisp/elpa-src/treemacs-3.2/treemacs-git-commit-diff-mode /usr/share/emacs/site-lisp/elpa/treemacs-3.2/treemacs-file-management hides /usr/share/emacs/site-lisp/elpa-src/treemacs-3.2/treemacs-file-management /usr/share/emacs/site-lisp/elpa/treemacs-magit-3.1/treemacs-magit-pkg hides /usr/share/emacs/site-lisp/elpa-src/treemacs-magit-3.1/treemacs-magit-pkg /usr/share/emacs/site-lisp/elpa/treemacs-magit-3.1/treemacs-magit hides /usr/share/emacs/site-lisp/elpa-src/treemacs-magit-3.1/treemacs-magit /usr/share/emacs/site-lisp/elpa/treemacs-magit-3.1/treemacs-magit-autoloads hides /usr/share/emacs/site-lisp/elpa-src/treemacs-magit-3.1/treemacs-magit-autoloads /usr/share/emacs/site-lisp/elpa/vala-mode-0.1/vala-mode-autoloads hides /usr/share/emacs/site-lisp/elpa-src/vala-mode-0.1/vala-mode-autoloads /usr/share/emacs/site-lisp/elpa/vala-mode-0.1/vala-mode hides /usr/share/emacs/site-lisp/elpa-src/vala-mode-0.1/vala-mode /usr/share/emacs/site-lisp/elpa/vala-mode-0.1/vala-mode-pkg hides /usr/share/emacs/site-lisp/elpa-src/vala-mode-0.1/vala-mode-pkg /usr/share/emacs/site-lisp/elpa/vterm-0.0.2/vterm-load-path hides /usr/share/emacs/site-lisp/elpa-src/vterm-0.0.2/vterm-load-path /usr/share/emacs/site-lisp/elpa/vterm-0.0.2/vterm hides /usr/share/emacs/site-lisp/elpa-src/vterm-0.0.2/vterm /usr/share/emacs/site-lisp/elpa/vterm-0.0.2/vterm-pkg hides /usr/share/emacs/site-lisp/elpa-src/vterm-0.0.2/vterm-pkg /usr/share/emacs/site-lisp/elpa/vterm-0.0.2/vterm-autoloads hides /usr/share/emacs/site-lisp/elpa-src/vterm-0.0.2/vterm-autoloads /usr/share/emacs/site-lisp/elpa/web-mode-17.3.20/web-mode hides /usr/share/emacs/site-lisp/elpa-src/web-mode-17.3.20/web-mode /usr/share/emacs/site-lisp/elpa/web-mode-17.3.20/web-mode-autoloads hides /usr/share/emacs/site-lisp/elpa-src/web-mode-17.3.20/web-mode-autoloads /usr/share/emacs/site-lisp/elpa/web-mode-17.3.20/web-mode-pkg hides /usr/share/emacs/site-lisp/elpa-src/web-mode-17.3.20/web-mode-pkg /usr/share/emacs/site-lisp/elpa/with-editor-3.4.3/with-editor hides /usr/share/emacs/site-lisp/elpa-src/with-editor-3.4.3/with-editor /usr/share/emacs/site-lisp/elpa/with-editor-3.4.3/with-editor-pkg hides /usr/share/emacs/site-lisp/elpa-src/with-editor-3.4.3/with-editor-pkg /usr/share/emacs/site-lisp/elpa/with-editor-3.4.3/with-editor-autoloads hides /usr/share/emacs/site-lisp/elpa-src/with-editor-3.4.3/with-editor-autoloads /usr/share/emacs/site-lisp/elpa/xml-rpc-1.6.17/xml-rpc-pkg hides /usr/share/emacs/site-lisp/elpa-src/xml-rpc-1.6.17/xml-rpc-pkg /usr/share/emacs/site-lisp/elpa/xml-rpc-1.6.17/xml-rpc hides /usr/share/emacs/site-lisp/elpa-src/xml-rpc-1.6.17/xml-rpc /usr/share/emacs/site-lisp/elpa/xml-rpc-1.6.17/xml-rpc-autoloads hides /usr/share/emacs/site-lisp/elpa-src/xml-rpc-1.6.17/xml-rpc-autoloads /usr/share/emacs/site-lisp/elpa/yaml-mode-0.0.16/yaml-mode-autoloads hides /usr/share/emacs/site-lisp/elpa-src/yaml-mode-0.0.16/yaml-mode-autoloads /usr/share/emacs/site-lisp/elpa/yaml-mode-0.0.16/yaml-mode hides /usr/share/emacs/site-lisp/elpa-src/yaml-mode-0.0.16/yaml-mode /usr/share/emacs/site-lisp/elpa/yaml-mode-0.0.16/yaml-mode-pkg hides /usr/share/emacs/site-lisp/elpa-src/yaml-mode-0.0.16/yaml-mode-pkg /usr/share/emacs/site-lisp/elpa/yasnippet-0.14.2/yasnippet-autoloads hides /usr/share/emacs/site-lisp/elpa-src/yasnippet-0.14.2/yasnippet-autoloads /usr/share/emacs/site-lisp/elpa/yasnippet-0.14.2/yasnippet hides /usr/share/emacs/site-lisp/elpa-src/yasnippet-0.14.2/yasnippet /usr/share/emacs/site-lisp/elpa/yasnippet-0.14.2/yasnippet-pkg hides /usr/share/emacs/site-lisp/elpa-src/yasnippet-0.14.2/yasnippet-pkg /usr/share/emacs/site-lisp/elpa/yasnippet-0.14.2/yasnippet-debug hides /usr/share/emacs/site-lisp/elpa-src/yasnippet-0.14.2/yasnippet-debug /usr/share/emacs/site-lisp/elpa/yasnippet-snippets-20240221/yasnippet-snippets-pkg hides /usr/share/emacs/site-lisp/elpa-src/yasnippet-snippets-20240221/yasnippet-snippets-pkg /usr/share/emacs/site-lisp/elpa/yasnippet-snippets-20240221/yasnippet-snippets hides /usr/share/emacs/site-lisp/elpa-src/yasnippet-snippets-20240221/yasnippet-snippets /usr/share/emacs/site-lisp/elpa/yasnippet-snippets-20240221/yasnippet-snippets-autoloads hides /usr/share/emacs/site-lisp/elpa-src/yasnippet-snippets-20240221/yasnippet-snippets-autoloads /usr/share/emacs/site-lisp/elpa/zenburn-theme-2.8.0/zenburn-theme hides /usr/share/emacs/site-lisp/elpa-src/zenburn-theme-2.8.0/zenburn-theme /usr/share/emacs/site-lisp/elpa/zenburn-theme-2.8.0/zenburn-theme-autoloads hides /usr/share/emacs/site-lisp/elpa-src/zenburn-theme-2.8.0/zenburn-theme-autoloads /usr/share/emacs/site-lisp/elpa/zenburn-theme-2.8.0/zenburn-theme-pkg hides /usr/share/emacs/site-lisp/elpa-src/zenburn-theme-2.8.0/zenburn-theme-pkg /usr/share/emacs/site-lisp/elpa/transient-0.8.8/transient hides /usr/share/emacs/30.1/lisp/transient /usr/share/emacs/site-lisp/elpa/org-9.7.29/ol-docview hides /usr/share/emacs/30.1/lisp/org/ol-docview /usr/share/emacs/site-lisp/elpa/org-9.7.29/ob-shell hides /usr/share/emacs/30.1/lisp/org/ob-shell /usr/share/emacs/site-lisp/elpa/org-9.7.29/ox-beamer hides /usr/share/emacs/30.1/lisp/org/ox-beamer /usr/share/emacs/site-lisp/elpa/org-9.7.29/org-lint hides /usr/share/emacs/30.1/lisp/org/org-lint /usr/share/emacs/site-lisp/elpa/org-9.7.29/ol-eshell hides /usr/share/emacs/30.1/lisp/org/ol-eshell /usr/share/emacs/site-lisp/elpa/org-9.7.29/ob-tangle hides /usr/share/emacs/30.1/lisp/org/ob-tangle /usr/share/emacs/site-lisp/elpa/org-9.7.29/org-protocol hides /usr/share/emacs/30.1/lisp/org/org-protocol /usr/share/emacs/site-lisp/elpa/org-9.7.29/ol-irc hides /usr/share/emacs/30.1/lisp/org/ol-irc /usr/share/emacs/site-lisp/elpa/org-9.7.29/org-table hides /usr/share/emacs/30.1/lisp/org/org-table /usr/share/emacs/site-lisp/elpa/org-9.7.29/ob-scheme hides /usr/share/emacs/30.1/lisp/org/ob-scheme /usr/share/emacs/site-lisp/elpa/org-9.7.29/ol-bibtex hides /usr/share/emacs/30.1/lisp/org/ol-bibtex /usr/share/emacs/site-lisp/elpa/org-9.7.29/ol-mhe hides /usr/share/emacs/30.1/lisp/org/ol-mhe /usr/share/emacs/site-lisp/elpa/org-9.7.29/org-persist hides /usr/share/emacs/30.1/lisp/org/org-persist /usr/share/emacs/site-lisp/elpa/org-9.7.29/ob-clojure hides /usr/share/emacs/30.1/lisp/org/ob-clojure /usr/share/emacs/site-lisp/elpa/org-9.7.29/org-macro hides /usr/share/emacs/30.1/lisp/org/org-macro /usr/share/emacs/site-lisp/elpa/org-9.7.29/ob-core hides /usr/share/emacs/30.1/lisp/org/ob-core /usr/share/emacs/site-lisp/elpa/org-9.7.29/ox-texinfo hides /usr/share/emacs/30.1/lisp/org/ox-texinfo /usr/share/emacs/site-lisp/elpa/org-9.7.29/org-datetree hides /usr/share/emacs/30.1/lisp/org/org-datetree /usr/share/emacs/site-lisp/elpa/org-9.7.29/ob-eshell hides /usr/share/emacs/30.1/lisp/org/ob-eshell /usr/share/emacs/site-lisp/elpa/org-9.7.29/ob-table hides /usr/share/emacs/30.1/lisp/org/ob-table /usr/share/emacs/site-lisp/elpa/org-9.7.29/ob-lob hides /usr/share/emacs/30.1/lisp/org/ob-lob /usr/share/emacs/site-lisp/elpa/org-9.7.29/org-id hides /usr/share/emacs/30.1/lisp/org/org-id /usr/share/emacs/site-lisp/elpa/org-9.7.29/ob-sqlite hides /usr/share/emacs/30.1/lisp/org/ob-sqlite /usr/share/emacs/site-lisp/elpa/org-9.7.29/ob-org hides /usr/share/emacs/30.1/lisp/org/ob-org /usr/share/emacs/site-lisp/elpa/org-9.7.29/ob-makefile hides /usr/share/emacs/30.1/lisp/org/ob-makefile /usr/share/emacs/site-lisp/elpa/org-9.7.29/org-goto hides /usr/share/emacs/30.1/lisp/org/org-goto /usr/share/emacs/site-lisp/elpa/org-9.7.29/org-archive hides /usr/share/emacs/30.1/lisp/org/org-archive /usr/share/emacs/site-lisp/elpa/org-9.7.29/org-agenda hides /usr/share/emacs/30.1/lisp/org/org-agenda /usr/share/emacs/site-lisp/elpa/org-9.7.29/ob-exp hides /usr/share/emacs/30.1/lisp/org/ob-exp /usr/share/emacs/site-lisp/elpa/org-9.7.29/ob-forth hides /usr/share/emacs/30.1/lisp/org/ob-forth /usr/share/emacs/site-lisp/elpa/org-9.7.29/org-loaddefs hides /usr/share/emacs/30.1/lisp/org/org-loaddefs /usr/share/emacs/site-lisp/elpa/org-9.7.29/ob-eval hides /usr/share/emacs/30.1/lisp/org/ob-eval /usr/share/emacs/site-lisp/elpa/org-9.7.29/org-crypt hides /usr/share/emacs/30.1/lisp/org/org-crypt /usr/share/emacs/site-lisp/elpa/org-9.7.29/ox-html hides /usr/share/emacs/30.1/lisp/org/ox-html /usr/share/emacs/site-lisp/elpa/org-9.7.29/ob-ditaa hides /usr/share/emacs/30.1/lisp/org/ob-ditaa /usr/share/emacs/site-lisp/elpa/org-9.7.29/oc-natbib hides /usr/share/emacs/30.1/lisp/org/oc-natbib /usr/share/emacs/site-lisp/elpa/org-9.7.29/ob-ocaml hides /usr/share/emacs/30.1/lisp/org/ob-ocaml /usr/share/emacs/site-lisp/elpa/org-9.7.29/ox-koma-letter hides /usr/share/emacs/30.1/lisp/org/ox-koma-letter /usr/share/emacs/site-lisp/elpa/org-9.7.29/org-timer hides /usr/share/emacs/30.1/lisp/org/org-timer /usr/share/emacs/site-lisp/elpa/org-9.7.29/org-footnote hides /usr/share/emacs/30.1/lisp/org/org-footnote /usr/share/emacs/site-lisp/elpa/org-9.7.29/ol-w3m hides /usr/share/emacs/30.1/lisp/org/ol-w3m /usr/share/emacs/site-lisp/elpa/org-9.7.29/ox-ascii hides /usr/share/emacs/30.1/lisp/org/ox-ascii /usr/share/emacs/site-lisp/elpa/org-9.7.29/ob-sed hides /usr/share/emacs/30.1/lisp/org/ob-sed /usr/share/emacs/site-lisp/elpa/org-9.7.29/ox-man hides /usr/share/emacs/30.1/lisp/org/ox-man /usr/share/emacs/site-lisp/elpa/org-9.7.29/org-version hides /usr/share/emacs/30.1/lisp/org/org-version /usr/share/emacs/site-lisp/elpa/org-9.7.29/org-inlinetask hides /usr/share/emacs/30.1/lisp/org/org-inlinetask /usr/share/emacs/site-lisp/elpa/org-9.7.29/org-ctags hides /usr/share/emacs/30.1/lisp/org/org-ctags /usr/share/emacs/site-lisp/elpa/org-9.7.29/ob-latex hides /usr/share/emacs/30.1/lisp/org/ob-latex /usr/share/emacs/site-lisp/elpa/org-9.7.29/ol-gnus hides /usr/share/emacs/30.1/lisp/org/ol-gnus /usr/share/emacs/site-lisp/elpa/org-9.7.29/ob-haskell hides /usr/share/emacs/30.1/lisp/org/ob-haskell /usr/share/emacs/site-lisp/elpa/org-9.7.29/org-plot hides /usr/share/emacs/30.1/lisp/org/org-plot /usr/share/emacs/site-lisp/elpa/org-9.7.29/ob-ref hides /usr/share/emacs/30.1/lisp/org/ob-ref /usr/share/emacs/site-lisp/elpa/org-9.7.29/org-indent hides /usr/share/emacs/30.1/lisp/org/org-indent /usr/share/emacs/site-lisp/elpa/org-9.7.29/ob-octave hides /usr/share/emacs/30.1/lisp/org/ob-octave /usr/share/emacs/site-lisp/elpa/org-9.7.29/org-colview hides /usr/share/emacs/30.1/lisp/org/org-colview /usr/share/emacs/site-lisp/elpa/org-9.7.29/org-duration hides /usr/share/emacs/30.1/lisp/org/org-duration /usr/share/emacs/site-lisp/elpa/org-9.7.29/ob-sass hides /usr/share/emacs/30.1/lisp/org/ob-sass /usr/share/emacs/site-lisp/elpa/org-9.7.29/ob-gnuplot hides /usr/share/emacs/30.1/lisp/org/ob-gnuplot /usr/share/emacs/site-lisp/elpa/org-9.7.29/org-num hides /usr/share/emacs/30.1/lisp/org/org-num /usr/share/emacs/site-lisp/elpa/org-9.7.29/org-pcomplete hides /usr/share/emacs/30.1/lisp/org/org-pcomplete /usr/share/emacs/site-lisp/elpa/org-9.7.29/oc-csl hides /usr/share/emacs/30.1/lisp/org/oc-csl /usr/share/emacs/site-lisp/elpa/org-9.7.29/org-keys hides /usr/share/emacs/30.1/lisp/org/org-keys /usr/share/emacs/site-lisp/elpa/org-9.7.29/ox-odt hides /usr/share/emacs/30.1/lisp/org/ox-odt /usr/share/emacs/site-lisp/elpa/org-9.7.29/ox-publish hides /usr/share/emacs/30.1/lisp/org/ox-publish /usr/share/emacs/site-lisp/elpa/org-9.7.29/org-element hides /usr/share/emacs/30.1/lisp/org/org-element /usr/share/emacs/site-lisp/elpa/org-9.7.29/ol-man hides /usr/share/emacs/30.1/lisp/org/ol-man /usr/share/emacs/site-lisp/elpa/org-9.7.29/ol-info hides /usr/share/emacs/30.1/lisp/org/ol-info /usr/share/emacs/site-lisp/elpa/org-9.7.29/ob-perl hides /usr/share/emacs/30.1/lisp/org/ob-perl /usr/share/emacs/site-lisp/elpa/org-9.7.29/ol-rmail hides /usr/share/emacs/30.1/lisp/org/ol-rmail /usr/share/emacs/site-lisp/elpa/org-9.7.29/org-refile hides /usr/share/emacs/30.1/lisp/org/org-refile /usr/share/emacs/site-lisp/elpa/org-9.7.29/org-attach-git hides /usr/share/emacs/30.1/lisp/org/org-attach-git /usr/share/emacs/site-lisp/elpa/org-9.7.29/ox-org hides /usr/share/emacs/30.1/lisp/org/ox-org /usr/share/emacs/site-lisp/elpa/org-9.7.29/ob hides /usr/share/emacs/30.1/lisp/org/ob /usr/share/emacs/site-lisp/elpa/org-9.7.29/ob-C hides /usr/share/emacs/30.1/lisp/org/ob-C /usr/share/emacs/site-lisp/elpa/org-9.7.29/oc hides /usr/share/emacs/30.1/lisp/org/oc /usr/share/emacs/site-lisp/elpa/org-9.7.29/ob-js hides /usr/share/emacs/30.1/lisp/org/ob-js /usr/share/emacs/site-lisp/elpa/org-9.7.29/ob-plantuml hides /usr/share/emacs/30.1/lisp/org/ob-plantuml /usr/share/emacs/site-lisp/elpa/org-9.7.29/ox hides /usr/share/emacs/30.1/lisp/org/ox /usr/share/emacs/site-lisp/elpa/org-9.7.29/ob-calc hides /usr/share/emacs/30.1/lisp/org/ob-calc /usr/share/emacs/site-lisp/elpa/org-9.7.29/ox-latex hides /usr/share/emacs/30.1/lisp/org/ox-latex /usr/share/emacs/site-lisp/elpa/org-9.7.29/org-tempo hides /usr/share/emacs/30.1/lisp/org/org-tempo /usr/share/emacs/site-lisp/elpa/org-9.7.29/ob-emacs-lisp hides /usr/share/emacs/30.1/lisp/org/ob-emacs-lisp /usr/share/emacs/site-lisp/elpa/org-9.7.29/org-feed hides /usr/share/emacs/30.1/lisp/org/org-feed /usr/share/emacs/site-lisp/elpa/org-9.7.29/org-cycle hides /usr/share/emacs/30.1/lisp/org/org-cycle /usr/share/emacs/site-lisp/elpa/org-9.7.29/org-mouse hides /usr/share/emacs/30.1/lisp/org/org-mouse /usr/share/emacs/site-lisp/elpa/org-9.7.29/ol-eww hides /usr/share/emacs/30.1/lisp/org/ol-eww /usr/share/emacs/site-lisp/elpa/org-9.7.29/ob-fortran hides /usr/share/emacs/30.1/lisp/org/ob-fortran /usr/share/emacs/site-lisp/elpa/org-9.7.29/oc-biblatex hides /usr/share/emacs/30.1/lisp/org/oc-biblatex /usr/share/emacs/site-lisp/elpa/org-9.7.29/ob-screen hides /usr/share/emacs/30.1/lisp/org/ob-screen /usr/share/emacs/site-lisp/elpa/org-9.7.29/org-fold hides /usr/share/emacs/30.1/lisp/org/org-fold /usr/share/emacs/site-lisp/elpa/org-9.7.29/ob-julia hides /usr/share/emacs/30.1/lisp/org/ob-julia /usr/share/emacs/site-lisp/elpa/org-9.7.29/ol-doi hides /usr/share/emacs/30.1/lisp/org/ol-doi /usr/share/emacs/site-lisp/elpa/org-9.7.29/ob-ruby hides /usr/share/emacs/30.1/lisp/org/ob-ruby /usr/share/emacs/site-lisp/elpa/org-9.7.29/org-faces hides /usr/share/emacs/30.1/lisp/org/org-faces /usr/share/emacs/site-lisp/elpa/org-9.7.29/org-element-ast hides /usr/share/emacs/30.1/lisp/org/org-element-ast /usr/share/emacs/site-lisp/elpa/org-9.7.29/ox-icalendar hides /usr/share/emacs/30.1/lisp/org/ox-icalendar /usr/share/emacs/site-lisp/elpa/org-9.7.29/org hides /usr/share/emacs/30.1/lisp/org/org /usr/share/emacs/site-lisp/elpa/org-9.7.29/ol hides /usr/share/emacs/30.1/lisp/org/ol /usr/share/emacs/site-lisp/elpa/org-9.7.29/org-capture hides /usr/share/emacs/30.1/lisp/org/org-capture /usr/share/emacs/site-lisp/elpa/org-9.7.29/ob-awk hides /usr/share/emacs/30.1/lisp/org/ob-awk /usr/share/emacs/site-lisp/elpa/org-9.7.29/org-macs hides /usr/share/emacs/30.1/lisp/org/org-macs /usr/share/emacs/site-lisp/elpa/org-9.7.29/oc-bibtex hides /usr/share/emacs/30.1/lisp/org/oc-bibtex /usr/share/emacs/site-lisp/elpa/org-9.7.29/ob-sql hides /usr/share/emacs/30.1/lisp/org/ob-sql /usr/share/emacs/site-lisp/elpa/org-9.7.29/ob-groovy hides /usr/share/emacs/30.1/lisp/org/ob-groovy /usr/share/emacs/site-lisp/elpa/org-9.7.29/ol-bbdb hides /usr/share/emacs/30.1/lisp/org/ol-bbdb /usr/share/emacs/site-lisp/elpa/org-9.7.29/ob-java hides /usr/share/emacs/30.1/lisp/org/ob-java /usr/share/emacs/site-lisp/elpa/org-9.7.29/ob-python hides /usr/share/emacs/30.1/lisp/org/ob-python /usr/share/emacs/site-lisp/elpa/org-9.7.29/ob-lua hides /usr/share/emacs/30.1/lisp/org/ob-lua /usr/share/emacs/site-lisp/elpa/org-9.7.29/ob-css hides /usr/share/emacs/30.1/lisp/org/ob-css /usr/share/emacs/site-lisp/elpa/org-9.7.29/ob-dot hides /usr/share/emacs/30.1/lisp/org/ob-dot /usr/share/emacs/site-lisp/elpa/org-9.7.29/org-mobile hides /usr/share/emacs/30.1/lisp/org/org-mobile /usr/share/emacs/site-lisp/elpa/org-9.7.29/org-list hides /usr/share/emacs/30.1/lisp/org/org-list /usr/share/emacs/site-lisp/elpa/org-9.7.29/ob-R hides /usr/share/emacs/30.1/lisp/org/ob-R /usr/share/emacs/site-lisp/elpa/org-9.7.29/org-clock hides /usr/share/emacs/30.1/lisp/org/org-clock /usr/share/emacs/site-lisp/elpa/org-9.7.29/ob-lisp hides /usr/share/emacs/30.1/lisp/org/ob-lisp /usr/share/emacs/site-lisp/elpa/org-9.7.29/ox-md hides /usr/share/emacs/30.1/lisp/org/ox-md /usr/share/emacs/site-lisp/elpa/org-9.7.29/org-fold-core hides /usr/share/emacs/30.1/lisp/org/org-fold-core /usr/share/emacs/site-lisp/elpa/org-9.7.29/org-src hides /usr/share/emacs/30.1/lisp/org/org-src /usr/share/emacs/site-lisp/elpa/org-9.7.29/oc-basic hides /usr/share/emacs/30.1/lisp/org/oc-basic /usr/share/emacs/site-lisp/elpa/org-9.7.29/ob-comint hides /usr/share/emacs/30.1/lisp/org/ob-comint /usr/share/emacs/site-lisp/elpa/org-9.7.29/org-habit hides /usr/share/emacs/30.1/lisp/org/org-habit /usr/share/emacs/site-lisp/elpa/org-9.7.29/ob-matlab hides /usr/share/emacs/30.1/lisp/org/ob-matlab /usr/share/emacs/site-lisp/elpa/org-9.7.29/org-attach hides /usr/share/emacs/30.1/lisp/org/org-attach /usr/share/emacs/site-lisp/elpa/org-9.7.29/ob-maxima hides /usr/share/emacs/30.1/lisp/org/ob-maxima /usr/share/emacs/site-lisp/elpa/org-9.7.29/org-compat hides /usr/share/emacs/30.1/lisp/org/org-compat /usr/share/emacs/site-lisp/elpa/org-9.7.29/ob-lilypond hides /usr/share/emacs/30.1/lisp/org/ob-lilypond /usr/share/emacs/site-lisp/elpa/org-9.7.29/ob-processing hides /usr/share/emacs/30.1/lisp/org/ob-processing /usr/share/emacs/site-lisp/elpa/org-9.7.29/org-entities hides /usr/share/emacs/30.1/lisp/org/org-entities /usr/share/emacs/site-lisp/elpa/let-alist-1.0.6/let-alist hides /usr/share/emacs/30.1/lisp/emacs-lisp/let-alist /usr/share/emacs/site-lisp/elpa/compat-30.1.0.0/compat hides /usr/share/emacs/30.1/lisp/emacs-lisp/compat Features: (shadow emacsbug mailalias textsec uni-scripts idna-mapping ucs-normalize uni-confusable textsec-check qp sort mail-extr reporter mule-util find-dired grep oc-basic org-element org-persist org-id org-refile org-element-ast avl-tree ol-eww eww url-queue mm-url ol-rmail ol-mhe ol-irc ol-info ol-gnus nnselect ol-docview doc-view jka-compr image-mode exif ol-bibtex bibtex ol-bbdb ol-w3m ol-doi org-link-doi ob-octave org ob ob-tangle ob-ref ob-lob ob-table ob-exp org-macro org-src sh-script smie executable ob-comint org-pcomplete org-list org-footnote org-faces org-entities noutline outline ob-emacs-lisp ob-core ob-eval org-cycle org-table ol org-fold org-fold-core org-keys oc org-loaddefs cal-menu calendar cal-loaddefs org-version org-compat org-macs yaml-mode tex-info texinfo texinfo-loaddefs tex texmathp auctex debian-copyright rect debian-changelog-mode debian-bug goto-addr flyspell ispell gitignore-mode conf-mode make-mode git-rebase magit-extras debian-control-mode dpkg-dev-common-utils deb-view tar-mode arc-mode archive-mode matlab matlab-sections matlab-scan matlab-syntax matlab-org matlab-compat go-mode find-file ffap etags fileloop generator misearch multi-isearch magit-bookmark magit-submodule magit-blame magit-stash magit-reflog magit-bisect magit-push magit-pull magit-fetch magit-clone magit-remote magit-commit magit-sequence magit-notes magit-worktree magit-tag magit-merge magit-branch magit-reset magit-files magit-refs magit-status magit magit-repos magit-apply magit-wip magit-log which-func magit-diff smerge-mode git-commit log-edit add-log magit-core magit-autorevert magit-margin magit-transient magit-process magit-mode transient benchmark magit-git magit-base crm magit-section llama with-editor comp comp-cstr comp-run comp-common vterm tramp trampver tramp-integration files-x tramp-message tramp-compat xdg format-spec tramp-loaddefs face-remap term shell pcomplete ehelp vterm-module gnus-topic cursor-sensor utf-7 url-cache epa-file network-stream nnfolder gnus-demon nnml ezgnus gnus-delay gnus-draft gnus-agent gnus-srvr gnus-score score-mode nnvirtual nntp gnus-cache gnus-msg gnus-art mm-uu mml2015 mm-view mml-smime smime gnutls dig gnus-sum shr pixel-fill kinsoku url-file svg dom nndraft nnmh gnus-group gnus-undo gnus-start gnus-dbus dbus xml gnus-cloud nnimap nnmail mail-source utf7 nnoo parse-time iso8601 gnus-spec gnus-int gnus-range message yank-media rfc822 mml mml-sec epa derived mm-decode mm-bodies mm-encode mailabbrev gmm-utils mailheader gnus-win gnus nnheader gnus-util time-date range dired-aux term/xterm xterm server cap-words superword subword vc-hg vc-git vc-bzr vc-src vc-sccs vc-svn vc-cvs vc-rcs log-view pcvs-util vc vc-dispatcher bug-reference disp-table whitespace eglot external-completion jsonrpc xref compat diff diff-mode track-changes ert ewoc debug backtrace find-func imenu yasnippet-snippets yasnippet cus-start init zenburn-theme xclip treesit-auto treesit treemacs-project-follow-mode treemacs-follow-mode treemacs-rendering treemacs-annotations treemacs-async treemacs-visuals treemacs-fringe-indicator pulse color treemacs-workspaces treemacs-dom treemacs-icons treemacs-themes treemacs-scope treemacs-core-utils treemacs-logging treemacs-customization pfuture inline ht s hl-line dash auth-source-xoauth2-plugin smtpmail sendmail mail-utils oauth2 url-http url-auth mail-parse rfc2231 rfc2047 rfc2045 mm-util ietf-drums mail-prsvr url-gw nsm puny plstore epg rfc6068 epg-config keychain-environment exec-path-from-shell activities-tabs activities persist bookmark edmacro kmacro advice cperl-mode facemenu icomplete flymake project compile text-property-search comint ansi-osc ansi-color ring warnings thingatpt cl-extra help-mode use-package use-package-ensure use-package-delight use-package-diminish use-package-bind-key bind-key easy-mmode use-package-core display-line-numbers autorevert filenotify cus-edit pp cus-load wid-edit info auctex-autoloads tex-site auth-source-xoauth2-plugin-autoloads gptel-autoloads keychain-environment-autoloads treesit-auto-autoloads xclip-autoloads activities-autoloads apache-mode-autoloads ats2-mode-autoloads bar-cursor-autoloads bazel-autoloads finder-inf bison-mode-autoloads bm-autoloads boxquote-autoloads bpftrace-mode-autoloads browse-kill-ring-autoloads caml-autoloads clojure-mode-extra-font-locking-autoloads clojure-mode-autoloads cmake-mode-autoloads color-theme-modern-autoloads company-autoloads corfu-terminal-autoloads corfu-autoloads csv-mode-autoloads dape-autoloads dart-mode-autoloads debpaste-autoloads devscripts-autoloads dh-elpa-autoloads diminish-autoloads dockerfile-mode-autoloads dpkg-dev-el-autoloads debian-el-autoloads debian-el dired dired-loaddefs elfeed-autoloads elm-mode-autoloads eproject-autoloads evil-autoloads exec-path-from-shell-autoloads f-autoloads folding-autoloads format-all-autoloads fountain-mode-autoloads git-modes-autoloads gitattributes-mode-autoloads gitconfig-mode-autoloads gitignore-mode-autoloads gitlab-ci-mode-autoloads gnuplot-autoloads go-mode-autoloads goto-chg-autoloads graphviz-dot-mode-autoloads haskell-mode-autoloads helm-autoloads helm-core-autoloads async-autoloads htmlize-autoloads imenu-list-autoloads inform-mode-autoloads inheritenv-autoloads initsplit-autoloads jinja2-mode-autoloads js2-mode-autoloads kivy-mode-autoloads kotlin-mode-autoloads language-id-autoloads lua-mode-autoloads markdown-mode-autoloads mastodon-autoloads matlab-mode-autoloads meson-mode-autoloads mutt-alias-autoloads muttrc-mode-autoloads nginx-mode-autoloads oauth2-autoloads ol-notmuch-autoloads notmuch-autoloads olivetti-autoloads org-drill-autoloads org-autoloads paredit-autoloads persist-autoloads pg-autoloads php-mode-autoloads pip-requirements-autoloads po-mode-autoloads pod-mode-autoloads popon-autoloads pos-tip-autoloads protobuf-mode-autoloads puppet-mode-autoloads pkg-info-autoloads epl-autoloads py-isort-autoloads pyvenv-autoloads qml-mode-autoloads racket-mode-autoloads rust-mode-autoloads scala-mode-autoloads session-autoloads sml-mode-autoloads systemd-autoloads rx tabbar-autoloads tp-autoloads treemacs-magit-autoloads magit-autoloads pcase transient-autoloads magit-section-autoloads llama-autoloads treemacs-autoloads cfrs-autoloads posframe-autoloads ht-autoloads hydra-autoloads lv-autoloads pfuture-autoloads ace-window-autoloads avy-autoloads s-autoloads dash-autoloads vala-mode-autoloads vterm-autoloads web-mode-autoloads with-editor-autoloads xml-rpc-autoloads yaml-mode-autoloads yasnippet-snippets-autoloads yasnippet-autoloads zenburn-theme-autoloads package browse-url url url-proxy url-privacy url-expand url-methods url-history url-cookie generate-lisp-file url-domsuf url-util mailcap url-handlers url-parse auth-source cl-seq eieio eieio-core cl-macs icons password-cache json subr-x map byte-opt gv bytecomp byte-compile url-vars cl-loaddefs cl-lib rmc iso-transl tooltip cconv eldoc paren electric uniquify ediff-hook vc-hooks lisp-float-type elisp-mode mwheel term/x-win x-win term/common-win x-dnd touch-screen tool-bar dnd fontset image regexp-opt fringe tabulated-list replace newcomment text-mode lisp-mode prog-mode register page tab-bar menu-bar rfn-eshadow isearch easymenu timer select scroll-bar mouse jit-lock font-lock syntax font-core term/tty-colors frame minibuffer nadvice seq simple cl-generic indonesian philippine cham georgian utf-8-lang misc-lang vietnamese tibetan thai tai-viet lao korean japanese eucjp-ms cp51932 hebrew greek romanian slovak czech european ethiopic indian cyrillic chinese composite emoji-zwj charscript charprop case-table epa-hook jka-cmpr-hook help abbrev obarray oclosure cl-preloaded button loaddefs theme-loaddefs faces cus-face macroexp files window text-properties overlay sha1 md5 base64 format env code-pages mule custom widget keymap hashtable-print-readable backquote threads dbusbind inotify lcms2 dynamic-setting system-font-setting font-render-setting cairo gtk x-toolkit xinput2 x multi-tty move-toolbar make-network-process native-compile emacs) Memory information: ((conses 16 1212036 155716) (symbols 48 50445 0) (strings 32 213672 5498) (string-bytes 1 6528724) (vectors 16 116263) (vector-slots 8 2081308 65245) (floats 8 3571 37836) (intervals 56 17912 5022) (buffers 992 74)) From debbugs-submit-bounces@debbugs.gnu.org Fri Jun 20 10:53:51 2025 Received: (at 78844) by debbugs.gnu.org; 20 Jun 2025 14:53:51 +0000 Received: from localhost ([127.0.0.1]:53163 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1uSd7n-0005Dx-9I for submit@debbugs.gnu.org; Fri, 20 Jun 2025 10:53:51 -0400 Received: from sendmail.purelymail.com ([34.202.193.197]:41060) by debbugs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.84_2) (envelope-from ) id 1uSd7k-0005DC-JK for 78844@debbugs.gnu.org; Fri, 20 Jun 2025 10:53:49 -0400 DKIM-Signature: a=rsa-sha256; b=yp9JttMSHxlSMbXVxLi0EFzEM7fJwIgqsGW/cRbOMJv5rd240eP5mPzA9952jEVvofJTe7jwJQR9qQD7fYe6qrPnUajgyeQfkBrNz5XKSMdBS487DEZ+CNVyMfjGVsW36TI149Hrw4Astlx67bjuHa0gaublVN/cRzvGYYLk7NiZUuYOtFZBDY+9Wu1SWgVDb/8vZr7Jq8fC3ut4ztTEMliydKxMBgNbyir+2GkSTS3nDa/zV1snBdqcrsycIpcWsFUtvBU9bl6iYUiOe7ayBSyKAtLsbUmDOjX+EN+ORDOLCm60CjWOKwHbMzuBpt2p1/2ExOphLLa0lDoeBMvILg==; s=purelymail3; d=spwhitton.name; v=1; bh=LuzEwkOkAV5BkfCc3shconCOnvqol0Pw7xAWpZdJJBU=; h=Received:Received:From:To:Subject:Date; DKIM-Signature: a=rsa-sha256; b=oKg4lmjn20u6S2oqZMelmnwWE7fX/e7UL3c0ShtgpMUua6moAC4hGmfVECr7pldwLhc9kvSVdQd3ux13TT9eNaqXDAEwUGRbnwWYCwPZ7xatSL3sMziWgdrhZc/7vh1vPjj8WSmLmL6ypAbiNkDVNfNxRQXq/kPREHEv4l0XPQNtlJpOtJ/pIyjYguXV/98o4NwZPLXn4kLpl0QprPnlVwayAItBWIkQC8D5JCOq33IepGi/4Uq5UAYQR8ihVDFgkNOY2vlajTe+5ju5Wx6TTwhF7VC6FC+i2QfDLRiQMwoAvyOdsX5Qr6y3tJenLORuBqbmVo2Qta3Z+k0oyjV5yA==; s=purelymail3; d=purelymail.com; v=1; bh=LuzEwkOkAV5BkfCc3shconCOnvqol0Pw7xAWpZdJJBU=; h=Feedback-ID:Received:Received:From:To:Subject:Date; Feedback-ID: 20115:3760:null:purelymail X-Pm-Original-To: 78844@debbugs.gnu.org Received: by smtp.purelymail.com (Purelymail SMTP) with ESMTPSA id -1056000020; (version=TLSv1.3 cipher=TLS_AES_256_GCM_SHA384); Fri, 20 Jun 2025 14:53:42 +0000 (UTC) Received: by zephyr.silentflame.com (Postfix, from userid 1000) id 55ACA94017E; Fri, 20 Jun 2025 15:53:41 +0100 (BST) From: Sean Whitton To: Xiyue Deng Subject: Re: bug#78844: 30.1; feature request: public interface for querying builtin packages and versions In-Reply-To: <878qlnz46j.fsf@debian-qemu> References: <878qlnz46j.fsf@debian-qemu> Date: Fri, 20 Jun 2025 15:53:41 +0100 Message-ID: <87ecveo45m.fsf@zephyr.silentflame.com> User-Agent: Gnus/5.13 (Gnus v5.13) MIME-Version: 1.0 Content-Type: text/plain X-Spam-Score: 0.0 (/) X-Debbugs-Envelope-To: 78844 Cc: 78844@debbugs.gnu.org X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -1.0 (-) Hello, It would be great to stabilise this interface. We would like to add package system metadata to the Emacs packages in Debian to track all the built-in packages. We could do various useful things with that. Thanks to Xiyue for working on this, both here and over in the Debian BTS. The sample interface looks good to me. -- Sean Whitton From debbugs-submit-bounces@debbugs.gnu.org Sat Jun 21 00:43:26 2025 Received: (at 78844) by debbugs.gnu.org; 21 Jun 2025 04:43:26 +0000 Received: from localhost ([127.0.0.1]:59460 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1uSq4a-0000y9-E3 for submit@debbugs.gnu.org; Sat, 21 Jun 2025 00:43:26 -0400 Received: from mail-pj1-x1030.google.com ([2607:f8b0:4864:20::1030]:44466) by debbugs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.84_2) (envelope-from ) id 1uSq4W-0000wu-7B for 78844@debbugs.gnu.org; Sat, 21 Jun 2025 00:43:22 -0400 Received: by mail-pj1-x1030.google.com with SMTP id 98e67ed59e1d1-3122368d7c4so2111687a91.1 for <78844@debbugs.gnu.org>; Fri, 20 Jun 2025 21:43:20 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1750480994; x=1751085794; darn=debbugs.gnu.org; h=mime-version:message-id:date:user-agent:references:in-reply-to :subject:cc:to:from:from:to:cc:subject:date:message-id:reply-to; bh=RvfYNoUYQVaBw2mSSa6+giUACb8GslJYonmaGcQzBsk=; b=AV65NqOMg1gWr5Kt4Qnd11TKdmOgdbrc2hPoteWmR9M/oxdii/dbGJ4jqE+gfUboQ0 Jh1WTvYYA84w5zv+QHQ0vigpq26lh2flb6IZqbbosXv30oZ4ukLE4D6HXAKNS0Liiji2 HqWm5dtDII29e3DpT9TPIP7155Ef6VHAalhSvTVYhSyBYbNXDuSItlc72msC/Bv1oZBP gH9QmNc2rMcLWkdu4ISbIJTE3h92dhf/XBVTK8uOc67Ve2MyWd/dGF+TwAY47G9X5Uir aHP17tS80z7pjz4sCxjT2hWuCHmOxne4xwh8c4YdZSExIETJ6zVoemamg9AlaLreVZCb hwUQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1750480994; x=1751085794; h=mime-version:message-id:date:user-agent:references:in-reply-to :subject:cc:to:from:x-gm-message-state:from:to:cc:subject:date :message-id:reply-to; bh=RvfYNoUYQVaBw2mSSa6+giUACb8GslJYonmaGcQzBsk=; b=dl85nVd8In1yvXL+LnNY3fiEsSuSnwMWiabW/SvYIA9CCpRsn3UUj0B+eMxYkIkYHL obMQWP32bVHdbqJp9oGqvJrljcyw2IWPWsnGHf/cxZcSPlbQpJjHAXHeASSRJem/5i+e +w5n8t8EZaG/bBhz6p7nXqo7hpEYYYlIBcW2vWOIlmWGeIXZsyEmeBfqW5bpww/JI13N lA0qpB0UgRWi91s3M3CcIXM+Izv3NQFuR2bTiPK9kavCi7I86jEbrIipEa0v1X34d1Qf uoWd0cVWj0Rkf4qjcXVIR9AfBz8MCHo5wD+G/MRL5hlUlkVl9wyR5r0IML+xzpfk8wtv KLYA== X-Gm-Message-State: AOJu0Ywd4yItmFk+DM3B5wgSSwjhLv1srQST1X4+s8isddGSnh40mUML pomTuOAmOIIwBt0ETL6mvli1N7EICZ6/kCK38qYPjME38OjllVYQcCIID1oWUg== X-Gm-Gg: ASbGncv7aIIpMj++7s8KPGGJ/QNeoShH4tq2ilw926U44VFoTTo4zZJM932nHv5R7Dj HJn/4p96kQCkZQ3dm8s73DBKilH0swjM5y6DFl0vzItza5Mzp1sKlEgwgQjDTK8Qu9YL03Gp9nF qxl58pjVFRKd1s9fhLPnx0sMa8fITSh6SnSMnPR+H7Nmm5zx4exBe7cf82Jby4gDKYRdP+u/Tnb NhG8WSt2NQQA6Al1eCUSiIMU2Pd4jZ0s1CvlYt2g0Q1UZpB5RyJWhcL3GOjeTSWr+pSLhYFv3zz ti6apKlyRWT/vNX965Q1KGrpcwe7LFMAlIv+uZaBdE9d+U9LpiMXb0kuH/kYFYFz6lYP+TIoLIa iT/pMf/uyPzBf6QxD3u3y X-Google-Smtp-Source: AGHT+IH0g1HE9oJLHkl9G15cbNZHNr3v6J/OS/FcQn58H0/GM6i7mYyxELLbjHJsV6ic1t3Y8lYgMA== X-Received: by 2002:a17:90b:5826:b0:2fe:e9c6:689e with SMTP id 98e67ed59e1d1-3159d64432cmr8586140a91.8.1750480993494; Fri, 20 Jun 2025 21:43:13 -0700 (PDT) Received: from debian-hx90 (syn-076-094-249-045.res.spectrum.com. [76.94.249.45]) by smtp.gmail.com with ESMTPSA id 98e67ed59e1d1-3158a331288sm5995608a91.43.2025.06.20.21.43.12 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Fri, 20 Jun 2025 21:43:12 -0700 (PDT) From: Xiyue Deng To: Sean Whitton Subject: Re: bug#78844: 30.1; feature request: public interface for querying builtin packages and versions In-Reply-To: <87ecveo45m.fsf@zephyr.silentflame.com> References: <878qlnz46j.fsf@debian-qemu> <87ecveo45m.fsf@zephyr.silentflame.com> User-Agent: Notmuch/0.39 (https://notmuchmail.org) Emacs/30.1 (x86_64-pc-linux-gnu) Date: Fri, 20 Jun 2025 21:43:09 -0700 Message-ID: <87zfe1aen6.fsf@debian-hx90.lan> MIME-Version: 1.0 Content-Type: multipart/signed; boundary="==-=-="; micalg=pgp-sha512; protocol="application/pgp-signature" X-Spam-Score: 0.0 (/) X-Debbugs-Envelope-To: 78844 Cc: 78844@debbugs.gnu.org X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -1.0 (-) --==-=-= Content-Type: multipart/mixed; boundary="=-=-=" --=-=-= Content-Type: text/plain Content-Transfer-Encoding: quoted-printable Hi Sean, Sean Whitton writes: > Hello, > > It would be great to stabilise this interface. We would like to add > package system metadata to the Emacs packages in Debian to track all the > built-in packages. We could do various useful things with that. > > Thanks to Xiyue for working on this, both here and over in the Debian > BTS. The sample interface looks good to me. > Thanks for pre-approving! I have attached a draft patch for adding those functions. A slight change is to query `package--builtins' for builtin package names as it contains a larger list of builtin packages that may not have a version defined in `package--builtin-versions'. I also dropped "get" from the function names as it seems not to have been used in the current code base. Also, for completeness, I actually find there is a `package-built-in-p' function for checking built-in packages. But there is no way to get a complete list of builtin packages, so package-builtin-packages is still needed. I also don't check whether a package is builtin in the added `package-builtin-package-version' function and return nil for both non-builtin packages and builtin packages without a version, as we can use `package-built-in-p' to check the former. > [...] =2D-=20 Regards, Xiyue Deng --=-=-= Content-Type: text/x-diff Content-Disposition: attachment; filename=0001-Add-public-interfaces-for-accessing-builtin-package-.patch Content-Transfer-Encoding: quoted-printable From=205c49ede7ab36b2d4870941bd9b0a7cafc706ef2b Mon Sep 17 00:00:00 2001 From: Xiyue Deng Date: Fri, 20 Jun 2025 21:34:45 -0700 Subject: [PATCH] Add public interfaces for accessing builtin package info (Bug#78844) * lisp/emacs-lisp/package.el (package-builtin-packages): Add * lisp/emacs-lisp/package.el (package-builtin-package-version): Add =2D-- lisp/emacs-lisp/package.el | 14 ++++++++++++++ 1 file changed, 14 insertions(+) diff --git a/lisp/emacs-lisp/package.el b/lisp/emacs-lisp/package.el index 82fcf439a11..86606373ac3 100644 =2D-- a/lisp/emacs-lisp/package.el +++ b/lisp/emacs-lisp/package.el @@ -669,6 +669,20 @@ package-alist loaded and/or activated, customize `package-load-list'.") (put 'package-alist 'risky-local-variable t) =20 +;;;; Public interfaces for accessing builtin package info + +(defun package-builtin-packages () + "Return a list of builtin package symbols. +The returned list is not guaranteed to be sorted." + (mapcar #'car package--builtins)) + +(defun package-builtin-package-version (package) + "Return the version-list of PACKAGE (symbol). +The format of the returned version-list is as returned by the +`version-to-list' function. Returns nil if the package is not a builtin +package or does not have a version." + (alist-get package package--builtin-versions)) + ;;;###autoload (defvar package-activated-list nil ;; FIXME: This should implicitly include all builtin packages. =2D-=20 2.47.2 --=-=-=-- --==-=-= Content-Type: application/pgp-signature; name="signature.asc" -----BEGIN PGP SIGNATURE----- iQJGBAEBCgAwFiEEiKQfd6o81mjI+LWALell7WOCXJMFAmhWOF0SHG1hbnBoaXpA Z21haWwuY29tAAoJEC3pZe1jglyT7c4P/2HsG/cxz+Vcz5f5OxqI4FSOutwAEh2u bMsVWhoex0i7TcvACNBOdfDzMb9swNtT5lM1xUpaA31UcHhW1pKdE1Jqz8d5I0yc do3Ywucw6cnACEjiPY6buaptqgVE6Vbd63Fp5gt66KWRPh+LnJKj0cF+H08GMJIw 0pbS+EscVGrMO80Za7JZc3iNo9ltuxNluT6UNAD5e46639Wy+2J+lySerCnIdTmy BIQT9If8ocsV7t4uBId4ZyPUEoZ07gNiZrNI8hrZUhjhFNhj9xxpyqCHuLjk7D0D KtxIzxDa5SNSWrLNSUhuzEXneIQcBfbH1c2JM8dn7re49z7vgd6+0gbt+ULoAA6A BX9dXx1tjTHc+y2L8mLU0AF2SdxKpSE18E5YCytUGcmDA8y67VnNkqOGksOUDkXE qU4fk20kYN1gYbmwznjKM/vdhzHOMNka74XDIul/RzDpaTsknN6Qt0JIIik5Cisn m1Bsf64qAuO3yus+ODjstmA+3xtBfMq1UdTDyKNu1fdfKtOKe0p3NxaymnbRJbSb C9IKd1hqF0zMuEznZRBDqFm6rCXNsPE9Luk0y7ugaBYHmKD2+vP+dtmiMjswyvtv HUwKOS/KSU5z1X5Bu3+cg6xDHePrNooLFn8XLb/lgoNDo5raXixdZsiLkt5avDx/ Bae0EBjgLkYw =zJY0 -----END PGP SIGNATURE----- --==-=-=-- From debbugs-submit-bounces@debbugs.gnu.org Sat Jun 21 03:36:44 2025 Received: (at 78844) by debbugs.gnu.org; 21 Jun 2025 07:36:44 +0000 Received: from localhost ([127.0.0.1]:60869 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1uSsmJ-0007zr-V7 for submit@debbugs.gnu.org; Sat, 21 Jun 2025 03:36:44 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]:53618) by debbugs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.84_2) (envelope-from ) id 1uSsmH-0007yr-LY for 78844@debbugs.gnu.org; Sat, 21 Jun 2025 03:36:42 -0400 Received: from fencepost.gnu.org ([2001:470:142:3::e]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1uSsmB-0004eh-BO; Sat, 21 Jun 2025 03:36:35 -0400 DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=gnu.org; s=fencepost-gnu-org; h=References:Subject:In-Reply-To:To:From:Date: mime-version; bh=EK+AoeJhHA4euZ1V3X2uADaULW9IhGpBkFJXYJmoPBY=; b=S8EhaihmX3Zo Tv4gaog7HpQ2EGhWGegTem2PIW/5lGpNTMN0+fJB2Suaqwja5GoSigOVnNYwq1pNEAtCht+mI8pXC bQ2lgVYYS/LMpgHnwIAeNDQotLzYBAbq4o8PBVFd2jmPaV75qV5RRjlgMPb1Kn/vQt5XiEGABGKpZ y4haoH9ID+msjr4+j76BEnw67jriSkYaGeZUiLHYFlSVQmVnL48dY/MTFEYBY/J0xkDfe2NrkkRXg haX4Cj82/V1EQer6jbzXqDgc2obl4tbeHF8LjS1ckF/bJ0p8SbT9FtcXfhwpzjP+aeTvbb5gi1ZuA 5XXHXDKztzVfJd5ZEFPC4g==; Date: Sat, 21 Jun 2025 10:36:28 +0300 Message-Id: <86h609k0lf.fsf@gnu.org> From: Eli Zaretskii To: Xiyue Deng , Stefan Monnier , Philip Kaludercic In-Reply-To: <87zfe1aen6.fsf@debian-hx90.lan> (message from Xiyue Deng on Fri, 20 Jun 2025 21:43:09 -0700) Subject: Re: bug#78844: 30.1; feature request: public interface for querying builtin packages and versions References: <878qlnz46j.fsf@debian-qemu> <87ecveo45m.fsf@zephyr.silentflame.com> <87zfe1aen6.fsf@debian-hx90.lan> X-Spam-Score: -2.3 (--) X-Debbugs-Envelope-To: 78844 Cc: 78844@debbugs.gnu.org, spwhitton@spwhitton.name X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -3.3 (---) > Cc: 78844@debbugs.gnu.org > From: Xiyue Deng > Date: Fri, 20 Jun 2025 21:43:09 -0700 > > Hi Sean, > > Sean Whitton writes: > > > Hello, > > > > It would be great to stabilise this interface. We would like to add > > package system metadata to the Emacs packages in Debian to track all the > > built-in packages. We could do various useful things with that. > > > > Thanks to Xiyue for working on this, both here and over in the Debian > > BTS. The sample interface looks good to me. > > > > Thanks for pre-approving! I have attached a draft patch for adding > those functions. A slight change is to query `package--builtins' for > builtin package names as it contains a larger list of builtin packages > that may not have a version defined in `package--builtin-versions'. I > also dropped "get" from the function names as it seems not to have been > used in the current code base. > > Also, for completeness, I actually find there is a `package-built-in-p' > function for checking built-in packages. But there is no way to get a > complete list of builtin packages, so package-builtin-packages is still > needed. I also don't check whether a package is builtin in the added > `package-builtin-package-version' function and return nil for both > non-builtin packages and builtin packages without a version, as we can > use `package-built-in-p' to check the former. Thanks, I added the relevant individuals to this discussion. From debbugs-submit-bounces@debbugs.gnu.org Sun Jun 22 17:52:04 2025 Received: (at 78844) by debbugs.gnu.org; 22 Jun 2025 21:52:05 +0000 Received: from localhost ([127.0.0.1]:49943 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1uTSbb-0002Kn-7R for submit@debbugs.gnu.org; Sun, 22 Jun 2025 17:52:04 -0400 Received: from mail-pl1-x62e.google.com ([2607:f8b0:4864:20::62e]:59406) by debbugs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.84_2) (envelope-from ) id 1uTSbX-0002Ix-Px for 78844@debbugs.gnu.org; Sun, 22 Jun 2025 17:52:00 -0400 Received: by mail-pl1-x62e.google.com with SMTP id d9443c01a7336-23526264386so38968155ad.2 for <78844@debbugs.gnu.org>; Sun, 22 Jun 2025 14:51:59 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1750629113; x=1751233913; darn=debbugs.gnu.org; h=mime-version:message-id:date:user-agent:references:in-reply-to :subject:cc:to:from:from:to:cc:subject:date:message-id:reply-to; bh=inb8tEkp/rswf1spCVKw+qw+6/AXeRtN+xLyH9wwgiI=; b=KAOVAbKj1YZ7C5gL4MhWe5aFbFChhWYLzLlCKiuCbMc/jlMaVzaOchVw9X0DY3fIC4 IHUtezL5Fec8ONi1EWmSxBUvM/pEPUMp/AGYKCwaVa/DsK2+PnT4/gCtTnkR3VV2MeuX OqNWm3W1c3HCFYOJwNE7qkR3XMuj2W35XKjLpTQRzXC12mkS0df1+LRD4KVTJr7xGlTx 6pHTPZN5sIRFri93cZ3myo399t7w1iEpeSBnEslJ0Q1SDJnbCHcbGVw9huvjeNpbtdxa Q0Q01zYNp69DNFbgqbHqAqB+UlbatdVyexE47EqoHz/iBsnxpXNpGmEmA9M23gydCTnl /oCw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1750629113; x=1751233913; h=mime-version:message-id:date:user-agent:references:in-reply-to :subject:cc:to:from:x-gm-message-state:from:to:cc:subject:date :message-id:reply-to; bh=inb8tEkp/rswf1spCVKw+qw+6/AXeRtN+xLyH9wwgiI=; b=SR6xKjuj2F7zHws/xdYPdtNFqodaZYftNRA2fGbbmFBc0jCa6QbTMo595VnK53TLUj EOSd7xdjEYqS9BBCydZ1AwuMro9I6I9UoMh0ByVwaX44bhYqmMxeFFMu8ZW++FzY8mn8 OaE8iRYR9TMmDZpEoi5LylfrNOa5UbuEOOGIvR6nOlSXWrB+cskkBelEMN8iKIuaQK5Z papB/ItdE0WqMS13EIJRid50be3EzacJAZyRLguyJedpwaKmk1W2mDPaNY+UK0gLqqdT VnYDuUkCCzpzW2C8CZEvewlrbNLRKJ6Eq78bVo4e1ThnaaFZ3xCkgqu1yRX10B7Fjdzl VAhg== X-Forwarded-Encrypted: i=1; AJvYcCXbp5HSZ97hUq1Bm6EOYJdU8vDPzcHIWgIsY8JycwffPP46N6qkobmaoLKCT54HwgRIpo8oYg==@debbugs.gnu.org X-Gm-Message-State: AOJu0Yz+MhoXVCJncLQCpKceHLhPtac8DIrXiWgigMQYiNRlVPMMcYof g2Pppb0XFZgCRI3khlHC0ddb/Od89fGZl9Fw3ny8KCAZoKXZdG96aNYYmgviIQ== X-Gm-Gg: ASbGnct1iG/RB8RsA1bh3N6Ab6yKugeAe2QIgOp0fJ4OcbFB94ir3nwK6QFA9wyCCY/ g8uRmhx60uk2dVqkklTUKjw7INJKQ2c3YUmLfWOF0lJ9O6vr8gZQBNdZQZV4u2xRs6zJo75rcpd 0LHRHjYVHODVElsjQWs3wFt6bVZw+b/1mIdCTvtpXos4OJfthcHR+sBZvn+PMpq0AN8M3I/sIcB vU5BIDggeGR78k9kaYjw1tnP4JANNFHIz/vLpEQx5ddy2H3Y6vT14A6STdKnG5tv6EkltT4vvbu e6Zt8z9AXAVx6HoN8AoPLyB8Z0MnZ8XPrKlveP0Xv2kvUHrS/sg2QeaxcWh5DSCZizuHlrNr7kS dRtEvY4kdGrzo7dw4yMJQ5IxUW/DbbcI= X-Google-Smtp-Source: AGHT+IEhOe8U4Iv3WraC1hQ2QX/YQiL5dSZf0MqUOO7GS17xHIwMpgH35AZGY2XJWa5Lv2JJA4vSjA== X-Received: by 2002:a17:902:e5c9:b0:235:1b91:9079 with SMTP id d9443c01a7336-237d991ec7fmr179328405ad.32.1750629112684; Sun, 22 Jun 2025 14:51:52 -0700 (PDT) Received: from debian-hx90 (syn-076-094-249-045.res.spectrum.com. [76.94.249.45]) by smtp.gmail.com with ESMTPSA id d9443c01a7336-237d8393741sm66245485ad.15.2025.06.22.14.51.51 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Sun, 22 Jun 2025 14:51:51 -0700 (PDT) From: Xiyue Deng To: Eli Zaretskii , Stefan Monnier , Philip Kaludercic Subject: Re: bug#78844: 30.1; feature request: public interface for querying builtin packages and versions In-Reply-To: <86h609k0lf.fsf@gnu.org> References: <878qlnz46j.fsf@debian-qemu> <87ecveo45m.fsf@zephyr.silentflame.com> <87zfe1aen6.fsf@debian-hx90.lan> <86h609k0lf.fsf@gnu.org> User-Agent: Notmuch/0.39 (https://notmuchmail.org) Emacs/30.1 (x86_64-pc-linux-gnu) Date: Sun, 22 Jun 2025 14:51:48 -0700 Message-ID: <87wm93a1hn.fsf@debian-hx90.lan> MIME-Version: 1.0 Content-Type: multipart/signed; boundary="=-=-="; micalg=pgp-sha512; protocol="application/pgp-signature" X-Spam-Score: 0.0 (/) X-Debbugs-Envelope-To: 78844 Cc: 78844@debbugs.gnu.org, spwhitton@spwhitton.name X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -1.0 (-) --=-=-= Content-Type: text/plain Content-Transfer-Encoding: quoted-printable Eli Zaretskii writes: >> Cc: 78844@debbugs.gnu.org >> From: Xiyue Deng >> Date: Fri, 20 Jun 2025 21:43:09 -0700 >>=20 >> Hi Sean, >>=20 >> Sean Whitton writes: >>=20 >> > Hello, >> > >> > It would be great to stabilise this interface. We would like to add >> > package system metadata to the Emacs packages in Debian to track all t= he >> > built-in packages. We could do various useful things with that. >> > >> > Thanks to Xiyue for working on this, both here and over in the Debian >> > BTS. The sample interface looks good to me. >> > >>=20 >> Thanks for pre-approving! I have attached a draft patch for adding >> those functions. A slight change is to query `package--builtins' for >> builtin package names as it contains a larger list of builtin packages >> that may not have a version defined in `package--builtin-versions'. I >> also dropped "get" from the function names as it seems not to have been >> used in the current code base. >>=20 >> Also, for completeness, I actually find there is a `package-built-in-p' >> function for checking built-in packages. But there is no way to get a >> complete list of builtin packages, so package-builtin-packages is still >> needed. I also don't check whether a package is builtin in the added >> `package-builtin-package-version' function and return nil for both >> non-builtin packages and builtin packages without a version, as we can >> use `package-built-in-p' to check the former. > > Thanks, I added the relevant individuals to this discussion. Thanks Eli! One thing I noticed when testing was that `package--builtins' was not populated on startup. According to the doc, the value is initialized when `finder-inf' is loaded. Locally I just use `(require 'finder-inf)' before using `package--builtins' as a workaround. Is there a better way? =2D-=20 Regards, Xiyue Deng --=-=-= Content-Type: application/pgp-signature; name="signature.asc" -----BEGIN PGP SIGNATURE----- iQJGBAEBCgAwFiEEiKQfd6o81mjI+LWALell7WOCXJMFAmhYevQSHG1hbnBoaXpA Z21haWwuY29tAAoJEC3pZe1jglyTjpQP/jGjmJE7hni1IQHTzDg5XxPHaRg+auGN LVToe2cUvJQ++Wq2hQA2R+ZM9mtnbXgaHXqifhNdwe13Vz+w7TZr2BUe0TQspOO0 lPIeeLrtVayfNOO1QXo53qEhDASqVBrZpr6wNYgVTLSoCcsI2qtT2neVdv02g4hE 4EwwV2v0eRoqwSGtuQVG3usbNQoxNtslCu9XUdy2bUU7XY43euDS+Ul8pFrjUmet Q56C5JZzwrNe6L5tMaRs28//ZBK4kKogU371KsZ/+Qdxryp29IK2yYhrbAShBpul RvoEjSTpG3mm1sRy6gQxHmlHfbZUjtowp6LtvZVvyYNhjaw1N0waqFDImWHYt2Zu oIxNnQudn2bR6G08k2/ripWwBzePaQohilZO2fTKQRVBYswiwR33l6p0xcNFJ4iP U7J/x+qH+3nptBcOXUnY2gt53VPCvyczgtDKw/lfi24hjkdKcl6HwgeXvL3HuewC HlL/mmb1emt6iz4xpn71OFMUhYO6vpfcvOcJdHkW+BZ4IbASG6kq8npbCykwDv3K CIW/hZ8H6DoHbUW+nP53iLlv4C1feqfL0mZRp1gPC9BnC17oRHWB/ttso2T3cZSC Wl+eB03ZxH87At0fzRJ63hyN3/sQq9I/kOE8qMM9S2p3AnZoGTuybKDnTng0Fnrh KZYRp0YdKkE7 =zpPh -----END PGP SIGNATURE----- --=-=-=-- From debbugs-submit-bounces@debbugs.gnu.org Tue Jun 24 15:13:50 2025 Received: (at 78844) by debbugs.gnu.org; 24 Jun 2025 19:13:50 +0000 Received: from localhost ([127.0.0.1]:49044 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1uU95a-0005Sa-8n for submit@debbugs.gnu.org; Tue, 24 Jun 2025 15:13:50 -0400 Received: from mailscanner.iro.umontreal.ca ([132.204.25.50]:59571) by debbugs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.84_2) (envelope-from ) id 1uU95W-0005R5-Bk for 78844@debbugs.gnu.org; Tue, 24 Jun 2025 15:13:47 -0400 Received: from pmg1.iro.umontreal.ca (localhost.localdomain [127.0.0.1]) by pmg1.iro.umontreal.ca (Proxmox) with ESMTP id 8B3F91000BC; Tue, 24 Jun 2025 15:13:39 -0400 (EDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=iro.umontreal.ca; s=mail; t=1750792418; bh=p3zyf6sDTMNPsKAU81hc7JYD9pAqrgndOzS747yycHk=; h=From:To:Cc:Subject:In-Reply-To:References:Date:From; b=Pc3J3dQ4UlekUSwXP4erdi2vLMzUsIVBuKQDGzHCEDxSF4SIbpnM5h+FdfRWw3m/X Bo6W/mx35jB5xOwGT5QWjvP/1/hMN//WuvqymHWHWYjxNRwHnMiyrCKs+7ok0Mef0Y TMLUU+LDauwSEZY1iksvXppEq7A80yPXq6fzp73CLwsf3vqHevAluj5ecLEtiZWK+e IgZR1B5WeeCLyQG5aHdMHF7X0fPpHI6mtUZyPjcQGVH6TkWJOLtDo1saiPB3Lnjyhe aa69VYnue17Kx5VwRtod08OVeXKZVhYToTX7LS+/NNQS/aOpqyln0Z0za8lCqeU1ib ovooizysiIEEg== Received: from mail01.iro.umontreal.ca (unknown [172.31.2.1]) by pmg1.iro.umontreal.ca (Proxmox) with ESMTP id A8DE4100029; Tue, 24 Jun 2025 15:13:38 -0400 (EDT) Received: from pastel (unknown [104.247.225.139]) by mail01.iro.umontreal.ca (Postfix) with ESMTPSA id 7E4861202C1; Tue, 24 Jun 2025 15:13:38 -0400 (EDT) From: Stefan Monnier To: Xiyue Deng Subject: Re: bug#78844: 30.1; feature request: public interface for querying builtin packages and versions In-Reply-To: <87zfe1aen6.fsf@debian-hx90.lan> Message-ID: References: <878qlnz46j.fsf@debian-qemu> <87ecveo45m.fsf@zephyr.silentflame.com> <87zfe1aen6.fsf@debian-hx90.lan> Date: Tue, 24 Jun 2025 15:13:37 -0400 User-Agent: Gnus/5.13 (Gnus v5.13) MIME-Version: 1.0 Content-Type: text/plain X-SPAM-INFO: Spam detection results: 0 ALL_TRUSTED -1 Passed through trusted hosts only via SMTP AWL -0.317 Adjusted score from AWL reputation of From: address BAYES_00 -1.9 Bayes spam probability is 0 to 1% DKIM_SIGNED 0.1 Message has a DKIM or DK signature, not necessarily valid DKIM_VALID -0.1 Message has at least one valid DKIM or DK signature DKIM_VALID_AU -0.1 Message has a valid DKIM or DK signature from author's domain DKIM_VALID_EF -0.1 Message has a valid DKIM or DK signature from envelope-from domain X-SPAM-LEVEL: X-Spam-Score: -2.3 (--) X-Debbugs-Envelope-To: 78844 Cc: 78844@debbugs.gnu.org, Sean Whitton X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -3.3 (---) > Thanks for pre-approving! I have attached a draft patch for adding > those functions. A slight change is to query `package--builtins' for > builtin package names as it contains a larger list of builtin packages > that may not have a version defined in `package--builtin-versions'. Normally, all the names in `package--builtins` that are not in `package--builtin-versions` are for packages which exist only within Emacs (and the meaning of "package" tends to be rather poorly defined for them), so I'm not sure we want to go there. It has not been designed for dependency checking, but only to help users find useful packages among those bundled with Emacs, IOW it's meant for human consumption, not machine consumption. `package--builtin-versions' is much more reliable and meaningful, in comparison. > Also, for completeness, I actually find there is > a `package-built-in-p' function for checking built-in packages. > But there is no way to get a complete list of builtin packages, so > package-builtin-packages is still needed. What is the use case for getting a list? AFAICT in your example scenario of a package depending on Org-9.7, you just need to check the version of that one builtin package. > I also don't check whether a package is builtin in the added > `package-builtin-package-version' function and return nil for both > non-builtin packages and builtin packages without a version, as we can > use `package-built-in-p' to check the former. I don't understand what you mean. The code I see looks up `package--builtin-versions` so it knows that the package is builtin. What am I missing? Stefan From debbugs-submit-bounces@debbugs.gnu.org Tue Jun 24 15:54:50 2025 Received: (at 78844) by debbugs.gnu.org; 24 Jun 2025 19:54:50 +0000 Received: from localhost ([127.0.0.1]:49698 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1uU9jG-00021x-Bz for submit@debbugs.gnu.org; Tue, 24 Jun 2025 15:54:50 -0400 Received: from mail-pl1-x62e.google.com ([2607:f8b0:4864:20::62e]:44202) by debbugs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.84_2) (envelope-from ) id 1uU9jC-00020q-VG for 78844@debbugs.gnu.org; Tue, 24 Jun 2025 15:54:48 -0400 Received: by mail-pl1-x62e.google.com with SMTP id d9443c01a7336-23602481460so10429885ad.0 for <78844@debbugs.gnu.org>; Tue, 24 Jun 2025 12:54:46 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1750794880; x=1751399680; darn=debbugs.gnu.org; h=mime-version:message-id:date:user-agent:references:in-reply-to :subject:cc:to:from:from:to:cc:subject:date:message-id:reply-to; bh=CiQbX32JwyQvInL04pu/mEjexQW6UlMwBARGc2E0nMg=; b=hyMK3WimuSV6KV1+eqqT28ByIbSDSJvi1BnsrSz8j99fnhDHOuwmZVMWSLP6+j0NOj iEualvh2C06mkOT+NxpSLM0ofJ2vorro6G/Xiu+Z4zBnXn4xxMgs5k8PcldOt/5uXT4M O4JoNX5ocTZhRYA/nZAcw3hDdoeYHeM0UlBYFp6zY/3G8jND0jZVPENbHNXS/5t/disL Kxf0BJX72oKqtAXjW579dyulDA8ELqknqQKfYwBYJ1bYumjd7DLWlTj5xM7D+iiHcmMm j8CXbJQb3qmRgZ62tI0+iRq3zuYLC0CLUB3+2Qe4/PBCYQmljd6WyvBGDoVsTGxAaSVO IdxQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1750794880; x=1751399680; h=mime-version:message-id:date:user-agent:references:in-reply-to :subject:cc:to:from:x-gm-message-state:from:to:cc:subject:date :message-id:reply-to; bh=CiQbX32JwyQvInL04pu/mEjexQW6UlMwBARGc2E0nMg=; b=MTVAlbN75+Nzv6VCRV//g1pw6zo2tazinZJCG2IWjD0S7LcKsAMloY7HLAKS26vzjF 2MpnYd4lFjYYQbkphfv7ITCYTKZZUb9EleI0fD8JKz0lK/yWOUDXIDlaD2aCCe0ddeae eH/XRoYJBq+/rssDX3FcL6Qbw6loaXbxM6sRuf6lqLDn4XtUvPWXs9AmSLSEqNjXVpZT R7WuphXuSB8vl+hU+Ye2rOvpBffG8vhkaZW/G/k/IHahx+eg9xI0Hck1KnB/g1RlXUuF rK9GqBysDv4CQl8eEfFKzNvIp7EtffzTVw/vifaGpq8c+tRE5Ej0bHmjYs35j+K7P688 tQRQ== X-Forwarded-Encrypted: i=1; AJvYcCXTGOAiEeGeEHmiljfOXECI/0DIkWJl/Sbs6a7KHMs7HztfDvOtOMcS1jVsKa83HJZph+Jk8w==@debbugs.gnu.org X-Gm-Message-State: AOJu0Yydhs/5hc/C+uYE7E5sSiXH0BRCaJ6nyieBWC6rCnXB5oYCC8zb RPJmuFEwFp6HnC93gLk4rMijjh8lKYcf/EvuePqYO7DYKe+zOjtTSJZiuyE/Ng== X-Gm-Gg: ASbGncu3USI5lqVYu4dXcGvowOK1AmNUOW6hreaHNcKI0i2eTLvcGWPL6MgeIFoUOI0 lg992pMluFQH9TBNJ6WUWaQ0d7HN3/EepnqGMewMDCnhFVK08JRASXPQ6mIm9VadcDfoF5idYiC WOBnlaE6+t2UN2l5iFLx6f7/pE4UbC5VSmqfeK079JolerevW8V2HiuLr1BjzHx2zisHRFECs4i ietnLsiUFJVL0EvPKOMFvs7+J+QWko8CB2KEWVlfCBlXvNGZo/sq2l17iMwzB/UiHevlOsA4DDp QkzQQ4fD8/pPNNHmtAPEMtgpCAljfvv9oaAH/F02P4q8mHKJ4eljhmJiDFIJEpz1W/YpPq8D3cr KlWBvaPUPGH5MrkTlGdp9Tto8IUi1DX4= X-Google-Smtp-Source: AGHT+IEfLWZY24sN0h7GiIDYCg6+YKnK5sBi9Un0hDi6d2JKx63zzba82CnzHc3qWpUp6ofY3gKEHw== X-Received: by 2002:a17:903:18e:b0:235:ea0d:ae23 with SMTP id d9443c01a7336-238245455f4mr6245935ad.6.1750794880471; Tue, 24 Jun 2025 12:54:40 -0700 (PDT) Received: from debian-hx90 (syn-076-094-249-045.res.spectrum.com. [76.94.249.45]) by smtp.gmail.com with ESMTPSA id d9443c01a7336-237d839618esm118958785ad.33.2025.06.24.12.54.39 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 24 Jun 2025 12:54:39 -0700 (PDT) From: Xiyue Deng To: Stefan Monnier Subject: Re: bug#78844: 30.1; feature request: public interface for querying builtin packages and versions In-Reply-To: References: <878qlnz46j.fsf@debian-qemu> <87ecveo45m.fsf@zephyr.silentflame.com> <87zfe1aen6.fsf@debian-hx90.lan> User-Agent: Notmuch/0.39 (https://notmuchmail.org) Emacs/30.1 (x86_64-pc-linux-gnu) Date: Tue, 24 Jun 2025 12:54:36 -0700 Message-ID: <87jz50apab.fsf@debian-hx90.lan> MIME-Version: 1.0 Content-Type: multipart/signed; boundary="=-=-="; micalg=pgp-sha512; protocol="application/pgp-signature" X-Spam-Score: 0.0 (/) X-Debbugs-Envelope-To: 78844 Cc: 78844@debbugs.gnu.org, Sean Whitton X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -1.0 (-) --=-=-= Content-Type: text/plain Content-Transfer-Encoding: quoted-printable Hi Stefan, Stefan Monnier writes: >> Thanks for pre-approving! I have attached a draft patch for adding >> those functions. A slight change is to query `package--builtins' for >> builtin package names as it contains a larger list of builtin packages >> that may not have a version defined in `package--builtin-versions'. > > Normally, all the names in `package--builtins` that are not in > `package--builtin-versions` are for packages which exist only within > Emacs (and the meaning of "package" tends to be rather poorly defined > for them), so I'm not sure we want to go there. It has not been > designed for dependency checking, but only to help users find useful > packages among those bundled with Emacs, IOW it's meant for human > consumption, not machine consumption. > > `package--builtin-versions' is much more reliable and meaningful, > in comparison. > Ack. I was puzzled by the relationship between `package--builtins' and `package--builtin-versions'. It looks like the latter is exactly for our use case. >> Also, for completeness, I actually find there is >> a `package-built-in-p' function for checking built-in packages. >> But there is no way to get a complete list of builtin packages, so >> package-builtin-packages is still needed. > > What is the use case for getting a list? > > AFAICT in your example scenario of a package depending on Org-9.7, you > just need to check the version of that one builtin package. > This is mainly used for external tooling. Having a list of bundled/builtin packages and versions can help distribution package manager, e.g. APT in Debian, to manage dependencies easier (as mentioned in my first email). We need to generate the package information and store it in the Debian package info for those tools to use as they cannot query Emacs in runtime. >> I also don't check whether a package is builtin in the added >> `package-builtin-package-version' function and return nil for both >> non-builtin packages and builtin packages without a version, as we can >> use `package-built-in-p' to check the former. > > I don't understand what you mean. The code I see looks up > `package--builtin-versions` so it knows that the package > is builtin. What am I missing? > Sorry I was a bit unclear. There are packages that are in `package--builtins' but not in `package--builtin-versions', so technically there are packages that are builtin but without a version. So in my draft implementation I didn't distinguish whether a given package is not builtin (not in both package--* variables) or is builtin but didn't have a version. Now that it was clear that we should just depend on `package--builtin-versions' this is no longer an issue (also the question I had in my last email is resolve now that we don't use `package--builtins' anymore). > > Stefan > =2D-=20 Regards, Xiyue Deng --=-=-= Content-Type: application/pgp-signature; name="signature.asc" -----BEGIN PGP SIGNATURE----- iQJGBAEBCgAwFiEEiKQfd6o81mjI+LWALell7WOCXJMFAmhbAnwSHG1hbnBoaXpA Z21haWwuY29tAAoJEC3pZe1jglyTMeYP/03qfs+/A/A9bp1s8TpcXVo01jpOT2Ea /hyD0TCMoJlxw6C+LTt/XJaerVOkl/E/u7GU76Lq89K0lwV/Ed9OCd38YCZ7cGfJ +F3rGShIXatXUysKiDZiI6JaXgBV/a7aY5dUH9FjnB83i38Gtx8myvs6NopJe4Y5 og2hWoE93yNFCvy/2nzuyj16Q2YMGwIYOxABBfq8+6TsUbXgkbSNf4zNmYRNc2p4 SQpKScefS5/8aOHbRlGr0cRX4M0WuAsr65V3T1KIZdGsfBc2RD59e0aPE5Ai9DXh zNxgyIHIgncqEVixO2t0CEmS1fBG9awyDwVNBw1VaFEfI5ollmr6tlfDtSm+kUzE GL7rvpB4olq6+LOydQRF3ge4+pVCUpQOhGi30/p18AuGOM+m8SNHbz+QzKIWg3eW qU0L5bH9tL03wRaAw9K1HA+YTUKMGsIS3dhVxcGEtSN6RkM0WX2YjufnOF7kzQvE 1v7dTV0++c9HwjMHvCNUvEwCbup8lZVSdLuHX2R3uI7Hka3c4Ofb9/kA8SgHLT/X 3semJbZmEFzlVngf3q8VzPaKSm36zVm2DFcBPs1ytlB//LJKEqZhWbSOwT9IoRFS jWKD1hHwhkklpAVc9ooZ2R6Y0gifLj4Est/IlXzdGUs6TenkZ1cpK7i8xwhmU49G Hoby/u7c0pwH =l+yI -----END PGP SIGNATURE----- --=-=-=-- From debbugs-submit-bounces@debbugs.gnu.org Tue Jun 24 16:26:17 2025 Received: (at 78844) by debbugs.gnu.org; 24 Jun 2025 20:26:18 +0000 Received: from localhost ([127.0.0.1]:50184 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1uUADg-00066x-N8 for submit@debbugs.gnu.org; Tue, 24 Jun 2025 16:26:17 -0400 Received: from mailscanner.iro.umontreal.ca ([132.204.25.50]:30821) by debbugs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.84_2) (envelope-from ) id 1uUADa-00065h-Od for 78844@debbugs.gnu.org; Tue, 24 Jun 2025 16:26:14 -0400 Received: from pmg1.iro.umontreal.ca (localhost.localdomain [127.0.0.1]) by pmg1.iro.umontreal.ca (Proxmox) with ESMTP id DF0ED1000BC; Tue, 24 Jun 2025 16:26:04 -0400 (EDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=iro.umontreal.ca; s=mail; t=1750796763; bh=TXItMJS+O59C8KiGDOApciTv/w+M2jH7J6BT7kYmyYg=; h=From:To:Cc:Subject:In-Reply-To:References:Date:From; b=DhLFU6rRODeET5n9hyfjWr8yOfB/pJRyewzg66YwIi66WLH1A8rKxO5n13cXZzse0 tLp+5byohOc2FyWsp6d3YDt8cq82SAU1P7eLGt+EQcwyh9Y+lMnnxKyCAJO+B9xHWN rxHF8HtAxUw1gClvG6QqTUXJ/1Wv3KHvx1byqR2m4aVTGvOhzQl3rAd9OanV5Y9gpY 1zBlRYVyCHNvIcRat5LoGRY33/LS7HjT39q/CjyR4hYx38rCWXscbwbCQfSpLXmIXw HeSCzDi/pIfEEKMc6e6yMMgSRraVj7nMKpm1FyoljQTuFGzGe1d/Kc79X/UP1PhkX4 NfGDMI0B6ZE9Q== Received: from mail01.iro.umontreal.ca (unknown [172.31.2.1]) by pmg1.iro.umontreal.ca (Proxmox) with ESMTP id 6C2DD100029; Tue, 24 Jun 2025 16:26:03 -0400 (EDT) Received: from pastel (unknown [104.247.225.139]) by mail01.iro.umontreal.ca (Postfix) with ESMTPSA id 39AF2120372; Tue, 24 Jun 2025 16:26:03 -0400 (EDT) From: Stefan Monnier To: Xiyue Deng Subject: Re: bug#78844: 30.1; feature request: public interface for querying builtin packages and versions In-Reply-To: <87jz50apab.fsf@debian-hx90.lan> Message-ID: References: <878qlnz46j.fsf@debian-qemu> <87ecveo45m.fsf@zephyr.silentflame.com> <87zfe1aen6.fsf@debian-hx90.lan> <87jz50apab.fsf@debian-hx90.lan> Date: Tue, 24 Jun 2025 16:26:02 -0400 User-Agent: Gnus/5.13 (Gnus v5.13) MIME-Version: 1.0 Content-Type: text/plain X-SPAM-INFO: Spam detection results: 0 ALL_TRUSTED -1 Passed through trusted hosts only via SMTP AWL -0.316 Adjusted score from AWL reputation of From: address BAYES_00 -1.9 Bayes spam probability is 0 to 1% DKIM_SIGNED 0.1 Message has a DKIM or DK signature, not necessarily valid DKIM_VALID -0.1 Message has at least one valid DKIM or DK signature DKIM_VALID_AU -0.1 Message has a valid DKIM or DK signature from author's domain DKIM_VALID_EF -0.1 Message has a valid DKIM or DK signature from envelope-from domain X-SPAM-LEVEL: X-Spam-Score: -2.3 (--) X-Debbugs-Envelope-To: 78844 Cc: 78844@debbugs.gnu.org, Sean Whitton X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -3.3 (---) > This is mainly used for external tooling. Having a list of > bundled/builtin packages and versions can help distribution package > manager, e.g. APT in Debian, to manage dependencies easier (as mentioned > in my first email). We need to generate the package information and > store it in the Debian package info for those tools to use as they > cannot query Emacs in runtime. Ah, I see, so you really want to export the whole of `package--builtin-versions` rather than just the list of builtin packages. This way you can later test for specific packages and/or versions without running Emacs (modulo compatibility between Emacs's notion of ordering between versions and that of what your external tool uses). Stefan From debbugs-submit-bounces@debbugs.gnu.org Tue Jun 24 19:45:46 2025 Received: (at 78844) by debbugs.gnu.org; 24 Jun 2025 23:45:47 +0000 Received: from localhost ([127.0.0.1]:52184 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1uUDKi-0006qG-VL for submit@debbugs.gnu.org; Tue, 24 Jun 2025 19:45:46 -0400 Received: from mail-pj1-x1031.google.com ([2607:f8b0:4864:20::1031]:57723) by debbugs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.84_2) (envelope-from ) id 1uUDKd-0006oV-NU for 78844@debbugs.gnu.org; Tue, 24 Jun 2025 19:45:42 -0400 Received: by mail-pj1-x1031.google.com with SMTP id 98e67ed59e1d1-306b6ae4fb2so4829576a91.3 for <78844@debbugs.gnu.org>; Tue, 24 Jun 2025 16:45:39 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1750808733; x=1751413533; darn=debbugs.gnu.org; h=mime-version:message-id:date:user-agent:references:in-reply-to :subject:cc:to:from:from:to:cc:subject:date:message-id:reply-to; bh=2qI5RTjNUJSd9yH+eMSVvjjnFX81AWQGygo20Om/C2s=; b=LltxgV7rUFqnzNf59/5M2kaGccCfV8zBJe77xWSF6yoc0c1DxeOmiCyxqhcEGuJn06 24AEV9rqVw3zUiqm/GcsEpp/3y11VdNun3Ar0339I7AdAltSyUPYlGWRxRMqI9bHxXG2 FHV1shZb31H5OIyeWxH2A/5txKOpNIqos9sunfHN5rnIjQD0Q6BUvV3BeNj3z6LDFYAn 8tpVfldGyltkdZ+mJceCa0vugdAGXm7svURrWiLe820FpAEHqCESDweg7VzNW/LUf2Wo /RwqMAswfsCrcIb7bnEi24kzM5NrMM0SLij7cnJrsxCUce9/aqoPrb9TytwCjoFZWyIs 8czg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1750808733; x=1751413533; h=mime-version:message-id:date:user-agent:references:in-reply-to :subject:cc:to:from:x-gm-message-state:from:to:cc:subject:date :message-id:reply-to; bh=2qI5RTjNUJSd9yH+eMSVvjjnFX81AWQGygo20Om/C2s=; b=imKJc10SVVj9AhfmxmPwUbHfCwYeBWDqiv5m+YcjJ+pg0Opvi1iCqztcqkjC4IervB SO3CfFrQJQ8dn3dDSGG/JXYhJJFDs8bHGLf2IrZb/pHv/FQ0Ua3XCI/bf89aXjM+FkGA CSoeqyO5CkooO4Bi45wuTQN7OFt4WX0OFE3pn1mMJKc1YfZRjJCyhF4H1Vv4v1LFbuut +Dx43jzQswPrTn9QS84OKTJcLq1iO/OkTIc1z/l0Ipcjg8gQKSDa42dwjAg6xrymuHXi 1uODIghm2QH1YfCMviy92Dbtu+TXVJu2dA7rFQ9p/+j0SFXQrgXfA72EH/7prM56dL3f Q+gg== X-Forwarded-Encrypted: i=1; AJvYcCVW4z3UHo0Q18Wa9WFcpHy/JqmlzmnaTxiflydGPT3/1sbqA9u8DvNRXgcMPuTo9wxqKB7CWQ==@debbugs.gnu.org X-Gm-Message-State: AOJu0YzhqY1ZY1zWAl4OXxSWyXauviPAip97DMYxv+o9zKWgnEuF1P2D g66TzT/H4KOMLPA+S03LwNDqGWDqZefutR85tpdjM4azy2TGjkMxwtOadxhKow== X-Gm-Gg: ASbGncvkOsR/QPn8ULGZWbTW9zDfgswDl4bkJ1IcGFUt86wMqz6Xm1EidFRTwt58w73 i3sJ+1YbFgoI8SZFcw1ISvRYF+bUdC7Yqk53uf+kq7VSOGbpsMXFVPHb5bNahEsE4qDNosrr92m zV6Bj6kP5LBz3q/39fdX6+bub0gsOawJxHpixdvvEzNXJxZ6m7cBssFUWSYP6klh8XaN04q35+I gkUUyakLKAHzlGF0XYPieP1j90LZiO8VVWQKJmj51o4viKsSs4zDkHaY/WXIflfvmwEds6LM1Vz 8CqT2vPgJHatjq2+jFLB9zI1nsijUOeLeH/tr5UObiLIkoXavVpEclDqLDxds0dGe2w4kRWPaSx KmLfWDOdQOhTZYJt3dbjT X-Google-Smtp-Source: AGHT+IEBtcz7g05isjHglAwvATN+1mgFlI/nqbXiQraHgQ0CTjSWC5zIUtWpJ1SThfCVVBlP65iD1A== X-Received: by 2002:a17:90a:d610:b0:314:2bae:97d7 with SMTP id 98e67ed59e1d1-315f25ecc0cmr1149589a91.15.1750808733150; Tue, 24 Jun 2025 16:45:33 -0700 (PDT) Received: from debian-hx90 (syn-076-094-249-045.res.spectrum.com. [76.94.249.45]) by smtp.gmail.com with ESMTPSA id 98e67ed59e1d1-315f5382eecsm217881a91.6.2025.06.24.16.45.31 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 24 Jun 2025 16:45:32 -0700 (PDT) From: Xiyue Deng To: Stefan Monnier Subject: Re: bug#78844: 30.1; feature request: public interface for querying builtin packages and versions In-Reply-To: References: <878qlnz46j.fsf@debian-qemu> <87ecveo45m.fsf@zephyr.silentflame.com> <87zfe1aen6.fsf@debian-hx90.lan> <87jz50apab.fsf@debian-hx90.lan> User-Agent: Notmuch/0.39 (https://notmuchmail.org) Emacs/30.1 (x86_64-pc-linux-gnu) Date: Tue, 24 Jun 2025 16:45:29 -0700 Message-ID: <878qlgaeli.fsf@debian-hx90.lan> MIME-Version: 1.0 Content-Type: multipart/signed; boundary="===-=-="; micalg=pgp-sha512; protocol="application/pgp-signature" X-Spam-Score: 0.0 (/) X-Debbugs-Envelope-To: 78844 Cc: 78844@debbugs.gnu.org, Sean Whitton X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -1.0 (-) --===-=-= Content-Type: multipart/mixed; boundary="=-=-=" --=-=-= Content-Type: multipart/mixed; boundary="==-=-=" --==-=-= Content-Type: text/plain Content-Disposition: inline Content-Transfer-Encoding: quoted-printable Hi Stefan, Stefan Monnier writes: >> This is mainly used for external tooling. Having a list of >> bundled/builtin packages and versions can help distribution package >> manager, e.g. APT in Debian, to manage dependencies easier (as mentioned >> in my first email). We need to generate the package information and >> store it in the Debian package info for those tools to use as they >> cannot query Emacs in runtime. > > Ah, I see, so you really want to export the whole of > `package--builtin-versions` rather than just the list of builtin > packages. This way you can later test for specific packages and/or > versions without running Emacs (modulo compatibility between Emacs's > notion of ordering between versions and that of what your external tool > uses). > Exactly. Thanks for confirming! Updated patch attached. > > Stefan > =2D-=20 Regards, Xiyue Deng --==-=-= Content-Type: text/x-diff Content-Disposition: attachment; filename=0001-Add-public-interfaces-for-accessing-builtin-package-.patch Content-Transfer-Encoding: quoted-printable From=20fdc99549a581f34fe2d7e6c87b636f3e188a2514 Mon Sep 17 00:00:00 2001 From: Xiyue Deng Date: Fri, 20 Jun 2025 21:34:45 -0700 Subject: [PATCH] Add public interfaces for accessing builtin package info (Bug#78844) * lisp/emacs-lisp/package.el (package-builtin-packages): Add * lisp/emacs-lisp/package.el (package-builtin-package-version): Add =2D-- lisp/emacs-lisp/package.el | 14 ++++++++++++++ 1 file changed, 14 insertions(+) diff --git a/lisp/emacs-lisp/package.el b/lisp/emacs-lisp/package.el index 82fcf439a11..03a03bf4c04 100644 =2D-- a/lisp/emacs-lisp/package.el +++ b/lisp/emacs-lisp/package.el @@ -669,6 +669,20 @@ package-alist loaded and/or activated, customize `package-load-list'.") (put 'package-alist 'risky-local-variable t) =20 +;;;; Public interfaces for accessing built-in package info + +(defun package-builtin-packages () + "Return a list of builtin package symbols. +The returned list is not guaranteed to be sorted." + (mapcar #'car package--builtin-versions)) + +(defun package-builtin-package-version (package) + "Return the version-list of PACKAGE (symbol). +The format of the returned version-list is as returned by the +`version-to-list' function. Returns nil if the package is not a builtin +package or does not have a version." + (alist-get package package--builtin-versions)) + ;;;###autoload (defvar package-activated-list nil ;; FIXME: This should implicitly include all builtin packages. =2D-=20 2.47.2 --==-=-=-- --=-=-=-- --===-=-= Content-Type: application/pgp-signature; name="signature.asc" -----BEGIN PGP SIGNATURE----- iQJGBAEBCgAwFiEEiKQfd6o81mjI+LWALell7WOCXJMFAmhbOJkSHG1hbnBoaXpA Z21haWwuY29tAAoJEC3pZe1jglyTn0sP/2k544+G+LnpIy1bLkS1+XhXqKAZ7MUW /fVfxXjWfzBFPKojodSShBKx5DwtxP2y3SvC2vbLeUbb4kVtymz7j28YJ60GDuYD XnWg1dIT4dQVEwwOYV5ifGrtMLok06u1sPXGQ7pPJfHovA4DrGrXH5H6mLezNB1i a/+Z/RQN2Dtto0rn9qSfBbdipBriP5zXg2VtUufll/1GEQFieN661v839uMRULJn F2MrmaQpVdpPh7iHc3DU7vY+Ec2/cYqz4RRv3mswB+5nYsPFoQzqMd75OGQjAqJy +OHUv24kkwQr//2WGUaGlkGQWwQ5sGW/83u31nyWY4JsWtN7U3j/1BJLLZDSZKUp 3tyN7OnjZVAe5rKtCOmv0x413ByM7luLvIOIvgkZae11X1Jns0+dKLPe7tWYnQIV RtsrRiXVsusUg25kx6YnxHtuTxalfX0+uwOCWU0LguUZqdApKl/o74KjP1+ghc1e ketilC8u2MwafxDL5lBTnXrDv0RXy//54laCuw45y7J1Tq47+E/MWh9E1pIC0svk VqVMGqs3FBiw94DkFoMbk0dEipVvLpQA1U3+izBFigd62k7d6/C4J5g2CFQ1gpBX t1bCnI+h9+nG3WSbAQy2yGldu/qhegWTx4N0gtqqwMRajgHXfM4brVI8CmtcRP6S nH+Sa48OD2FB =Tyhm -----END PGP SIGNATURE----- --===-=-=-- From debbugs-submit-bounces@debbugs.gnu.org Wed Jun 25 05:41:36 2025 Received: (at 78844) by debbugs.gnu.org; 25 Jun 2025 09:41:36 +0000 Received: from localhost ([127.0.0.1]:59826 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1uUMdL-0003LZ-Vh for submit@debbugs.gnu.org; Wed, 25 Jun 2025 05:41:36 -0400 Received: from sendmail.purelymail.com ([34.202.193.197]:43590) by debbugs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.84_2) (envelope-from ) id 1uUMdI-0003KZ-4l for 78844@debbugs.gnu.org; Wed, 25 Jun 2025 05:41:32 -0400 DKIM-Signature: a=rsa-sha256; b=DklDyxfFyVo3gJ59CRWiXozIrr+qpgZR+rLgWnRmDwH3vb/G0kuOd03cE2Ti99dXr92HwCy9h5YltXnoXOUtPyDH/mxnfYetQIZeclU6dN17EPSE+Izay2z0mI+h20GQSnRCmRCxXSk35wlV5Tf9RTTQX3YEti88X4ZIBVpkNoqqfue3RVbjrSjR0WMjjwORvwUs03p3E7QdfkokcFrJXxIh+uaEj1k2PkrDO/tVPiMOQuTRkpwz4UITLskXAPfKjTQycGf3om1gkgrMV/fpO5vl/p4wRTU7+u1yFAXhcZKScsp9YdhiqrObDiXugb7VyuKuclfArc84qDM3THXKqA==; s=purelymail1; d=spwhitton.name; v=1; bh=+5jfH0FpJp3JW9EMvKrYW/1U8OvwKdrVfvI8UGX8opY=; h=Received:Received:From:To:Subject:Date; DKIM-Signature: a=rsa-sha256; b=ZfzhOehyd71PQ7RWQGYTkhTydviswjdKQmJNHHGabvdrdVmFhZWjtK4rF6Z7+4RjE69R4cVTU6IdYqF/bwhzB7ZGtd6Vv9PqsxQxMgPAL4SJZ6IWdRCKd8U4hjuuz9TrniCEIYl0P1CZ0FUecw+Y0j41tLb8I339L0+4zkuO++6w2kmc4Lza0Cj5tWCHO6d5Qw/AoUW3VdnbQcNd2wu1ItYZprxYSebaDurzpQbCNv9JT7z3YltJpw0NI1FBliCdKEWCDJMggDERfaKhE2/r6Gy9Zs0JgWJhpZQSw/R8vOX+YbPyGFXY/snuTokiIi/YVypbJ1bYbeCZXS5KcP1yRQ==; s=purelymail1; d=purelymail.com; v=1; bh=+5jfH0FpJp3JW9EMvKrYW/1U8OvwKdrVfvI8UGX8opY=; h=Feedback-ID:Received:Received:From:To:Subject:Date; Feedback-ID: 20115:3760:null:purelymail X-Pm-Original-To: 78844@debbugs.gnu.org Received: by smtp.purelymail.com (Purelymail SMTP) with ESMTPSA id -913900880; (version=TLSv1.3 cipher=TLS_AES_256_GCM_SHA384); Wed, 25 Jun 2025 09:41:23 +0000 (UTC) Received: by zephyr.silentflame.com (Postfix, from userid 1000) id 8D83C940308; Wed, 25 Jun 2025 10:41:22 +0100 (BST) From: Sean Whitton To: Xiyue Deng , Stefan Monnier , 78844@debbugs.gnu.org Subject: Re: bug#78844: 30.1; feature request: public interface for querying builtin packages and versions In-Reply-To: References: <878qlnz46j.fsf@debian-qemu> <87ecveo45m.fsf@zephyr.silentflame.com> <87zfe1aen6.fsf@debian-hx90.lan> <87jz50apab.fsf@debian-hx90.lan> Date: Wed, 25 Jun 2025 10:41:22 +0100 Message-ID: <87sejodupp.fsf@zephyr.silentflame.com> User-Agent: Gnus/5.13 (Gnus v5.13) MIME-Version: 1.0 Content-Type: text/plain X-Spam-Score: 0.0 (/) X-Debbugs-Envelope-To: 78844 X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -1.0 (-) Hello, On Tue 24 Jun 2025 at 04:26pm -04, Stefan Monnier via "Bug reports for GNU Emacs, the Swiss army knife of text editors" wrote: >> This is mainly used for external tooling. Having a list of >> bundled/builtin packages and versions can help distribution package >> manager, e.g. APT in Debian, to manage dependencies easier (as mentioned >> in my first email). We need to generate the package information and >> store it in the Debian package info for those tools to use as they >> cannot query Emacs in runtime. > > Ah, I see, so you really want to export the whole of > `package--builtin-versions` rather than just the list of builtin > packages. This way you can later test for specific packages and/or > versions without running Emacs (modulo compatibility between Emacs's > notion of ordering between versions and that of what your external tool > uses). We want the Emacs binary package to have "Provides: elpa-org (>= 9.7)" on it. That way it can satisfy a dependency on elpa-org just like the actual elpa-org package can. And so on for all the others. -- Sean Whitton From debbugs-submit-bounces@debbugs.gnu.org Thu Jun 26 13:23:55 2025 Received: (at 78844) by debbugs.gnu.org; 26 Jun 2025 17:23:56 +0000 Received: from localhost ([127.0.0.1]:53326 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1uUqKH-0004AR-Kn for submit@debbugs.gnu.org; Thu, 26 Jun 2025 13:23:55 -0400 Received: from mailscanner.iro.umontreal.ca ([132.204.25.50]:51918) by debbugs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.84_2) (envelope-from ) id 1uUqKE-000496-SZ for 78844@debbugs.gnu.org; Thu, 26 Jun 2025 13:23:51 -0400 Received: from pmg3.iro.umontreal.ca (localhost [127.0.0.1]) by pmg3.iro.umontreal.ca (Proxmox) with ESMTP id AA0884415A4; Thu, 26 Jun 2025 13:23:44 -0400 (EDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=iro.umontreal.ca; s=mail; t=1750958623; bh=4S520QIGWxGEZx4xjXAYvDx/tuYpPWeqb/I6Oe3nq3A=; h=From:To:Cc:Subject:In-Reply-To:References:Date:From; b=YVFQfMEz2Y+j/TPLhucgM6uIdnjyMfmK3/bO4KfBoy3O+Np/DkQ2dTzLS5fznDnpB j1noBkppLrSKjUOwhhLdJKwvUYkrp8i+tMgUomrWgzbO/EtfKJ4U8WkAxhAicNf7Ps 1QAlqiSpT05j8Xiy3iyNTzdKU+Gf2t6Q+IrO7q3abXZrPS0jz7Lh6vbJm09Srkqq43 MimeML0VBeHlE5jI2OhaipmsU4m9j6cFF3gu3uyoBlX9EwrcEw90R8Q0yVJZI0kvyt tCjKlrQjmMziFpYTQzeKIQaUb+O9+f2VLIr+nUblq6mnmcKA6UXEIxLFuT7m8/ohsd qlTrruPlE7blw== Received: from mail01.iro.umontreal.ca (unknown [172.31.2.1]) by pmg3.iro.umontreal.ca (Proxmox) with ESMTP id BC9FD441593; Thu, 26 Jun 2025 13:23:43 -0400 (EDT) Received: from lechazo (lechon.iro.umontreal.ca [132.204.27.242]) by mail01.iro.umontreal.ca (Postfix) with ESMTPSA id A69E31202C1; Thu, 26 Jun 2025 13:23:43 -0400 (EDT) From: Stefan Monnier To: Xiyue Deng Subject: Re: bug#78844: 30.1; feature request: public interface for querying builtin packages and versions In-Reply-To: <878qlgaeli.fsf@debian-hx90.lan> Message-ID: References: <878qlnz46j.fsf@debian-qemu> <87ecveo45m.fsf@zephyr.silentflame.com> <87zfe1aen6.fsf@debian-hx90.lan> <87jz50apab.fsf@debian-hx90.lan> <878qlgaeli.fsf@debian-hx90.lan> Date: Thu, 26 Jun 2025 13:23:35 -0400 User-Agent: Gnus/5.13 (Gnus v5.13) MIME-Version: 1.0 Content-Type: text/plain X-SPAM-INFO: Spam detection results: 0 ALL_TRUSTED -1 Passed through trusted hosts only via SMTP AWL 0.160 Adjusted score from AWL reputation of From: address BAYES_00 -1.9 Bayes spam probability is 0 to 1% DKIM_SIGNED 0.1 Message has a DKIM or DK signature, not necessarily valid DKIM_VALID -0.1 Message has at least one valid DKIM or DK signature DKIM_VALID_AU -0.1 Message has a valid DKIM or DK signature from author's domain DKIM_VALID_EF -0.1 Message has a valid DKIM or DK signature from envelope-from domain X-SPAM-LEVEL: X-Spam-Score: -2.3 (--) X-Debbugs-Envelope-To: 78844 Cc: 78844@debbugs.gnu.org, Sean Whitton X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -3.3 (---) > Exactly. Thanks for confirming! > Updated patch attached. LGTM. Stefan From debbugs-submit-bounces@debbugs.gnu.org Fri Jun 27 05:32:47 2025 Received: (at 78844) by debbugs.gnu.org; 27 Jun 2025 09:32:47 +0000 Received: from localhost ([127.0.0.1]:33359 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1uV5Rt-000147-Cx for submit@debbugs.gnu.org; Fri, 27 Jun 2025 05:32:46 -0400 Received: from sendmail.purelymail.com ([34.202.193.197]:43116) by debbugs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.84_2) (envelope-from ) id 1uV5Ro-00012W-Ek for 78844@debbugs.gnu.org; Fri, 27 Jun 2025 05:32:42 -0400 DKIM-Signature: a=rsa-sha256; b=akt/tDIwQKeG208xVJ3W1Ai3EVtkvQUVs8QZlevPdjcBM2tviPy8ChJ7EOpyyHkx/T0AYnOrpZJoje6JihVHX0lDEzjwpeQR541iPCk2prPqAT5inQzMxo8M+sU5XK66hDwtnu1ol8JvCtyWu0w+gAvwoe08/nk+1pvlQMvaPQRJACIiuP9ZCwgLEY+l89qSVAjzc/DvrAoVOggQ/QJuBaEbYTnPkU/c7ipiUVVMr3wXcCgc9WwHEqPdbGwLDJTjn4/TPv/5evw7OJdT4a4ZMo6PkBDS+5wB4Mzn9GcT7MsTTEc3XZOPTmiDo+r8W104uOBJRRN2E7WNxXkYKBvjSg==; s=purelymail1; d=spwhitton.name; v=1; bh=dWDbjcuFYv2nRtDZlUUsbzjfiqKp09oqRrfpgaFwH8A=; h=Received:Received:From:To:Subject:Date; DKIM-Signature: a=rsa-sha256; b=iqMKnmgGxrpsgVml/HhY81BVrL10dnpY72tw8tDEbpI4rpJfyvkTEu0CtaEK7Weu1VeUIFNma+KlELTKyg3a5V4lOm18uv9ezIyle7sgCDBJZKar1VucNAXElXrBYM39zzU3cfDAkhT08Rt2kMEsLIzgqRb2aiO/5NT5JP0RLwb9Y+XZPXRiL2bJAPyRbMtp6+sBslYIBxWILEGwI39GxfIn6SJBHn8ihp6d/6FzznF4bmHzMi6zki25VcnoSzgIz93gr17cVsIP7bC/uWp+Z3oLsOKzwurMbjD94gezU2JyvoHUD+3JjZhiDCFAjglGPjPBQiadd2cdsnolLp0b7w==; s=purelymail1; d=purelymail.com; v=1; bh=dWDbjcuFYv2nRtDZlUUsbzjfiqKp09oqRrfpgaFwH8A=; h=Feedback-ID:Received:Received:From:To:Subject:Date; Feedback-ID: 20115:3760:null:purelymail X-Pm-Original-To: 78844@debbugs.gnu.org Received: by smtp.purelymail.com (Purelymail SMTP) with ESMTPSA id 386584948; (version=TLSv1.3 cipher=TLS_AES_256_GCM_SHA384); Fri, 27 Jun 2025 09:32:31 +0000 (UTC) Received: by zephyr.silentflame.com (Postfix, from userid 1000) id 7FA5B9400A3; Fri, 27 Jun 2025 10:32:29 +0100 (BST) From: Sean Whitton To: Xiyue Deng Subject: Re: bug#78844: 30.1; feature request: public interface for querying builtin packages and versions In-Reply-To: <878qlgaeli.fsf@debian-hx90.lan> References: <878qlnz46j.fsf@debian-qemu> <87ecveo45m.fsf@zephyr.silentflame.com> <87zfe1aen6.fsf@debian-hx90.lan> <87jz50apab.fsf@debian-hx90.lan> <878qlgaeli.fsf@debian-hx90.lan> Date: Fri, 27 Jun 2025 10:32:29 +0100 Message-ID: <874iw1a5si.fsf@zephyr.silentflame.com> User-Agent: Gnus/5.13 (Gnus v5.13) MIME-Version: 1.0 Content-Type: text/plain X-Spam-Score: 0.0 (/) X-Debbugs-Envelope-To: 78844 Cc: 78844@debbugs.gnu.org, Stefan Monnier X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -1.0 (-) Hello Xiyue, Please add a NEWS entry and see if these packages need documentation in the Elisp manual (they may or may not). On Tue 24 Jun 2025 at 04:45pm -07, Xiyue Deng wrote: > * lisp/emacs-lisp/package.el (package-builtin-packages): Add > * lisp/emacs-lisp/package.el (package-builtin-package-version): Add Better would be: * lisp/emacs-lisp/package.el (package-builtin-packages) (package-builtin-package-version): New functions. -- Sean Whitton From debbugs-submit-bounces@debbugs.gnu.org Fri Jun 27 06:34:39 2025 Received: (at 78844) by debbugs.gnu.org; 27 Jun 2025 10:34:39 +0000 Received: from localhost ([127.0.0.1]:34146 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1uV6Pn-0000we-7u for submit@debbugs.gnu.org; Fri, 27 Jun 2025 06:34:39 -0400 Received: from mail-pg1-x532.google.com ([2607:f8b0:4864:20::532]:44343) by debbugs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.84_2) (envelope-from ) id 1uV6Pj-0000vN-T5 for 78844@debbugs.gnu.org; Fri, 27 Jun 2025 06:34:36 -0400 Received: by mail-pg1-x532.google.com with SMTP id 41be03b00d2f7-b31c978688dso1167202a12.1 for <78844@debbugs.gnu.org>; Fri, 27 Jun 2025 03:34:35 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1751020469; x=1751625269; darn=debbugs.gnu.org; h=mime-version:message-id:date:user-agent:references:in-reply-to :subject:cc:to:from:from:to:cc:subject:date:message-id:reply-to; bh=ZxdgNlTuKRXwYLu4yTcFPhWySEIXq9a5Ro8hhiSJ8F4=; b=OLsXFu4Fw8UXkalUkMbq/jeTHso9LG6mqMNe2IGjE3L54VT2sm/0CHL5GMxr4/ILnd Du7Hovnk7oHn/dni6FxLegVnkwSffHKw7ag9pufRS2RfNRDy6xDeh7OcMN1khRx4+CPl xp6tZVZKsI8uhAKLA9kQIAQwlNCdCWWiWPueqvHrPeW5tjO+kxaecdpTr7raBMarwer1 ag15jALFOzB1zfG73j2TkNNz5iMxWEE2dhNgQ0wrVrPCnw+TbwhP7pT6BB08LBIQM5ei gAUBTkaEs2nd9l4J3tkwI50iuhfiGDMNKGg7bKL2nJrhQdQRyqfOo4B5GnOyeOGANlSn H3kA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1751020469; x=1751625269; h=mime-version:message-id:date:user-agent:references:in-reply-to :subject:cc:to:from:x-gm-message-state:from:to:cc:subject:date :message-id:reply-to; bh=ZxdgNlTuKRXwYLu4yTcFPhWySEIXq9a5Ro8hhiSJ8F4=; b=PhJEvak+JKe6fwmYKLt0WoRDkCKQ54tWo2ezk2vnp7LjM7LYAMBzPcM/Suc/ll6eNx LlNK9sIeqliIQsyp7FgFIcA3wIeAfRP/eEfjhdzkZilVgZSKDUuBPnGI57zoS3j5MbMr CacQpT92fSiT8jPNHspgiqAiJPA5S60lFdE2PiJWyG/ukXpRXlxTp3wk9g7+iy2Adlf1 dr8+xTv2ICwg2lS+mIbEN0qGwQRw4Uckq4Zpfojk/kRtogTSBOeNqPszX0eaapj5wk8F 98kWdByOQ+jzPAPqDTbfHaSVNbwpUUAuqs8FUgXdH90ITLxGC1ZqSWcYN+WTBA1WI6XI eZyw== X-Forwarded-Encrypted: i=1; AJvYcCXIrQpxZ2BloPkmcHYQu3w+f37LSIVqNZVZMY5sxZHE2kSCpVWlCg7PeoZpPy+Bi8J8POu5sw==@debbugs.gnu.org X-Gm-Message-State: AOJu0Ywoqcw7xAtWKrxZruY8SZ6uVxRcqq0/uVaskG+mWKGwCMzRM3r0 qdmJW2IgT8BdRZk8y/xtUL8srzRdMoPIUwNe2rZJZz83YsWwJoywyixICA8F6Q== X-Gm-Gg: ASbGnctFzpcLPtOFGiMxB1jbk7yXZ/pGNuQxARqomfI07+E/F88bkobvZVKmx0Qm2i3 DP6WX2v/605fYJJeNHvu1+HgjFT/7A+URs6lQVPA98JCeuGV3pnRmrALtglSGCgAkpIv4SkFKkN 3tP+BaGTivJEZ5JDR8jcaq2nQmiMzv4Gw8uKULG/2gEhw5Q3ztjvVqQhWkZXGjlAR0nM8AE7IrY EnjsriXLbvRSgKCUFlhnb7ADilmqTyoHHJfJ5M29rAey3rf0Caa/RbiYj30p2azi8UuZgNAP+Ss 6kOwY7AoJb+X52/zPdyoVh0pcaXQcR0gSF9vY4NbP/mG1RSi8l9yh+5D0xvgKaByMLKl28OvmUG qwV13dUZvZTAbR6PKz9Fx X-Google-Smtp-Source: AGHT+IHjQeu/gXkKtTBJMFxri21vO7uXQiHpSFJo5B3DLGsEaeYau8yKQPgEEI1eiTdPat2hKXYfCg== X-Received: by 2002:a17:90b:498c:b0:30a:4874:5397 with SMTP id 98e67ed59e1d1-318c8ed83ebmr4085825a91.9.1751020469278; Fri, 27 Jun 2025 03:34:29 -0700 (PDT) Received: from debian-hx90 (syn-076-094-249-045.res.spectrum.com. [76.94.249.45]) by smtp.gmail.com with ESMTPSA id 98e67ed59e1d1-315f542708esm6595997a91.30.2025.06.27.03.34.28 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Fri, 27 Jun 2025 03:34:28 -0700 (PDT) From: Xiyue Deng To: Sean Whitton Subject: Re: bug#78844: 30.1; feature request: public interface for querying builtin packages and versions In-Reply-To: <874iw1a5si.fsf@zephyr.silentflame.com> References: <878qlnz46j.fsf@debian-qemu> <87ecveo45m.fsf@zephyr.silentflame.com> <87zfe1aen6.fsf@debian-hx90.lan> <87jz50apab.fsf@debian-hx90.lan> <878qlgaeli.fsf@debian-hx90.lan> <874iw1a5si.fsf@zephyr.silentflame.com> User-Agent: Notmuch/0.39 (https://notmuchmail.org) Emacs/30.1 (x86_64-pc-linux-gnu) Date: Fri, 27 Jun 2025 03:34:25 -0700 Message-ID: <87cyap8ocu.fsf@debian-hx90.lan> MIME-Version: 1.0 Content-Type: multipart/signed; boundary="==-=-="; micalg=pgp-sha512; protocol="application/pgp-signature" X-Spam-Score: 0.0 (/) X-Debbugs-Envelope-To: 78844 Cc: 78844@debbugs.gnu.org, Stefan Monnier X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -1.0 (-) --==-=-= Content-Type: multipart/mixed; boundary="=-=-=" --=-=-= Content-Type: text/plain Content-Transfer-Encoding: quoted-printable Hi Sean, Sean Whitton writes: > Hello Xiyue, > > Please add a NEWS entry Added as a second patch. > and see if these packages need documentation in the Elisp manual (they > may or may not). > I don't seem to find any Elisp manual for package.el (there is one in the Emacs manual but only has documents for user facing interfaces for the package buffer). But do let me know if there is. > On Tue 24 Jun 2025 at 04:45pm -07, Xiyue Deng wrote: > >> * lisp/emacs-lisp/package.el (package-builtin-packages): Add >> * lisp/emacs-lisp/package.el (package-builtin-package-version): Add > > Better would be: > > * lisp/emacs-lisp/package.el (package-builtin-packages) > (package-builtin-package-version): New functions. > Updated the commit message accordingly in the first patch. > --=20 > Sean Whitton PTAL. =2D-=20 Regards, Xiyue Deng --=-=-= Content-Type: text/x-diff Content-Disposition: attachment; filename=0001-Add-public-interfaces-for-accessing-builtin-package-.patch Content-Transfer-Encoding: quoted-printable From=20fa18bb88a1b870b58419a9a52411d1f8e81175d4 Mon Sep 17 00:00:00 2001 From: Xiyue Deng Date: Fri, 20 Jun 2025 21:34:45 -0700 Subject: [PATCH 1/2] Add public interfaces for accessing builtin package in= fo (Bug#78844) * lisp/emacs-lisp/package.el (package-builtin-packages) (package-builtin-package-version): New functions. =2D-- lisp/emacs-lisp/package.el | 14 ++++++++++++++ 1 file changed, 14 insertions(+) diff --git a/lisp/emacs-lisp/package.el b/lisp/emacs-lisp/package.el index 9bcffb1df0b..a5e04413c72 100644 =2D-- a/lisp/emacs-lisp/package.el +++ b/lisp/emacs-lisp/package.el @@ -669,6 +669,20 @@ package-alist loaded and/or activated, customize `package-load-list'.") (put 'package-alist 'risky-local-variable t) =20 +;;;; Public interfaces for accessing built-in package info + +(defun package-builtin-packages () + "Return a list of builtin package symbols. +The returned list is not guaranteed to be sorted." + (mapcar #'car package--builtin-versions)) + +(defun package-builtin-package-version (package) + "Return the version-list of PACKAGE (symbol). +The format of the returned version-list is as returned by the +`version-to-list' function. Returns nil if the package is not a builtin +package or does not have a version." + (alist-get package package--builtin-versions)) + ;;;###autoload (defvar package-activated-list nil ;; FIXME: This should implicitly include all builtin packages. =2D-=20 2.47.2 --=-=-= Content-Type: text/x-diff Content-Disposition: attachment; filename=0002-Add-NEWS-entry-for-the-new-package-public-functions.patch Content-Transfer-Encoding: quoted-printable From=20ceaa2b9bca4cd5a4b2023a83b7d58811d76378a8 Mon Sep 17 00:00:00 2001 From: Xiyue Deng Date: Fri, 27 Jun 2025 03:10:24 -0700 Subject: [PATCH 2/2] Add NEWS entry for the new package public functions * etc/NEWS: add entry for 'package-builtin-packages' and 'package-builtin-package-version'. =2D-- etc/NEWS | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/etc/NEWS b/etc/NEWS index eb85baae341..e940b5fce17 100644 =2D-- a/etc/NEWS +++ b/etc/NEWS @@ -2607,6 +2607,13 @@ sleep state. and set the top-level buffer-local value of a variable. A top-level value is the one that variable has outside of any let-bindings. =20 ++++ +** New functions to query builtin package information. +'package-builtin-packages' returns a list of symbols of built-in +packages; 'package-builtin-package-version' returns the version-list of +a given package symbol. These functions provide stable interfaces for +external tools to query built-in package information. + * Changes in Emacs 31.1 on Non-Free Operating Systems =20 =2D-=20 2.47.2 --=-=-=-- --==-=-= Content-Type: application/pgp-signature; name="signature.asc" -----BEGIN PGP SIGNATURE----- iQJGBAEBCgAwFiEEiKQfd6o81mjI+LWALell7WOCXJMFAmhec7ESHG1hbnBoaXpA Z21haWwuY29tAAoJEC3pZe1jglyTauQP/Aw0mbQgC8L3TpAYmhWrGSRmvgQ5l+wl lxa27RCnn4RZ/W3ueN24k1+rqJhbXWcESur+JrOEE9R4+RQPgt0zJ3ZVixgcUi8Q 43iZQtqpthtp5JsssXjJHMXXs/XhjT2XpJ5dR+1pICoj8e9lNniX8p9WS6g52Oyn QqmrCJnXCQpfx3u2krxLcajNP/NDq+HQyy9npMd2VFFIhFQdRJsuSql8BEkASoqP U8RCi0Ixlt285sRTiiJ0Zb51OjVkPVWXHrwlh5+I9fUrDK4NJs67AGo72LgRvC44 2gIewYKd9qbV5zXSlTPqmVXM4YEm3kHVkyxhEyWOmybfgW1bZnakOlIzCGx0j83f noKiX2GzjIYq6IP3EqkXc+PC5Q7Wnd//rI6NbBr2JvJrtIQeO8aFr6+ObfhnOJed L7ObRmd9Wa/bxMuLQiktKID0zKhRAYLh6RMA7tThQ+ToE4qIwiSSKlcKcfiYSUQB 5iZ719JiEs4nlt08EKde4whe7S6l1aLqAxPfmQioyF1gjU5GNxu8V6gZmUpMnQu/ vD9Be+F8sB/fQpRzoHB/JBH+9+Qi2LQLPB61uQDEfAsD0wCik1wYTQ2WkpqoeCU8 +64FYR/+Lzb75Om/x/3e1ikc6h6HoevSTLzlp33ICfMMhMffB+go/AWb5vvmlh0w qSG9wK6z3gdE =WEHm -----END PGP SIGNATURE----- --==-=-=-- From debbugs-submit-bounces@debbugs.gnu.org Fri Jun 27 06:45:37 2025 Received: (at 78844) by debbugs.gnu.org; 27 Jun 2025 10:45:37 +0000 Received: from localhost ([127.0.0.1]:34241 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1uV6aO-0002RI-Of for submit@debbugs.gnu.org; Fri, 27 Jun 2025 06:45:37 -0400 Received: from sendmail.purelymail.com ([34.202.193.197]:35802) by debbugs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.84_2) (envelope-from ) id 1uV6aL-0002Q5-Cv for 78844@debbugs.gnu.org; Fri, 27 Jun 2025 06:45:34 -0400 DKIM-Signature: a=rsa-sha256; b=RY2DPyfHAA2aLCGoP8UlqbO/jCUJ8dVI0Jgh1jc2JeV4jItqgy5Kkv87OPyzp5Cgb0tFJQBfkh/PNjHo/vjIE3JtfbYk5s7Sfn1tblf7jCw+/yOa9bqeUME2QQhquV13QWu3mnZ3OSBr78Pk5uHRpH9siuD0jMRGjg2CrIvRKFm9n0YHeBNfQmma50S005/L4b2efZv0IKHgpuMpnuapEbyF9QFevIIHblaRyyBF3p3H/Kc8RVLAae+0YwgDoP9ITK02Uu2h7sbNirR6cjoM1GWAiOXp2UGUQzaLODPnTp1PADpn3J+RbBpt/+46CwLTvJUjN3fwu/3KTu0Lso+ing==; s=purelymail1; d=spwhitton.name; v=1; bh=RxMp86cH51+3kNO+glHgVTQ7B+lLVJCsuo2ot6cRHdQ=; h=Received:Received:From:To:Subject:Date; DKIM-Signature: a=rsa-sha256; b=bY5Lb0Qgm2HTSv1ifmaWJJPhx1oZKelLO45W3aeMwHe4vD/AXVplPbG9wviocLLyLhaoxHBIan+z+D3PFkq1hDM/lOZO8S0pb6881v+SxCrjkKhddQo90REg2WOebCPdVG8KhIZkj64PcneLB0q97GqKla9ejud5gxJQnrugsD2tyv7hPbwy8clBjOBw2eVz270gHN4Xtn4Mz36XONLHcOrEp7OyfoIwtCA3pLnAuRqITJ8wrdrGu3Ee4prSEaRrmIuRFsodwnuAoNEGe8/prOi0554cbPurXTyHFPcxJy4pEET+/LNbK6+wjPW8JjYmF6cmvZcd9ZQUM8mHD49OWg==; s=purelymail1; d=purelymail.com; v=1; bh=RxMp86cH51+3kNO+glHgVTQ7B+lLVJCsuo2ot6cRHdQ=; h=Feedback-ID:Received:Received:From:To:Subject:Date; Feedback-ID: 20115:3760:null:purelymail X-Pm-Original-To: 78844@debbugs.gnu.org Received: by smtp.purelymail.com (Purelymail SMTP) with ESMTPSA id -1719455028; (version=TLSv1.3 cipher=TLS_AES_256_GCM_SHA384); Fri, 27 Jun 2025 10:45:26 +0000 (UTC) Received: by zephyr.silentflame.com (Postfix, from userid 1000) id A86EA9400A3; Fri, 27 Jun 2025 11:45:25 +0100 (BST) From: Sean Whitton To: Xiyue Deng Subject: Re: bug#78844: 30.1; feature request: public interface for querying builtin packages and versions In-Reply-To: <87cyap8ocu.fsf@debian-hx90.lan> References: <878qlnz46j.fsf@debian-qemu> <87ecveo45m.fsf@zephyr.silentflame.com> <87zfe1aen6.fsf@debian-hx90.lan> <87jz50apab.fsf@debian-hx90.lan> <878qlgaeli.fsf@debian-hx90.lan> <874iw1a5si.fsf@zephyr.silentflame.com> <87cyap8ocu.fsf@debian-hx90.lan> Date: Fri, 27 Jun 2025 11:45:25 +0100 Message-ID: <87ms9t8nui.fsf@zephyr.silentflame.com> User-Agent: Gnus/5.13 (Gnus v5.13) MIME-Version: 1.0 Content-Type: text/plain X-Spam-Score: 0.0 (/) X-Debbugs-Envelope-To: 78844 Cc: 78844@debbugs.gnu.org, Stefan Monnier X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -1.0 (-) Hello, On Fri 27 Jun 2025 at 03:34am -07, Xiyue Deng wrote: > Hi Sean, > > Sean Whitton writes: > >> Hello Xiyue, >> >> Please add a NEWS entry > > Added as a second patch. Please merge them into one patch. >> and see if these packages need documentation in the Elisp manual (they >> may or may not). >> > > I don't seem to find any Elisp manual for package.el (there is one in > the Emacs manual but only has documents for user facing interfaces for > the package buffer). But do let me know if there is. I don't know, that's why I was asking you to look :) If there isn't anywhere to update, then you should use "---" not "+++" in etc/NEWS. -- Sean Whitton From debbugs-submit-bounces@debbugs.gnu.org Fri Jun 27 08:54:34 2025 Received: (at 78844) by debbugs.gnu.org; 27 Jun 2025 12:54:34 +0000 Received: from localhost ([127.0.0.1]:35690 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1uV8bB-0005Tp-Gr for submit@debbugs.gnu.org; Fri, 27 Jun 2025 08:54:34 -0400 Received: from mail-pf1-x431.google.com ([2607:f8b0:4864:20::431]:45439) by debbugs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.84_2) (envelope-from ) id 1uV8b8-0005Sg-60 for 78844@debbugs.gnu.org; Fri, 27 Jun 2025 08:54:30 -0400 Received: by mail-pf1-x431.google.com with SMTP id d2e1a72fcca58-7426c44e014so2075309b3a.3 for <78844@debbugs.gnu.org>; Fri, 27 Jun 2025 05:54:30 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1751028864; x=1751633664; darn=debbugs.gnu.org; h=mime-version:message-id:date:user-agent:references:in-reply-to :subject:cc:to:from:from:to:cc:subject:date:message-id:reply-to; bh=1mzzF3u2vRtntfpLaTcHo0JHcF/qFgRaaNyUG7w0mvM=; b=iqZBhZd8Coi20L7ye7QPtrF2aF+TCOHoUJ+d/UpRKlKtx4XraCO7BeIYq439KYvJ40 YjZaT1ms1JfOJJJYsLnR8G1yFCyOD3/P3AM7fKa37d4J0psH4KNyrp5ppYHOEkgR4wQI EMUBWy5WLN4M43P/s38b1WVgoY/xjeboRXoBy8fcNsx52Y3Y84HlZIp7/g21i1M+2itx 7CKaTV4A8L6MFXKbFKXh4TTcv2uHBc9QRUyfyz2trd1jOIpKY+Rf5ahYcQqjTw3vfHFL 1p38b3sbp66h696xj0+mCMjDHlGKBEvebkbzvVnaSedVtKqn1QM8Lmy2AiB2tp7Wf6Gx PeVA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1751028864; x=1751633664; h=mime-version:message-id:date:user-agent:references:in-reply-to :subject:cc:to:from:x-gm-message-state:from:to:cc:subject:date :message-id:reply-to; bh=1mzzF3u2vRtntfpLaTcHo0JHcF/qFgRaaNyUG7w0mvM=; b=eFlwcOMaMtfr0eJ157nLi9OuPkP6CENtCFYBjKpTdhbWV7osfJSY6RuqCcfTxinPEy LLZgOmcMYIbRxzO/HUrKu89CMlwg8RVUUlPUB8rlSNKuBKambOfEBqmRYU0k49JgksCa b8PV8uGLLcGZVuiqfcWIDPUHCJsX3LhQjjGWT6fQ1YWwre98FkR0LI00erPddAGSHFsJ JZi5hb4WSDkBKnFzjv31BMBHuItC2MSjkwqF8Z2Zw9EDqwBMYehfEmrfe7wmzJBKdlgH IWSIBQXhIK1Zv3Q4tUW+0sNkp4+vaLRPV2bZRNv0sHGHJc0cqGEVGWRr19mSs8Luh7sx qxAw== X-Gm-Message-State: AOJu0Yz1F7A+iNxPNvhrKepGW8z5SfN8xEKGDpdO333r+JhQ1duZLEUK FO24J/TmyRBAQ/BP6IAVCKRaylzGKL0vv1NnlFGb8bSAR0ogsi/0/kIG X-Gm-Gg: ASbGncsXtTTrsvkLHZHKqcKqgOg42wGFeaKPerFEo+Yj/X0IBuUlqpatF1UUHu2lvgD PcgfX0Ym5DtFmgib6aTqMkJF5UlHfWDQlwooYbIlyYxFrRbvDknqudcekJXknT1mT6S17NUAq0G pOdA0bqNr2tKK7Np4NYqCDse/BxqJiLbG7uj6yKr9TuLyTYVPgSwsA5ea05We5CpRW2eOW6iq+Q mP02cgxxBMOtz+kljwdOcWUNDlNpqOb2kYvCJy9MfDjaps/EBCA0dBiSF2gfX9DhTPUBorITbhJ QLvCHnfikjo2QB0l5w8sb4hlZhcLuvfUwVe7UT5s2fCv543Ghwy3O93jMheh38WTHNNhKkg77iU 8C3XZZMhMc2qZp2kKEq5d X-Google-Smtp-Source: AGHT+IFU7S33f8HC4kL0NDvJmdP7y/wGEZvY5fSZTZVIrPWrsYBUk8vGWCYhcGxPXz0LvIn9HTHEYw== X-Received: by 2002:a05:6a20:db0a:b0:220:33ae:dabb with SMTP id adf61e73a8af0-220a16e3a34mr4605116637.29.1751028863563; Fri, 27 Jun 2025 05:54:23 -0700 (PDT) Received: from debian-hx90 (syn-076-094-249-045.res.spectrum.com. [76.94.249.45]) by smtp.gmail.com with ESMTPSA id d2e1a72fcca58-74af55c723bsm2154379b3a.117.2025.06.27.05.54.21 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Fri, 27 Jun 2025 05:54:22 -0700 (PDT) From: Xiyue Deng To: Sean Whitton Subject: Re: bug#78844: 30.1; feature request: public interface for querying builtin packages and versions In-Reply-To: <87ms9t8nui.fsf@zephyr.silentflame.com> References: <878qlnz46j.fsf@debian-qemu> <87ecveo45m.fsf@zephyr.silentflame.com> <87zfe1aen6.fsf@debian-hx90.lan> <87jz50apab.fsf@debian-hx90.lan> <878qlgaeli.fsf@debian-hx90.lan> <874iw1a5si.fsf@zephyr.silentflame.com> <87cyap8ocu.fsf@debian-hx90.lan> <87ms9t8nui.fsf@zephyr.silentflame.com> User-Agent: Notmuch/0.39 (https://notmuchmail.org) Emacs/30.1 (x86_64-pc-linux-gnu) Date: Fri, 27 Jun 2025 05:54:18 -0700 Message-ID: <878qld8hvp.fsf@debian-hx90.lan> MIME-Version: 1.0 Content-Type: multipart/signed; boundary="==-=-="; micalg=pgp-sha512; protocol="application/pgp-signature" X-Spam-Score: 0.0 (/) X-Debbugs-Envelope-To: 78844 Cc: 78844@debbugs.gnu.org, Stefan Monnier X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -1.0 (-) --==-=-= Content-Type: multipart/mixed; boundary="=-=-=" --=-=-= Content-Type: text/plain Content-Transfer-Encoding: quoted-printable Hi Sean, Sean Whitton writes: > Hello, > > On Fri 27 Jun 2025 at 03:34am -07, Xiyue Deng wrote: > >> Hi Sean, >> >> Sean Whitton writes: >> >>> Hello Xiyue, >>> >>> Please add a NEWS entry >> >> Added as a second patch. > > Please merge them into one patch. > Squashed into one now. >>> and see if these packages need documentation in the Elisp manual (they >>> may or may not). >>> >> >> I don't seem to find any Elisp manual for package.el (there is one in >> the Emacs manual but only has documents for user facing interfaces for >> the package buffer). But do let me know if there is. > > I don't know, that's why I was asking you to look :) > Ah OK, guess there is no need to update then. > If there isn't anywhere to update, then you should use "---" not "+++" > in etc/NEWS. > Didn't notice the difference. Now changed to "---". > --=20 > Sean Whitton PTAL. =2D-=20 Regards, Xiyue Deng --=-=-= Content-Type: text/x-diff Content-Disposition: attachment; filename=0001-Add-public-interfaces-for-accessing-builtin-package-.patch Content-Transfer-Encoding: quoted-printable From=20c6fd97bfa83c9bbd234bee48029e526033e5c11b Mon Sep 17 00:00:00 2001 From: Xiyue Deng Date: Fri, 20 Jun 2025 21:34:45 -0700 Subject: [PATCH] Add public interfaces for accessing builtin package info (Bug#78844) * lisp/emacs-lisp/package.el (package-builtin-packages) (package-builtin-package-version): New functions. * etc/NEWS: add entry for 'package-builtin-packages' and 'package-builtin-package-version'. =2D-- etc/NEWS | 7 +++++++ lisp/emacs-lisp/package.el | 14 ++++++++++++++ 2 files changed, 21 insertions(+) diff --git a/etc/NEWS b/etc/NEWS index eb85baae341..9a5c46947a8 100644 =2D-- a/etc/NEWS +++ b/etc/NEWS @@ -2607,6 +2607,13 @@ sleep state. and set the top-level buffer-local value of a variable. A top-level value is the one that variable has outside of any let-bindings. =20 +--- +** New functions to query builtin package information. +'package-builtin-packages' returns a list of symbols of built-in +packages; 'package-builtin-package-version' returns the version-list of +a given package symbol. These functions provide stable interfaces for +external tools to query built-in package information. + * Changes in Emacs 31.1 on Non-Free Operating Systems =20 diff --git a/lisp/emacs-lisp/package.el b/lisp/emacs-lisp/package.el index 9bcffb1df0b..a5e04413c72 100644 =2D-- a/lisp/emacs-lisp/package.el +++ b/lisp/emacs-lisp/package.el @@ -669,6 +669,20 @@ package-alist loaded and/or activated, customize `package-load-list'.") (put 'package-alist 'risky-local-variable t) =20 +;;;; Public interfaces for accessing built-in package info + +(defun package-builtin-packages () + "Return a list of builtin package symbols. +The returned list is not guaranteed to be sorted." + (mapcar #'car package--builtin-versions)) + +(defun package-builtin-package-version (package) + "Return the version-list of PACKAGE (symbol). +The format of the returned version-list is as returned by the +`version-to-list' function. Returns nil if the package is not a builtin +package or does not have a version." + (alist-get package package--builtin-versions)) + ;;;###autoload (defvar package-activated-list nil ;; FIXME: This should implicitly include all builtin packages. =2D-=20 2.47.2 --=-=-=-- --==-=-= Content-Type: application/pgp-signature; name="signature.asc" -----BEGIN PGP SIGNATURE----- iQJGBAEBCgAwFiEEiKQfd6o81mjI+LWALell7WOCXJMFAmhelHoSHG1hbnBoaXpA Z21haWwuY29tAAoJEC3pZe1jglyTuJoQAKDmME/3Awe6PY+XUtQMZ0SS9NgUBV1d kmHs6X3qITX6wuAWRWxXGPYdGg2VHjrWiS6YfHf8RJqjtIuJ8Di1rteON1/0Id/D Btr+LjjoEiJQahgydQKtBSPtvB6y2sz9ewZYmXFOkg+MzSacGTss9nAqVmec83lg WA/kiYxV45J9199nO8Uqr0fTyJOdEd4dGcLKRh0jZl5zmRL3yTRXvorTUx+VuC81 xapArZLw8wJKaRbZXNIGhcy44n+hfvaY4lJwHDuwuuLn5YfHseOEhUmJeMWUyDLs Bb+2soHvEHW4symJVSqbEI2dG9G5fdUD8cGlUhrTfRtlmFd71X1VylBdo2D59CED MXyjrycSnVcM7fn4ga/+Xz/mPi84fGq+OQDmYVIPHkHO9p6nSJXpWlWGTB9sksIu fNYaCS88JcSFpyAAtRY8SkheCedyfZz7YTcgCoX5h8L/U5ou4m5V9fjFfKBuxt9w xYehL9e74uYysWkXtp/h3FET+VyoH/EaXd+jCnFVLNRkKKvBZwgs1PO1ajeQH6aK W5PEQYlJutqwaCbM/vbmho0dfTqP9G7tPCkQvoCVMswB6co+cNUf0Kr+l3Zm8CjJ EehgO6KXWGHHjcxOimT56tKN5ftUTrQEaLDcce7pn5ujc2SxbCy3JI0f8tKNQh2Z 6U+6y4H50tkO =sst2 -----END PGP SIGNATURE----- --==-=-=-- From debbugs-submit-bounces@debbugs.gnu.org Fri Jun 27 09:02:09 2025 Received: (at 78844) by debbugs.gnu.org; 27 Jun 2025 13:02:10 +0000 Received: from localhost ([127.0.0.1]:35774 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1uV8iX-0006Vw-6r for submit@debbugs.gnu.org; Fri, 27 Jun 2025 09:02:09 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]:55802) by debbugs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.84_2) (envelope-from ) id 1uV8iU-0006Uj-3H for 78844@debbugs.gnu.org; Fri, 27 Jun 2025 09:02:06 -0400 Received: from fencepost.gnu.org ([2001:470:142:3::e]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1uV8iL-0005mU-Mh; Fri, 27 Jun 2025 09:01:57 -0400 DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=gnu.org; s=fencepost-gnu-org; h=References:Subject:In-Reply-To:To:From:Date: mime-version; bh=PdVyNt4G0k6AOLBZXc+CzX9pOv56KI7xvxOTwDYWu2s=; b=FSLEFfxD2k6C llLJ92FeFlK98MgFbWNeLge43MEbx4/5DAb7vYokCOmQ81J4ImCJ+3q1LqYjZYxW01bP/U1FR6lx7 2h9JJwvQMx97d42Kkq0JzfCQnjZ48QSRJW8OCWZIO4OKilRM/+oSdWJwJ+9jPbYgW2YTFb/P92dyO 0xeN9x43mIjfoDKSoFEPlXK1E2/2EkOwB6RYX/QFmtIr4B92EXxv3XX/A+fzPFCLUarADV2JayIXd IR0F3rxMjiD3+ui2BSe5gcaqsGbuT3GfhHLzRyBdPma3/OqguH0e+6ppmGJs8XmS4ZfRb2/368Rcq T1VdxgZe0uTQGirqqlPIGg==; Date: Fri, 27 Jun 2025 16:01:54 +0300 Message-Id: <868qldbanx.fsf@gnu.org> From: Eli Zaretskii To: Xiyue Deng In-Reply-To: <87cyap8ocu.fsf@debian-hx90.lan> (message from Xiyue Deng on Fri, 27 Jun 2025 03:34:25 -0700) Subject: Re: bug#78844: 30.1; feature request: public interface for querying builtin packages and versions References: <878qlnz46j.fsf@debian-qemu> <87ecveo45m.fsf@zephyr.silentflame.com> <87zfe1aen6.fsf@debian-hx90.lan> <87jz50apab.fsf@debian-hx90.lan> <878qlgaeli.fsf@debian-hx90.lan> <874iw1a5si.fsf@zephyr.silentflame.com> <87cyap8ocu.fsf@debian-hx90.lan> X-Spam-Score: -2.3 (--) X-Debbugs-Envelope-To: 78844 Cc: 78844@debbugs.gnu.org, monnier@iro.umontreal.ca, spwhitton@spwhitton.name X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -3.3 (---) > Cc: 78844@debbugs.gnu.org, Stefan Monnier > From: Xiyue Deng > Date: Fri, 27 Jun 2025 03:34:25 -0700 > > > and see if these packages need documentation in the Elisp manual (they > > may or may not). > > > > I don't seem to find any Elisp manual for package.el (there is one in > the Emacs manual but only has documents for user facing interfaces for > the package buffer). But do let me know if there is. There's the "Packaging" chapter in the ELisp manual. Whether it is a suitable place to add these interfaces depends on who is the intended audience of the interfaces. If that chapter is not suitable, maybe the "Loading" chapter is a better place. > +(defun package-builtin-packages () > + "Return a list of builtin package symbols. > +The returned list is not guaranteed to be sorted." This doc string is too biased towards implementation, IMO. I would rephrase it as follows: Return a list of all the built-in packages. The return value is a list of names of built-in packages represented as symbols. I don't see a need to mention that the list is not sorted, because not saying it's sorted should be enough for users not to rely on that. (As a matter of fact, I think the list will be sorted, because package--builtin-versions is sorted.) > +(defun package-builtin-package-version (package) > + "Return the version-list of PACKAGE (symbol). This uses "version-list", which is not accepted terminology in Emacs. I suggest Return the version of a built-in PACKAGE given by its symbol. Value is a list of integers representing the version of PACKAGE, in the format returned by `version-to-list', or nil if PACKAGE has no version or is not a built-in package. > diff --git a/etc/NEWS b/etc/NEWS > index eb85baae341..e940b5fce17 100644 > --- a/etc/NEWS > +++ b/etc/NEWS > @@ -2607,6 +2607,13 @@ sleep state. > and set the top-level buffer-local value of a variable. A top-level > value is the one that variable has outside of any let-bindings. > > ++++ > +** New functions to query builtin package information. > +'package-builtin-packages' returns a list of symbols of built-in > +packages; 'package-builtin-package-version' returns the version-list of > +a given package symbol. These functions provide stable interfaces for > +external tools to query built-in package information. This should go under the "Package" section in NEWS. Thanks. From debbugs-submit-bounces@debbugs.gnu.org Fri Jun 27 20:25:58 2025 Received: (at 78844) by debbugs.gnu.org; 28 Jun 2025 00:25:58 +0000 Received: from localhost ([127.0.0.1]:44728 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1uVJOF-0000yD-OF for submit@debbugs.gnu.org; Fri, 27 Jun 2025 20:25:57 -0400 Received: from mail-pf1-x42f.google.com ([2607:f8b0:4864:20::42f]:56463) by debbugs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.84_2) (envelope-from ) id 1uVJOC-0000wk-5J for 78844@debbugs.gnu.org; Fri, 27 Jun 2025 20:25:53 -0400 Received: by mail-pf1-x42f.google.com with SMTP id d2e1a72fcca58-7425bd5a83aso698540b3a.0 for <78844@debbugs.gnu.org>; Fri, 27 Jun 2025 17:25:52 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1751070346; x=1751675146; darn=debbugs.gnu.org; h=mime-version:message-id:date:user-agent:references:in-reply-to :subject:cc:to:from:from:to:cc:subject:date:message-id:reply-to; bh=w3mM17tcvW5SsB31eByb1D0iVS5r77PZF6mr/G09Hmk=; b=hOmsABtLVNQ0KstlL27PXcMO1CSayWcZK5Dtiq7BH7lCC3eJxObI9hLo4wgk2XW2h1 1ukM9rhDwYOz5berK7F8HdC6FoqHGvp3vCBgNWzA9ioIwA4ZoYFPnbfexaxmmIcCNReJ zaOwiKd4jBdw6mwdLtpdl4vOpSF3Xd2BFXIuZr35eDLPg1ofz6lYxAwkCiwMV3awisTi R7R3qKY6p2reZILLQ8VFu3ejmjh0wp6EheuBzPqfPtg/UcMhhff3XTj9qSdaLFbV9Ecb xQcErZ/v073Xz09Diq+wuZaQrpYLyDA4a6mF0+0EDY70Z/FSi0SSrS8CzIGBkZg6UMid aEDw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1751070346; x=1751675146; h=mime-version:message-id:date:user-agent:references:in-reply-to :subject:cc:to:from:x-gm-message-state:from:to:cc:subject:date :message-id:reply-to; bh=w3mM17tcvW5SsB31eByb1D0iVS5r77PZF6mr/G09Hmk=; b=XxEDhSCd83Y06qTVR0b0wk7hLqYxobFgLfXP/UdQzwExoaopxLglTIAsSW2CGu0fkD DHL5hBBlT+z0ilCVp/8EcMN1ChXd3y7tDxF4RXcCa8iIhBIKuhxKAMt+r0PMJfbQ4wum eWKkvq0Bl0S/IlcKpsxinWrIg4IetrfwTx57oZyHNn2xoIT1SSS6ee3mIl4a6JXotkbj nwxvwIW1tBqLb57NPQVdVeqnletChhH96N2mDyjHy4Onsf/kuc0gA+snzPsJ01RNLYvJ 59s6bkIeUanhPYooPldfn+hkKbqHtsMoFLrBs2hi0oAXAyXpWVahkSThCDAE2xte9EYf TY2g== X-Forwarded-Encrypted: i=1; AJvYcCW2w5TaKDYxgb3Udg1zA6y/AXYENM9NtE8oTRaZ0ot0LxsyYSpCZR28mRI7M/M9a6ELVvVCgg==@debbugs.gnu.org X-Gm-Message-State: AOJu0YzYQXgYoEcwYSte6yah6D5lCxGf9xlOwwKFQOXI43SPQwDt5rz3 Vm1z1aXgfSuu9nc5WGhDCPjF5g3+DtZHen+tX9taGYYcN9WmAWpWQQli X-Gm-Gg: ASbGnct3ayHIvRFO3SJdhLqbTfGBrE++WuVc48xXsBpWPn/OFoSp4cHtp+BK+561Qui oenm6Ych6j17SnTksCjqSVRNqNs4/OnJ3s4uAF1SOjOqgCRyCvpDXcR1YFyRld9oEab2Xskmhud 2oSAsgM8vVuznd2igtpArSB6frRXZFD636dJPZuFV89HeULHWIe1uBH4QVXlYr6RrIQrBtU/G8R CC4qgyycOaqOpr/LxWhn0M415Rb4SH8gTsrjzGKYMbib1nbrADRTXDqu5vGB82YJKb31F4179tI O228spMEiyrKnedyTDNV/vlUZA9KPI4Nw+Muvfm4Tx5b1Z8XPfT9w8Uhw7z2n0nj/0tFCZTFNzK A/P0S/NtJKh3qKhAuMizQ X-Google-Smtp-Source: AGHT+IFhYJZ/Uwt+w8rJrqQ57HVBV0iJ+J9y5g7kpkFAYd0nBd9h1Bv4xbIpJ0TOEMEv5Ljp3XiDnw== X-Received: by 2002:a05:6a00:2447:b0:742:a0cf:7753 with SMTP id d2e1a72fcca58-74af6e892d6mr7998053b3a.3.1751070345896; Fri, 27 Jun 2025 17:25:45 -0700 (PDT) Received: from debian-hx90 (syn-076-094-249-045.res.spectrum.com. [76.94.249.45]) by smtp.gmail.com with ESMTPSA id d2e1a72fcca58-74af541be9fsm3261382b3a.50.2025.06.27.17.25.44 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Fri, 27 Jun 2025 17:25:45 -0700 (PDT) From: Xiyue Deng To: Eli Zaretskii Subject: Re: bug#78844: 30.1; feature request: public interface for querying builtin packages and versions In-Reply-To: <868qldbanx.fsf@gnu.org> References: <878qlnz46j.fsf@debian-qemu> <87ecveo45m.fsf@zephyr.silentflame.com> <87zfe1aen6.fsf@debian-hx90.lan> <87jz50apab.fsf@debian-hx90.lan> <878qlgaeli.fsf@debian-hx90.lan> <874iw1a5si.fsf@zephyr.silentflame.com> <87cyap8ocu.fsf@debian-hx90.lan> <868qldbanx.fsf@gnu.org> User-Agent: Notmuch/0.39 (https://notmuchmail.org) Emacs/30.1 (x86_64-pc-linux-gnu) Date: Fri, 27 Jun 2025 17:25:41 -0700 Message-ID: <871pr490fu.fsf@debian-hx90.lan> MIME-Version: 1.0 Content-Type: multipart/signed; boundary="===-=-="; micalg=pgp-sha512; protocol="application/pgp-signature" X-Spam-Score: 0.0 (/) X-Debbugs-Envelope-To: 78844 Cc: 78844@debbugs.gnu.org, monnier@iro.umontreal.ca, spwhitton@spwhitton.name X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -1.0 (-) --===-=-= Content-Type: multipart/mixed; boundary="=-=-=" --=-=-= Content-Type: multipart/mixed; boundary="==-=-=" --==-=-= Content-Type: text/plain Content-Disposition: inline Content-Transfer-Encoding: quoted-printable Hi Eli, Eli Zaretskii writes: >> Cc: 78844@debbugs.gnu.org, Stefan Monnier >> From: Xiyue Deng >> Date: Fri, 27 Jun 2025 03:34:25 -0700 >>=20 >> > and see if these packages need documentation in the Elisp manual (they >> > may or may not). >> > >>=20 >> I don't seem to find any Elisp manual for package.el (there is one in >> the Emacs manual but only has documents for user facing interfaces for >> the package buffer). But do let me know if there is. > > There's the "Packaging" chapter in the ELisp manual. Whether it is a > suitable place to add these interfaces depends on who is the intended > audience of the interfaces. If that chapter is not suitable, maybe > the "Loading" chapter is a better place. > Admittedly I tried to be lazy and want to just add the new functions to an existing section but didn't find any good fit. I just bit the bullet and added a new section in package.texi for these functions. Please help proofread. >> +(defun package-builtin-packages () >> + "Return a list of builtin package symbols. >> +The returned list is not guaranteed to be sorted." > > This doc string is too biased towards implementation, IMO. I would > rephrase it as follows: > > Return a list of all the built-in packages. To be precise, package--builtin-versions doesn't have all the built-in packages (which I think is a subset of the list populated by package--builtins). As here we are more interested in packages that do have a version associated, I have renamed the function to `package-versioned-builtin-packages' to hopefully better convey the intention. Let me know if this is desirable. > The return value is a list of names of built-in packages represented > as symbols. > > I don't see a need to mention that the list is not sorted, because not > saying it's sorted should be enough for users not to rely on that. Indeed, this seems to be an unnecessary detail to call out. > (As a matter of fact, I think the list will be sorted, because > package--builtin-versions is sorted.) > In fact, in 30.1 (which I'm using) it's almost sorted in descending alphabetic order except that the last item is "emacs" and the second to last is "all-out". Anyway, as you mentioned, not mentioning the ordering in the docstring should indicate that a caller should not make any assumptions. >> +(defun package-builtin-package-version (package) >> + "Return the version-list of PACKAGE (symbol). > > This uses "version-list", which is not accepted terminology in Emacs. > I suggest > > Return the version of a built-in PACKAGE given by its symbol. > Value is a list of integers representing the version of PACKAGE, > in the format returned by `version-to-list', or nil if PACKAGE > has no version or is not a built-in package. > Adapted. >> diff --git a/etc/NEWS b/etc/NEWS >> index eb85baae341..e940b5fce17 100644 >> --- a/etc/NEWS >> +++ b/etc/NEWS >> @@ -2607,6 +2607,13 @@ sleep state. >> and set the top-level buffer-local value of a variable. A top-level >> value is the one that variable has outside of any let-bindings. >>=20=20 >> ++++ >> +** New functions to query builtin package information. >> +'package-builtin-packages' returns a list of symbols of built-in >> +packages; 'package-builtin-package-version' returns the version-list of >> +a given package symbol. These functions provide stable interfaces for >> +external tools to query built-in package information. > > This should go under the "Package" section in NEWS. > Moved there. > Thanks. PTAL. =2D-=20 Regards, Xiyue Deng --==-=-= Content-Type: text/x-diff Content-Disposition: attachment; filename=0001-Add-public-interfaces-for-accessing-builtin-package-.patch Content-Transfer-Encoding: quoted-printable From=2078ab8909c3550a8bf1cbb39b0abdf433946aa307 Mon Sep 17 00:00:00 2001 From: Xiyue Deng Date: Fri, 20 Jun 2025 21:34:45 -0700 Subject: [PATCH] Add public interfaces for accessing builtin package info (Bug#78844) * lisp/emacs-lisp/package.el (package-builtin-packages) (package-builtin-package-version): New functions. * doc/lispref/package.texi: Add a section 'Package Information' with documentation for the new functions. * etc/NEWS: Add entry for 'package-versioned-builtin-packages' and 'package-builtin-package-version'. =2D-- doc/lispref/package.texi | 24 ++++++++++++++++++++++++ etc/NEWS | 7 +++++++ lisp/emacs-lisp/package.el | 15 +++++++++++++++ 3 files changed, 46 insertions(+) diff --git a/doc/lispref/package.texi b/doc/lispref/package.texi index c96c2f5d234..b65b70843b1 100644 =2D-- a/doc/lispref/package.texi +++ b/doc/lispref/package.texi @@ -424,3 +424,27 @@ Forwards-Compatibility the manual installed, you can also read the @url{https://elpa.gnu.org/packages/doc/compat.html#Usage, Online Compat manual}. + +@node Package Information +@section Get built-in packages and versions +@cindex package information + +Emacs ships a list of built-in packages which may also be packaged +externally on ELPA. Who likes to know which packages are built-in and +their versions can use the following functions. These functions are +useful for external tools to query built-in package information. + +@defun package-versioned-builtin-packages +This function returns the list of packages that are built-in to Emacs +and have a version. The returned list contains one symbol for each +built-in package that has a version, which are likely also packaged +externally on ELPA. +@end defun + +@defun package-builtin-package-version package +This function returns the version of a built-in @var{package}. +@var{package} should be a symbol. The returned value is a list of +integers representing the version of PACKAGE in the format returned by +the function @code{version-to-list}, or nil if @var{package} does not +have a version or is not a buil-tin package. +@end defun diff --git a/etc/NEWS b/etc/NEWS index eb85baae341..5ea5f5314a2 100644 =2D-- a/etc/NEWS +++ b/etc/NEWS @@ -1965,6 +1965,13 @@ installed, total number of packages from all the pac= kage archives, total number of packages to upgrade and total number of new packages available. =20 ++++ +*** New functions to query builtin package information. +'package-versioned-builtin-packages' returns a list of symbols of +built-in packages; 'package-builtin-package-version' returns the +version-list of a given package symbol. These functions provide stable +interfaces for external tools to query built-in package information. + ** RCIRC =20 +++ diff --git a/lisp/emacs-lisp/package.el b/lisp/emacs-lisp/package.el index 9bcffb1df0b..aca2ba558d9 100644 =2D-- a/lisp/emacs-lisp/package.el +++ b/lisp/emacs-lisp/package.el @@ -669,6 +669,21 @@ package-alist loaded and/or activated, customize `package-load-list'.") (put 'package-alist 'risky-local-variable t) =20 +;;;; Public interfaces for accessing built-in package info + +(defun package-versioned-builtin-packages () + "Return a list of all the versioned built-in packages. +The return value is a list of names of built-in packages represented as +symbols." + (mapcar #'car package--builtin-versions)) + +(defun package-builtin-package-version (package) + "Return the version of a built-in PACKAGE given by its symbol. +The return value is a list of integers representing the version of +PACKAGE, in the format returned by `version-to-list', or nil if the +package has no version or is not a built-in package." + (alist-get package package--builtin-versions)) + ;;;###autoload (defvar package-activated-list nil ;; FIXME: This should implicitly include all builtin packages. =2D-=20 2.47.2 --==-=-=-- --=-=-=-- --===-=-= Content-Type: application/pgp-signature; name="signature.asc" -----BEGIN PGP SIGNATURE----- iQJGBAEBCgAwFiEEiKQfd6o81mjI+LWALell7WOCXJMFAmhfNoUSHG1hbnBoaXpA Z21haWwuY29tAAoJEC3pZe1jglyTXosP/2TramtpankcFw1SbbV3h9HUBg+OCsv8 6FEug4OyKMrdlZFlhbYaWRU9UK/bMyN7NOCJmtSl4r9i5hee2WmUuCvNG5RUxs0v /LVukAeX/l2X96mDeF39/irha8+4nUjm/MsgBxyCawx6V9ebMwQ5rjwN160aQTTS +RKeptsz22ApUlq8NZXpSCGWDG8NGDq1K/RytsW0dUeQoUz33uw7q72uWWgEGKpr vdutBKAOsuVlO8WBQhCyPSpiBCYrsXdlpvD/lX0MKBeaPklXkj4c6+8LZiMnfwGB 4jo/bFwrY7hG4A1Bt63RwqeeXl6LRhjlusNlc1C0xOxVYUrooz47G6UAQ0a4sRep UUBSf6J3WHvp1BvEM5WaiLRkNDfv5cQ1RJRnEGdtZsGVQP7zH2mvItnOMQBTsnLW JSokm7waX2y4RP9vSER+jWhAfRBazELR9U+rNesPh/ababblXBKa8Jf80RCP9cZ1 QmF6h9lLqnRepuV65Igmnf3EheFuPvvsLsSG6grvWANjq17XRTA/aNXQYFs9zZ3y r1cVMl/0i/iQBei90FVJW04Uk61S6SzcD8uxf/fyReg/bqJxukdACrCe+1Ne7Pv9 dlsS8YNCx7tqtxeuaL1ghobXBYGFuJLwMFybLhp43wQfvjLC3CjlRZ1yJk+P0Wbh cGmOuZHq67cx =gI3i -----END PGP SIGNATURE----- --===-=-=-- From debbugs-submit-bounces@debbugs.gnu.org Sat Jun 28 03:10:18 2025 Received: (at 78844) by debbugs.gnu.org; 28 Jun 2025 07:10:18 +0000 Received: from localhost ([127.0.0.1]:46712 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1uVPhY-000518-KF for submit@debbugs.gnu.org; Sat, 28 Jun 2025 03:10:17 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]:34096) by debbugs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.84_2) (envelope-from ) id 1uVPhV-0004vd-Qk for 78844@debbugs.gnu.org; Sat, 28 Jun 2025 03:10:14 -0400 Received: from fencepost.gnu.org ([2001:470:142:3::e]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1uVPhP-0005LZ-RN; Sat, 28 Jun 2025 03:10:08 -0400 DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=gnu.org; s=fencepost-gnu-org; h=References:Subject:In-Reply-To:To:From:Date: mime-version; bh=kgcDRUuphMMXqbcexZhlMUdJ4cmsBAf4y+jR26pzvgA=; b=sX6higyFe+wU niuyUZr2y6WvjtQNzvWTZgOLUwffzJnqSVtW+0iMrA1wM4fkVTr+Htu647Zh1UuWF1T5QAOAlzoJC revfTiOrViSEO310pjNh0W8sSlE69Hxgu2dwGjxDMUpV/lrIU0HIuqDnfNl17iITyd4sxW5JW1tDD GDT14cN7L13vdSSeF0vao1n+7hcPz+4fC+jeeYB2faHZUqeXlt9GLdd5uHYKJWbrShjElAcr94T4H adxq7xPqs7Nt3BEeDowYUFqd6rt/2comllygIuzTIiEXmQkZGu4t5DVb+PMk6bRBrS92bPVTe8ifY Pe5g9YLnJXIVMcAkcCzBdQ==; Date: Sat, 28 Jun 2025 10:10:03 +0300 Message-Id: <86wm8w8hpw.fsf@gnu.org> From: Eli Zaretskii To: Xiyue Deng In-Reply-To: <871pr490fu.fsf@debian-hx90.lan> (message from Xiyue Deng on Fri, 27 Jun 2025 17:25:41 -0700) Subject: Re: bug#78844: 30.1; feature request: public interface for querying builtin packages and versions References: <878qlnz46j.fsf@debian-qemu> <87ecveo45m.fsf@zephyr.silentflame.com> <87zfe1aen6.fsf@debian-hx90.lan> <87jz50apab.fsf@debian-hx90.lan> <878qlgaeli.fsf@debian-hx90.lan> <874iw1a5si.fsf@zephyr.silentflame.com> <87cyap8ocu.fsf@debian-hx90.lan> <868qldbanx.fsf@gnu.org> <871pr490fu.fsf@debian-hx90.lan> X-Spam-Score: -2.3 (--) X-Debbugs-Envelope-To: 78844 Cc: 78844@debbugs.gnu.org, monnier@iro.umontreal.ca, spwhitton@spwhitton.name X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -3.3 (---) > From: Xiyue Deng > Cc: spwhitton@spwhitton.name, 78844@debbugs.gnu.org, monnier@iro.umontreal.ca > Date: Fri, 27 Jun 2025 17:25:41 -0700 > > >> I don't seem to find any Elisp manual for package.el (there is one in > >> the Emacs manual but only has documents for user facing interfaces for > >> the package buffer). But do let me know if there is. > > > > There's the "Packaging" chapter in the ELisp manual. Whether it is a > > suitable place to add these interfaces depends on who is the intended > > audience of the interfaces. If that chapter is not suitable, maybe > > the "Loading" chapter is a better place. > > > > Admittedly I tried to be lazy and want to just add the new functions to > an existing section but didn't find any good fit. I just bit the bullet > and added a new section in package.texi for these functions. Please > help proofread. Thanks, comments below. However, packages.texi is not the right place for this stuff, because it's for the user manual, not for the ELisp reference manual. Since these APIs are for Lisp programmers, they should be documented in the ELisp manual, and the chapters I mentioned are in that manual. > >> +(defun package-builtin-packages () > >> + "Return a list of builtin package symbols. > >> +The returned list is not guaranteed to be sorted." > > > > This doc string is too biased towards implementation, IMO. I would > > rephrase it as follows: > > > > Return a list of all the built-in packages. > > To be precise, package--builtin-versions doesn't have all the built-in > packages (which I think is a subset of the list populated by > package--builtins). As here we are more interested in packages that do > have a version associated, I have renamed the function to > `package-versioned-builtin-packages' to hopefully better convey the > intention. Let me know if this is desirable. The renaming could be fine if the intended users of this API will indeed only want to know about versioned built-in packages, and won't care about those who have no versions. Is that in fact true? If so, why aren't unversioned packages important? If we do want to return the built-in packages that have no versions, then the name should remain as it was, and we should instead amend the implementation to also return packages that have no versions. > +@node Package Information > +@section Get built-in packages and versions > +@cindex package information > + > +Emacs ships a list of built-in packages which may also be packaged ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ Emacs ships the packages themselves, not a list of packages. From debbugs-submit-bounces@debbugs.gnu.org Sat Jun 28 04:29:34 2025 Received: (at 78844) by debbugs.gnu.org; 28 Jun 2025 08:29:35 +0000 Received: from localhost ([127.0.0.1]:47651 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1uVQwD-00077U-1v for submit@debbugs.gnu.org; Sat, 28 Jun 2025 04:29:34 -0400 Received: from mail-pf1-x430.google.com ([2607:f8b0:4864:20::430]:53444) by debbugs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.84_2) (envelope-from ) id 1uVQwA-00076H-1X for 78844@debbugs.gnu.org; Sat, 28 Jun 2025 04:29:27 -0400 Received: by mail-pf1-x430.google.com with SMTP id d2e1a72fcca58-7490acf57b9so570977b3a.2 for <78844@debbugs.gnu.org>; Sat, 28 Jun 2025 01:29:26 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1751099360; x=1751704160; darn=debbugs.gnu.org; h=mime-version:message-id:date:user-agent:references:in-reply-to :subject:cc:to:from:from:to:cc:subject:date:message-id:reply-to; bh=EU0zetBbQCLaeUxEItTXwN8Olc2pLCH3JpY5gHDBu+I=; b=S9Pd1iQEzUW0RP0JIFzl9inb5fZj5uFWG7E+NSP6U7G1nEMnV7y2QVHDIpHA8IEcrl +g7Xa5pbHcNl/K+D/ZQmu0jnYmLGi86nGp66lCeTXmENs5Glr8XXlLg1/WviPLJKEfoD DfMTFS/jnYn6Ky+U9RWMVRiwrX6D2CDkszGm0bHuv4MK2zWz+WKdy2agEsH/dD94vmQH nt6Dxqbrk6FysRk0KqO4PmEGqFfgT6jsW7Dt2hrk9h5Tjhlz8JjZsmtXTrl8xMNA+6cS cUt3ktBJ+9Mr7hKCbDY4s/80YHKogl/nRj6gjgYCQSyV4pajhRuPra7hTdxnWfKTFrcj 8dQQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1751099360; x=1751704160; h=mime-version:message-id:date:user-agent:references:in-reply-to :subject:cc:to:from:x-gm-message-state:from:to:cc:subject:date :message-id:reply-to; bh=EU0zetBbQCLaeUxEItTXwN8Olc2pLCH3JpY5gHDBu+I=; b=SMY93CdyRSoLGG1IyzvM+HDdoMMiWyh513n3RyP1ou+VpawwtFVHVIirkVJtfzlCf4 afMpSP1Uhj8m5MHlFa9Wak+bOTGIZkLELNBHDxirS4F47kMbJsGWxcC+ptTalTXvuT/B Tzh6XUv17u2MbZA5+PKOsnzVfE2T0Wz/qiKNYrNwIm4Q+mxMZkPvnZIHHfn34MRXbmpS mkYlVtLuLRn+UaOAFiAWsAu738e6ne71u7EXnlfRodMsWy7dQKmBbHYz11hTVisQgWi5 eWvLfZi4l0zDaZlwsIRRlq93Qc5b9lYMhOIJHvBgKomkGtTGoGhTbSSJPesqT0uqXsdx KqaA== X-Forwarded-Encrypted: i=1; AJvYcCUqvHwMcG4YW7TmYZbAB5bgBgrPo4IV/SSK64JbLnF8y9DF4ln2Xapnc3v8VPaCwY2U9fYLeg==@debbugs.gnu.org X-Gm-Message-State: AOJu0YxJ7OeXDhPYQs2SQtwpLuf6qrh+Ma4MscF3TY125hPcEKZnRMYN CimR9QOAeW0nhzO/eBeB7eL4NXfmLee+eVxnxTWzRI0LVG9cn09AfFa9 X-Gm-Gg: ASbGncuo7VlLVyzyfj86TtAhKVp7p6AiXcPL2qjSyz9mK1H56QbsvE4bWB4v3BoNQVW bX3CXkIlWui0FRgSMSUOMU3MXlDS3Rp/Sd2M8IwSr7Xb5GYz/WsR136C84ObLd8m9MRJNBdk0QJ mzrGfRf0FTNxrCPb9xUTlJvDcpKtP3astavdamyGE5jfD6RVKcCgXfgf7zN8ukDmh21EOeOB3Z/ +IhhFdgIdfMsGPyFyGKRwGIvqEZOyYkhJkMPx9BT2tR2+I8uWm7wMy6rqW3iunnTITRVk6xIhAl ruUsZoxykMt0TDgJdqiIyXjxVQQntlE8XLzv2ldrbPX2r8+K/zsoIsmMwppvyau7KIiB8r44+ZJ wY1vHYBQXMGifLjvqf142 X-Google-Smtp-Source: AGHT+IGbW9+5RCyse4QfJPZd79Jw2AYomQ8Xb2g6PUoloPPR9ywlF57ZRcHeXXTrLrp7O5Nhl3JF/w== X-Received: by 2002:a05:6a00:2441:b0:748:3485:b99d with SMTP id d2e1a72fcca58-74af6f4372bmr8600612b3a.18.1751099359657; Sat, 28 Jun 2025 01:29:19 -0700 (PDT) Received: from debian-hx90 (syn-076-094-249-045.res.spectrum.com. [76.94.249.45]) by smtp.gmail.com with ESMTPSA id d2e1a72fcca58-74af5579d37sm3818421b3a.81.2025.06.28.01.29.18 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Sat, 28 Jun 2025 01:29:18 -0700 (PDT) From: Xiyue Deng To: Eli Zaretskii Subject: Re: bug#78844: 30.1; feature request: public interface for querying builtin packages and versions In-Reply-To: <86wm8w8hpw.fsf@gnu.org> References: <878qlnz46j.fsf@debian-qemu> <87ecveo45m.fsf@zephyr.silentflame.com> <87zfe1aen6.fsf@debian-hx90.lan> <87jz50apab.fsf@debian-hx90.lan> <878qlgaeli.fsf@debian-hx90.lan> <874iw1a5si.fsf@zephyr.silentflame.com> <87cyap8ocu.fsf@debian-hx90.lan> <868qldbanx.fsf@gnu.org> <871pr490fu.fsf@debian-hx90.lan> <86wm8w8hpw.fsf@gnu.org> User-Agent: Notmuch/0.39 (https://notmuchmail.org) Emacs/30.1 (x86_64-pc-linux-gnu) Date: Sat, 28 Jun 2025 01:29:15 -0700 Message-ID: <87v7og6zhg.fsf@debian-hx90.lan> MIME-Version: 1.0 Content-Type: multipart/signed; boundary="==-=-="; micalg=pgp-sha512; protocol="application/pgp-signature" X-Spam-Score: 0.0 (/) X-Debbugs-Envelope-To: 78844 Cc: 78844@debbugs.gnu.org, monnier@iro.umontreal.ca, spwhitton@spwhitton.name X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -1.0 (-) --==-=-= Content-Type: multipart/mixed; boundary="=-=-=" --=-=-= Content-Type: text/plain Content-Transfer-Encoding: quoted-printable Hi Eli, Eli Zaretskii writes: >> From: Xiyue Deng >> Cc: spwhitton@spwhitton.name, 78844@debbugs.gnu.org, monnier@iro.umontre= al.ca >> Date: Fri, 27 Jun 2025 17:25:41 -0700 >>=20 >> >> I don't seem to find any Elisp manual for package.el (there is one in >> >> the Emacs manual but only has documents for user facing interfaces for >> >> the package buffer). But do let me know if there is. >> > >> > There's the "Packaging" chapter in the ELisp manual. Whether it is a >> > suitable place to add these interfaces depends on who is the intended >> > audience of the interfaces. If that chapter is not suitable, maybe >> > the "Loading" chapter is a better place. >> > >>=20 >> Admittedly I tried to be lazy and want to just add the new functions to >> an existing section but didn't find any good fit. I just bit the bullet >> and added a new section in package.texi for these functions. Please >> help proofread. > > Thanks, comments below. However, packages.texi is not the right place > for this stuff, because it's for the user manual, not for the ELisp > reference manual. Since these APIs are for Lisp programmers, they > should be documented in the ELisp manual, and the chapters I mentioned > are in that manual. > I'm a bit confused: the file I changed was doc/lispref/package.texi, which I suppose is the ELisp manual, no? >> >> +(defun package-builtin-packages () >> >> + "Return a list of builtin package symbols. >> >> +The returned list is not guaranteed to be sorted." >> > >> > This doc string is too biased towards implementation, IMO. I would >> > rephrase it as follows: >> > >> > Return a list of all the built-in packages. >>=20 >> To be precise, package--builtin-versions doesn't have all the built-in >> packages (which I think is a subset of the list populated by >> package--builtins). As here we are more interested in packages that do >> have a version associated, I have renamed the function to >> `package-versioned-builtin-packages' to hopefully better convey the >> intention. Let me know if this is desirable. > > The renaming could be fine if the intended users of this API will > indeed only want to know about versioned built-in packages, and won't > care about those who have no versions. Is that in fact true? If so, > why aren't unversioned packages important? > > If we do want to return the built-in packages that have no versions, > then the name should remain as it was, and we should instead amend the > implementation to also return packages that have no versions. > The motivation for introducing those functions is to be able to check whether a built-in package has higher version compared to the same package in other packaging system, which, in my case, is Debian's APT, and could be useful for other packaging systems. See my first mail[1] for a concrete motivating example and my reply[2] to Stefan's email for a more explanations. The current status quo is that most Emacs addons that are packaged in Debian are in `package--builtin-versions', so this is sufficient for our use case. Plus, on testing I realized that `package--builtins' is not populated by default until one loads `finder-inf', which means increased loading time to use that information. In summary, I think having `package-versioned-builtin-packages' is good enough for now. And if requirement changes in the future, we can still introduce `package-builtin-packages' to query `package--builtins'. >> +@node Package Information >> +@section Get built-in packages and versions >> +@cindex package information >> + >> +Emacs ships a list of built-in packages which may also be packaged > ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ > Emacs ships the packages themselves, not a list of packages. My English fails me often. Revised the wording a bit. PTAL. [1] https://debbugs.gnu.org/cgi/bugreport.cgi?bug=3D78844#5 [2] https://debbugs.gnu.org/cgi/bugreport.cgi?bug=3D78844#23 =2D-=20 Regards, Xiyue Deng --=-=-= Content-Type: text/x-diff Content-Disposition: attachment; filename=0001-Add-public-interfaces-for-accessing-builtin-package-.patch Content-Transfer-Encoding: quoted-printable From=20270eb596aac5d7bea7cf6005655b2586a9a6648d Mon Sep 17 00:00:00 2001 From: Xiyue Deng Date: Fri, 20 Jun 2025 21:34:45 -0700 Subject: [PATCH] Add public interfaces for accessing builtin package info (Bug#78844) * lisp/emacs-lisp/package.el (package-builtin-packages) (package-builtin-package-version): New functions. * doc/lispref/package.texi: Add a section 'Package Information' with documentation for the new functions. * etc/NEWS: Add entry for 'package-versioned-builtin-packages' and 'package-builtin-package-version'. =2D-- doc/lispref/package.texi | 25 +++++++++++++++++++++++++ etc/NEWS | 7 +++++++ lisp/emacs-lisp/package.el | 15 +++++++++++++++ 3 files changed, 47 insertions(+) diff --git a/doc/lispref/package.texi b/doc/lispref/package.texi index c96c2f5d234..32da72094d4 100644 =2D-- a/doc/lispref/package.texi +++ b/doc/lispref/package.texi @@ -424,3 +424,28 @@ Forwards-Compatibility the manual installed, you can also read the @url{https://elpa.gnu.org/packages/doc/compat.html#Usage, Online Compat manual}. + +@node Package Information +@section Get built-in packages and versions +@cindex package information + +Emacs ships built-in packages which may also be packaged externally on +ELPA. Knowing whether a built-in package has a higher version than on +ELPA or other packaging systems may be useful for external packaging +tools. Those who would like to query such information can use the +following functions. + +@defun package-versioned-builtin-packages +This function returns the list of packages that are built-in to Emacs +and have a version. The returned list contains one symbol for each +built-in package that has a version, which are likely also packaged +externally on ELPA. +@end defun + +@defun package-builtin-package-version package +This function returns the version of a built-in @var{package}. +@var{package} should be a symbol. The returned value is a list of +integers representing the version of PACKAGE in the format returned by +the function @code{version-to-list}, or nil if @var{package} does not +have a version or is not a buil-tin package. +@end defun diff --git a/etc/NEWS b/etc/NEWS index eb85baae341..5ea5f5314a2 100644 =2D-- a/etc/NEWS +++ b/etc/NEWS @@ -1965,6 +1965,13 @@ installed, total number of packages from all the pac= kage archives, total number of packages to upgrade and total number of new packages available. =20 ++++ +*** New functions to query builtin package information. +'package-versioned-builtin-packages' returns a list of symbols of +built-in packages; 'package-builtin-package-version' returns the +version-list of a given package symbol. These functions provide stable +interfaces for external tools to query built-in package information. + ** RCIRC =20 +++ diff --git a/lisp/emacs-lisp/package.el b/lisp/emacs-lisp/package.el index 9bcffb1df0b..aca2ba558d9 100644 =2D-- a/lisp/emacs-lisp/package.el +++ b/lisp/emacs-lisp/package.el @@ -669,6 +669,21 @@ package-alist loaded and/or activated, customize `package-load-list'.") (put 'package-alist 'risky-local-variable t) =20 +;;;; Public interfaces for accessing built-in package info + +(defun package-versioned-builtin-packages () + "Return a list of all the versioned built-in packages. +The return value is a list of names of built-in packages represented as +symbols." + (mapcar #'car package--builtin-versions)) + +(defun package-builtin-package-version (package) + "Return the version of a built-in PACKAGE given by its symbol. +The return value is a list of integers representing the version of +PACKAGE, in the format returned by `version-to-list', or nil if the +package has no version or is not a built-in package." + (alist-get package package--builtin-versions)) + ;;;###autoload (defvar package-activated-list nil ;; FIXME: This should implicitly include all builtin packages. =2D-=20 2.47.2 --=-=-=-- --==-=-= Content-Type: application/pgp-signature; name="signature.asc" -----BEGIN PGP SIGNATURE----- iQJGBAEBCgAwFiEEiKQfd6o81mjI+LWALell7WOCXJMFAmhfp9sSHG1hbnBoaXpA Z21haWwuY29tAAoJEC3pZe1jglyT6tYP/2nWXG+MeKbRV57sA/mEW6VeZK8gK/d8 Gd23voIsCdNyDeqX1Mu1+qI5JNlLpaFXHpCmSOMak6TL1Eyae+N107W499/LHwTh CoUTO5kjQe05g87xuRVmLoZdo2JeJV8kCWzcj8l9ZK4wd1PCiocQw82XJIU4c40u jdMEhRB48KAEMesUBg6z08bzkvEKlZSq/rlwZokce8CpJEKxWepJVdNkNyOpWjzH NMtB04Z5uoF5DhUCR8yfvcYO/JTbSGb0+KDUYcucAB33hXl38fw817MBKn+x3iUZ 2MDJNPHhdOUkj1+KG8BsOu37HCRlP5VLnRP0TnkBOkjN+8ojDbSQ9HXtRavFW8ed YUGEpwNl7u49qfIW7I0c4AiAEwGZlOeFhjLdDMTO3rgqW+Albjl373E1RbLRK3Nx bG3Pt0yDon3aq8oDYe4ArpNcUeVMsI5k/w0pAnwYgkjSRdMsWZGJ2CfgpJLPjlmD /VIhlRtJprm6PqaAfx70CFFB5PIqkpgzgbbElPXOx6zSXIcLgSODgDaHq0EOH+V1 /9yCq46j1G2buaP0tcZ1b1FRVdw0BLq9klhfnl/ZM6gnmrzb908jozYdDERlolUO QzCWuhHuMlHLx/m4MTCXcWN8tiI6FcOGZBQNfE6QZhe62qUKtC8137XXnx+KdgxG CFE6B+pMsb41 =YnT6 -----END PGP SIGNATURE----- --==-=-=-- From debbugs-submit-bounces@debbugs.gnu.org Sat Jun 28 06:38:25 2025 Received: (at 78844) by debbugs.gnu.org; 28 Jun 2025 10:38:25 +0000 Received: from localhost ([127.0.0.1]:48388 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1uVSwy-0001PR-1R for submit@debbugs.gnu.org; Sat, 28 Jun 2025 06:38:25 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]:51950) by debbugs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.84_2) (envelope-from ) id 1uVSwu-0001OF-T4 for 78844@debbugs.gnu.org; Sat, 28 Jun 2025 06:38:22 -0400 Received: from fencepost.gnu.org ([2001:470:142:3::e]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1uVSwp-00059k-2O; Sat, 28 Jun 2025 06:38:15 -0400 DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=gnu.org; s=fencepost-gnu-org; h=References:Subject:In-Reply-To:To:From:Date: mime-version; bh=fe7ChXN/6EOqB5CnFys4ZYvSL1XQwjbg+QvQ1oKoNgI=; b=E+AM1zP+RWY6 vCkkUGjV/+lndLO4JvGbuL89lHHbp2alornIc2sOFeBUgpKp/tcBw2elDmy/DHWuA1kMKBQawNq8g r6TCWrVV9390Z0ZdQ8vJP1lktopv+kuWIp4lOgRmidh+QfDeUKLbNw99x4IlA6PHcHlkQx65GCTZp 4AWPiWgmFsUu9haU197cFu27KsrnPABjR1ApBlW5Ok3wNMJAFHXeCLmRZH5dajMpX2dXM6l78Xlch OxxLKTe1+61R22Q927/nhGIBlop8AxKNe6vWhb7Bi9J2cNAVKHNCPyVp5L7DLS470Rl6ydLwc0Fwv aTcm9Ff3ZI+Afdztd87cOw==; Date: Sat, 28 Jun 2025 13:38:12 +0300 Message-Id: <86zfds5ey3.fsf@gnu.org> From: Eli Zaretskii To: Xiyue Deng In-Reply-To: <87v7og6zhg.fsf@debian-hx90.lan> (message from Xiyue Deng on Sat, 28 Jun 2025 01:29:15 -0700) Subject: Re: bug#78844: 30.1; feature request: public interface for querying builtin packages and versions References: <878qlnz46j.fsf@debian-qemu> <87ecveo45m.fsf@zephyr.silentflame.com> <87zfe1aen6.fsf@debian-hx90.lan> <87jz50apab.fsf@debian-hx90.lan> <878qlgaeli.fsf@debian-hx90.lan> <874iw1a5si.fsf@zephyr.silentflame.com> <87cyap8ocu.fsf@debian-hx90.lan> <868qldbanx.fsf@gnu.org> <871pr490fu.fsf@debian-hx90.lan> <86wm8w8hpw.fsf@gnu.org> <87v7og6zhg.fsf@debian-hx90.lan> X-Spam-Score: -2.3 (--) X-Debbugs-Envelope-To: 78844 Cc: 78844@debbugs.gnu.org, monnier@iro.umontreal.ca, spwhitton@spwhitton.name X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -3.3 (---) > From: Xiyue Deng > Cc: spwhitton@spwhitton.name, 78844@debbugs.gnu.org, monnier@iro.umontreal.ca > Date: Sat, 28 Jun 2025 01:29:15 -0700 > > Eli Zaretskii writes: > > >> From: Xiyue Deng > >> Cc: spwhitton@spwhitton.name, 78844@debbugs.gnu.org, monnier@iro.umontreal.ca > >> Date: Fri, 27 Jun 2025 17:25:41 -0700 > >> > >> >> I don't seem to find any Elisp manual for package.el (there is one in > >> >> the Emacs manual but only has documents for user facing interfaces for > >> >> the package buffer). But do let me know if there is. > >> > > >> > There's the "Packaging" chapter in the ELisp manual. Whether it is a > >> > suitable place to add these interfaces depends on who is the intended > >> > audience of the interfaces. If that chapter is not suitable, maybe > >> > the "Loading" chapter is a better place. > >> > > >> > >> Admittedly I tried to be lazy and want to just add the new functions to > >> an existing section but didn't find any good fit. I just bit the bullet > >> and added a new section in package.texi for these functions. Please > >> help proofread. > > > > Thanks, comments below. However, packages.texi is not the right place > > for this stuff, because it's for the user manual, not for the ELisp > > reference manual. Since these APIs are for Lisp programmers, they > > should be documented in the ELisp manual, and the chapters I mentioned > > are in that manual. > > > > I'm a bit confused: the file I changed was doc/lispref/package.texi, > which I suppose is the ELisp manual, no? Sorry, my bad. Ignore that part of my review comments. > >> To be precise, package--builtin-versions doesn't have all the built-in > >> packages (which I think is a subset of the list populated by > >> package--builtins). As here we are more interested in packages that do > >> have a version associated, I have renamed the function to > >> `package-versioned-builtin-packages' to hopefully better convey the > >> intention. Let me know if this is desirable. > > > > The renaming could be fine if the intended users of this API will > > indeed only want to know about versioned built-in packages, and won't > > care about those who have no versions. Is that in fact true? If so, > > why aren't unversioned packages important? > > > > If we do want to return the built-in packages that have no versions, > > then the name should remain as it was, and we should instead amend the > > implementation to also return packages that have no versions. > > > > The motivation for introducing those functions is to be able to check > whether a built-in package has higher version compared to the same > package in other packaging system, which, in my case, is Debian's APT, > and could be useful for other packaging systems. See my first mail[1] > for a concrete motivating example and my reply[2] to Stefan's email for > a more explanations. OK, but that is a special case. Other callers might want the list regardless of whether the packages have a version, no? Limiting the usefulness only to packages that have a version sounds like a serious limitation to me. > The current status quo is that most Emacs addons that are packaged in > Debian are in `package--builtin-versions', so this is sufficient for our > use case. Plus, on testing I realized that `package--builtins' is not > populated by default until one loads `finder-inf', which means increased > loading time to use that information. I understand that it is easier to implement based on package--builtin-versions, but we should first decide whether this limitation is significant enough to justify a more complex implementation. I hope Stefan and others will chime in about this aspect. Thanks. From debbugs-submit-bounces@debbugs.gnu.org Sat Jun 28 11:38:42 2025 Received: (at 78844) by debbugs.gnu.org; 28 Jun 2025 15:38:42 +0000 Received: from localhost ([127.0.0.1]:51089 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1uVXdZ-0005qR-1B for submit@debbugs.gnu.org; Sat, 28 Jun 2025 11:38:41 -0400 Received: from mailscanner.iro.umontreal.ca ([132.204.25.50]:11955) by debbugs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.84_2) (envelope-from ) id 1uVXdV-0005pW-Nh for 78844@debbugs.gnu.org; Sat, 28 Jun 2025 11:38:38 -0400 Received: from pmg3.iro.umontreal.ca (localhost [127.0.0.1]) by pmg3.iro.umontreal.ca (Proxmox) with ESMTP id 4B44C440FD4; Sat, 28 Jun 2025 11:38:32 -0400 (EDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=iro.umontreal.ca; s=mail; t=1751125110; bh=Ubs3sHBYTvl4OneuHsOknEn1YmNtuHa8VoerFAjbZv0=; h=From:To:Cc:Subject:In-Reply-To:References:Date:From; b=FT5/teKfzJa6FR6uzs8afhKYeLtYv8AA0rlFo8lN2BCeEZD/masaB99hzlMnnmu19 mWShhdp7+nkOlPpUW13hjcxPy4rULYuQVEbqX1eq7Grfy8VazqDsSNYBqz40XR8mZ6 S2sU0zgXTqS2eHj/oACGgsWlE3ZaQgmJnN48XNABg8N7C7sDMrPbVmW3M6AfQthfQQ WnM9Tu1ihOAX+Z840acW519UH1qYJW/DXf1D+LWp1Q1J1X/8hHkZGJ9KSmSPdHReUk 0n/h2gTtdjDstqteyrvdmK5m0DNY9CDyzOVoSM782BxjeTPTqV9A/dKvqvNEVu0ZxZ 8uoot3/PnkG2w== Received: from mail01.iro.umontreal.ca (unknown [172.31.2.1]) by pmg3.iro.umontreal.ca (Proxmox) with ESMTP id D6144441032; Sat, 28 Jun 2025 11:38:30 -0400 (EDT) Received: from pastel (unknown [104.247.225.139]) by mail01.iro.umontreal.ca (Postfix) with ESMTPSA id A221D120506; Sat, 28 Jun 2025 11:38:30 -0400 (EDT) From: Stefan Monnier To: Eli Zaretskii Subject: Re: bug#78844: 30.1; feature request: public interface for querying builtin packages and versions In-Reply-To: <86wm8w8hpw.fsf@gnu.org> Message-ID: References: <878qlnz46j.fsf@debian-qemu> <87ecveo45m.fsf@zephyr.silentflame.com> <87zfe1aen6.fsf@debian-hx90.lan> <87jz50apab.fsf@debian-hx90.lan> <878qlgaeli.fsf@debian-hx90.lan> <874iw1a5si.fsf@zephyr.silentflame.com> <87cyap8ocu.fsf@debian-hx90.lan> <868qldbanx.fsf@gnu.org> <871pr490fu.fsf@debian-hx90.lan> <86wm8w8hpw.fsf@gnu.org> Date: Sat, 28 Jun 2025 11:38:29 -0400 User-Agent: Gnus/5.13 (Gnus v5.13) MIME-Version: 1.0 Content-Type: text/plain X-SPAM-INFO: Spam detection results: 0 ALL_TRUSTED -1 Passed through trusted hosts only via SMTP AWL -0.295 Adjusted score from AWL reputation of From: address BAYES_00 -1.9 Bayes spam probability is 0 to 1% DKIM_SIGNED 0.1 Message has a DKIM or DK signature, not necessarily valid DKIM_VALID -0.1 Message has at least one valid DKIM or DK signature DKIM_VALID_AU -0.1 Message has a valid DKIM or DK signature from author's domain DKIM_VALID_EF -0.1 Message has a valid DKIM or DK signature from envelope-from domain X-SPAM-LEVEL: X-Spam-Score: -2.3 (--) X-Debbugs-Envelope-To: 78844 Cc: 78844@debbugs.gnu.org, spwhitton@spwhitton.name, Xiyue Deng X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -3.3 (---) > The renaming could be fine if the intended users of this API will > indeed only want to know about versioned built-in packages, and won't > care about those who have no versions. Is that in fact true? If so, > why aren't unversioned packages important? FWIW, I'd consider it an error if an entry in `package--builtin-versions` has a nil "version". There are no such things as "unversioned packages" in this respect. So, I think the code is OK but the docstring should not mention that we return nil for packages without a version. Stefan From debbugs-submit-bounces@debbugs.gnu.org Sat Jun 28 17:04:07 2025 Received: (at 78844) by debbugs.gnu.org; 28 Jun 2025 21:04:07 +0000 Received: from localhost ([127.0.0.1]:52303 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1uVciU-0004f1-R6 for submit@debbugs.gnu.org; Sat, 28 Jun 2025 17:04:07 -0400 Received: from mail-pl1-x629.google.com ([2607:f8b0:4864:20::629]:50492) by debbugs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.84_2) (envelope-from ) id 1uVciR-0004dr-5V for 78844@debbugs.gnu.org; Sat, 28 Jun 2025 17:04:04 -0400 Received: by mail-pl1-x629.google.com with SMTP id d9443c01a7336-234d3261631so23762765ad.1 for <78844@debbugs.gnu.org>; Sat, 28 Jun 2025 14:04:03 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1751144637; x=1751749437; darn=debbugs.gnu.org; h=mime-version:message-id:date:user-agent:references:in-reply-to :subject:cc:to:from:from:to:cc:subject:date:message-id:reply-to; bh=eEv420hTZM/8Rvb4F0bDEAQtM8oTBCIf0Qi2S6VuYKs=; b=I3g2kJ3g/PhdkYdPqQTQchzyd5GGOFnnHiKzzU8vcgg1GhOjsq/4zlqygpiG5yz3i5 +asD0d+eE157y58W7nER1iLn+h0+AqxSnAHyZvU/EeWsYDBNnwHoXukgnDW2zRRdBgmm h1KBQUndDqeQobEKGuVkFC+E3O0+x7v6IKU+q8RKcItfMi7QenJqm7Ib2Vi3kr1uvgpp lHFWSJpaQ8voxvUVSPsRHLXFI4LkL9w9VtUltEGNRQ5uoZeoMtfYC7gmH+RUQe5zGx70 Bfusp263lYxpx1adjBrzbc21oqIlPDX5M1Z11Rh5OHMpnhPLcYn4xTzudiapT4y6TohN /GGA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1751144637; x=1751749437; h=mime-version:message-id:date:user-agent:references:in-reply-to :subject:cc:to:from:x-gm-message-state:from:to:cc:subject:date :message-id:reply-to; bh=eEv420hTZM/8Rvb4F0bDEAQtM8oTBCIf0Qi2S6VuYKs=; b=LaQsFI2DLnzDhbqePIRm8PFI7E5uTgDN2VJZv32+mDrfT8rfCzczbqdDAVykiQ3jd2 nOGcyjfv4mcFS/zrztgqWjpQNawTJEwk9kAgC6vGj6GtSoJ6yAxi1u6V1F7PWLtDctE0 p7AdvwOJ3wGmGvQFKsvUk744BysUJ7KY+aA2XP2g0hfSdX9eqxSGGBES2BkXBvmcxULD TAL8sHZywyFDJYWTwsUhir7nfBGmcq9b402wrQGrViGkeUdSqTzdPuEkrQyP4We41O7F p0cGAjgGJajJEzyRyuJTG95/FWpSSIjaLV+sG+yo+s32TgaHu59aVvqBfgx274MSH/r6 aCZQ== X-Forwarded-Encrypted: i=1; AJvYcCU+gZMTJhT+pJnnnZsNlZOvC2k5lo8/OZ4iYe8rlgCSRp8a998TSHKMBaNNxesdRhKr3u7/Qw==@debbugs.gnu.org X-Gm-Message-State: AOJu0YzNByPP6O4EdllCLM7tgALtoQGjDJFDjXuke0Fn53PnG1uwrxwm OOAe9Z/W2elrCvzA+qnDnFiKrr+QCkm27XAAvzaUQmjBhbsN0JtFVRfVJv/73A== X-Gm-Gg: ASbGnctTCyjoFSl4sxjGEF1FGpKOCH2UwYCJOfWyalY9mG79giwXVhn3Xx/OhMNBU/B m51G+VDmyZ4gSe3W0KIeYqSUeUrofK2jmOrW2RvE+S+UR7bHTnslBMFG08eX/ddZv9rlQrlhbJ0 VsP13YsNcv+OzizRJIeuMmggsB/fRaJHKSH2wF0eCzfos5NBzTpLYzcZh0OpZAKNtgxhaghwbaf 1K6talPAO1B5xBkeIA2He2QOgOLxhmpohdSqbxruDIRoOAMSiqNI/8LqUpWO1GrXoPN1yuxDGUT ttSDm0LCCH4BraC4sllCrB94iFo02/BgFXMIx17vu/Fi5SPPUM6UoDuOOM0BfFwcWl9UTA91pj4 CVbgREyOaQnTvh1LoJsHYZSs3BKh3Gso= X-Google-Smtp-Source: AGHT+IFEfVzoOkNrzfNDEmGCRvT8BcPljQQWOMbX8Ko4ovdKn6wqtXk5cYcm4cwLwrcMmuTR0iG9Og== X-Received: by 2002:a17:903:32c8:b0:235:2e0:aa9 with SMTP id d9443c01a7336-23ac45d5f4amr121377515ad.14.1751144636631; Sat, 28 Jun 2025 14:03:56 -0700 (PDT) Received: from debian-hx90 (syn-076-094-249-045.res.spectrum.com. [76.94.249.45]) by smtp.gmail.com with ESMTPSA id d9443c01a7336-23acb3ad23csm43662885ad.145.2025.06.28.14.03.55 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Sat, 28 Jun 2025 14:03:55 -0700 (PDT) From: Xiyue Deng To: Stefan Monnier , Eli Zaretskii Subject: Re: bug#78844: 30.1; feature request: public interface for querying builtin packages and versions In-Reply-To: References: <878qlnz46j.fsf@debian-qemu> <87ecveo45m.fsf@zephyr.silentflame.com> <87zfe1aen6.fsf@debian-hx90.lan> <87jz50apab.fsf@debian-hx90.lan> <878qlgaeli.fsf@debian-hx90.lan> <874iw1a5si.fsf@zephyr.silentflame.com> <87cyap8ocu.fsf@debian-hx90.lan> <868qldbanx.fsf@gnu.org> <871pr490fu.fsf@debian-hx90.lan> <86wm8w8hpw.fsf@gnu.org> User-Agent: Notmuch/0.39 (https://notmuchmail.org) Emacs/30.1 (x86_64-pc-linux-gnu) Date: Sat, 28 Jun 2025 14:03:52 -0700 Message-ID: <87sejj7f47.fsf@debian-hx90.lan> MIME-Version: 1.0 Content-Type: multipart/signed; boundary="=-=-="; micalg=pgp-sha512; protocol="application/pgp-signature" X-Spam-Score: 0.0 (/) X-Debbugs-Envelope-To: 78844 Cc: 78844@debbugs.gnu.org, spwhitton@spwhitton.name X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -1.0 (-) --=-=-= Content-Type: text/plain Content-Transfer-Encoding: quoted-printable Hi Stefan, Stefan Monnier writes: >> The renaming could be fine if the intended users of this API will >> indeed only want to know about versioned built-in packages, and won't >> care about those who have no versions. Is that in fact true? If so, >> why aren't unversioned packages important? > > FWIW, I'd consider it an error if an entry in > `package--builtin-versions` has a nil "version". > There are no such things as "unversioned packages" in this respect. > So, I think the code is OK but the docstring should not mention that > we return nil for packages without a version. > I think in principle you are correct given that the current public functions don't provide a way to obtain such a symbol. But it's possible that someone can construct a symbol, either by hand or through a new interface that queries all builtin packages, which is in `package--builtins' but not in `package--builtin-versions', and the function will return nil. Do you think it's worth keeping such possibility into consideration? > > Stefan > =2D-=20 Regards, Xiyue Deng --=-=-= Content-Type: application/pgp-signature; name="signature.asc" -----BEGIN PGP SIGNATURE----- iQJGBAEBCgAwFiEEiKQfd6o81mjI+LWALell7WOCXJMFAmhgWLgSHG1hbnBoaXpA Z21haWwuY29tAAoJEC3pZe1jglyT60cP/R0YcoW26nIg/8zMNq2iLL3U1N5XbK3h Abf0ER8Xk6GA+ZmWDnFOTz+n0IecDeSDLZ+tpwOZVliVzrLD6nZX+LRzWdomsn09 O55c1VBDpasXbM5khUUIuJSQuA8v37nJjmGcLCsm+a22SnzmWfnuIyADojYPWjZ0 1PIN9s4eqJco4ZUAwljztV7aRWQ13+PkmhpPH/9spKZnEMOz5zAEbFc4772f/SNb VRZ/JxJrZost42/URvr3OTwIHmB7ZHVdQ8Xu67TXWEAOI6SCkwDsw3Q5KvHnU7c5 zyM883ItzjdV/WVaGFGKcqFWFPT5rXad9VWVW8VoomdNjYOeu5+Xm3AeHBAoNnFY RqUQWguzldt3UpZqilG360H4KnSM4InDGT8vGclfc1yEJEGCa4V9mfzFtImW7kl4 2vpw2eShhv/2zDhUOgATVQqzueOK/Qvyj7mJZQQyqmMAsNsyLj34NR81ADZZdhX1 GloSxoIy5bylVfOgGREVAFDUxGNTNfhxPeM7VI6vxvoa696uhRAXS/mxvQYdlDpj rxSSMG5H/gDdpXazCUf8rep2poBjS6k5+l6PEuZSvl9F92TchRYNPrt94550xyhm jV11XiPg41VtxR8iHW3q9NT6jHB98lkFHZ9lzZPFW1j9+61fepBakLZIoZiEnT7D MXGtg2W8mLtG =pNSK -----END PGP SIGNATURE----- --=-=-=-- From debbugs-submit-bounces@debbugs.gnu.org Sat Jun 28 17:27:21 2025 Received: (at 78844) by debbugs.gnu.org; 28 Jun 2025 21:27:21 +0000 Received: from localhost ([127.0.0.1]:52392 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1uVd4v-0000Av-3t for submit@debbugs.gnu.org; Sat, 28 Jun 2025 17:27:21 -0400 Received: from mailscanner.iro.umontreal.ca ([132.204.25.50]:22929) by debbugs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.84_2) (envelope-from ) id 1uVd4t-00009t-Ff for 78844@debbugs.gnu.org; Sat, 28 Jun 2025 17:27:15 -0400 Received: from pmg2.iro.umontreal.ca (localhost.localdomain [127.0.0.1]) by pmg2.iro.umontreal.ca (Proxmox) with ESMTP id 224A5809FA; Sat, 28 Jun 2025 17:27:10 -0400 (EDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=iro.umontreal.ca; s=mail; t=1751146025; bh=04AivhUFHUaCIeF2/Yj7Q2EKVtcxs0ks7AIGIs5mSlk=; h=From:To:Cc:Subject:In-Reply-To:References:Date:From; b=LfMBM5Yo2c43tfwSn0Zpj9lv05BMaJ2Yda2t3eNgy4OdexHkiKFMWAauGM8GaAwA2 XwC6Cq4BfYmqMRIQ4EwYf4/sHyIkKy2fuRhvm1N5DtOAytCxLfKFGKLqlN/aReqtZ+ 9FXhvuk1HYgz08+7VKYSoHHyPnz81aPrRVuqUSELmOicR/8L2UHJh2PE7gx+k/2MEa 7UqX9nzkwiRgY+ivCnVVHUItOVRrDzHFWc+x+vC8FK4CmY/wQxoW2h5QpZNCxtnABU gQd1uvhUZO8jmIF9+HEST+0UEX9VV7/+HiNmRIzNv321MdD9O8u5o8DNa0bw6fuSnR 47ijJJEpPixMw== Received: from mail01.iro.umontreal.ca (unknown [172.31.2.1]) by pmg2.iro.umontreal.ca (Proxmox) with ESMTP id 2F0DE80925; Sat, 28 Jun 2025 17:27:05 -0400 (EDT) Received: from pastel (unknown [104.247.225.139]) by mail01.iro.umontreal.ca (Postfix) with ESMTPSA id EEC0F1202C1; Sat, 28 Jun 2025 17:27:04 -0400 (EDT) From: Stefan Monnier To: Xiyue Deng Subject: Re: bug#78844: 30.1; feature request: public interface for querying builtin packages and versions In-Reply-To: <87sejj7f47.fsf@debian-hx90.lan> Message-ID: References: <878qlnz46j.fsf@debian-qemu> <87ecveo45m.fsf@zephyr.silentflame.com> <87zfe1aen6.fsf@debian-hx90.lan> <87jz50apab.fsf@debian-hx90.lan> <878qlgaeli.fsf@debian-hx90.lan> <874iw1a5si.fsf@zephyr.silentflame.com> <87cyap8ocu.fsf@debian-hx90.lan> <868qldbanx.fsf@gnu.org> <871pr490fu.fsf@debian-hx90.lan> <86wm8w8hpw.fsf@gnu.org> <87sejj7f47.fsf@debian-hx90.lan> Date: Sat, 28 Jun 2025 17:27:03 -0400 User-Agent: Gnus/5.13 (Gnus v5.13) MIME-Version: 1.0 Content-Type: text/plain X-SPAM-INFO: Spam detection results: 0 ALL_TRUSTED -1 Passed through trusted hosts only via SMTP AWL -0.306 Adjusted score from AWL reputation of From: address BAYES_00 -1.9 Bayes spam probability is 0 to 1% DKIM_SIGNED 0.1 Message has a DKIM or DK signature, not necessarily valid DKIM_VALID -0.1 Message has at least one valid DKIM or DK signature DKIM_VALID_AU -0.1 Message has a valid DKIM or DK signature from author's domain DKIM_VALID_EF -0.1 Message has a valid DKIM or DK signature from envelope-from domain X-SPAM-LEVEL: X-Spam-Score: -2.3 (--) X-Debbugs-Envelope-To: 78844 Cc: 78844@debbugs.gnu.org, Eli Zaretskii , spwhitton@spwhitton.name X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -3.3 (---) >> FWIW, I'd consider it an error if an entry in >> `package--builtin-versions` has a nil "version". >> There are no such things as "unversioned packages" in this respect. >> So, I think the code is OK but the docstring should not mention that >> we return nil for packages without a version. > > I think in principle you are correct given that the current public > functions don't provide a way to obtain such a symbol. But it's > possible that someone can construct a symbol, either by hand or through > a new interface that queries all builtin packages, which is in > `package--builtins' but not in `package--builtin-versions', and the > function will return nil. Do you think it's worth keeping such > possibility into consideration? Returning nil for packages (aka symbols) which aren't in `package--builtin-versions` is fine and I have no objection to documenting it. My objection is to if @var{package} does not have a version but not to if @var{package} ... is not a buil-tin package [ BTW, note the typo above. ] Stefan From debbugs-submit-bounces@debbugs.gnu.org Sat Jun 28 20:36:19 2025 Received: (at 78844) by debbugs.gnu.org; 29 Jun 2025 00:36:20 +0000 Received: from localhost ([127.0.0.1]:52911 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1uVg1p-00056f-Um for submit@debbugs.gnu.org; Sat, 28 Jun 2025 20:36:19 -0400 Received: from mail-pg1-x52c.google.com ([2607:f8b0:4864:20::52c]:57740) by debbugs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.84_2) (envelope-from ) id 1uVg1l-00055C-UA for 78844@debbugs.gnu.org; Sat, 28 Jun 2025 20:36:15 -0400 Received: by mail-pg1-x52c.google.com with SMTP id 41be03b00d2f7-b34a71d9208so829662a12.3 for <78844@debbugs.gnu.org>; Sat, 28 Jun 2025 17:36:13 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1751157367; x=1751762167; darn=debbugs.gnu.org; h=mime-version:message-id:date:user-agent:references:in-reply-to :subject:cc:to:from:from:to:cc:subject:date:message-id:reply-to; bh=oLXBBBNaF+ecEi53jbg5weZ2cWeNsQW9uL5wmiebZL4=; b=UhHDdNv0chuT96bnOf/mJP2SONvRyahwAYC1vn6v+LFuA/zZIkrUyoHjUwPyW9hP6f +5U1Ovn5mi6zxzLXthLfTBH+sMLxySRQfDp609yqg42J2Kzj4Cqeoob7NkiEvA5mCuMp ugTJS6aBgoXtehi235isj/RX5IgY/RlnR54VdydBpNQ/yAPb1Rii0I8cF3VMamiJxIya UbNHIV9ze0OrGlG9OzKm1iwAcGMVQDiqTcsVKSEwy26N9M2Rk61BRxvzrlPi3erYDexo xncE8gRk4puzlbAscrr0P3yv6UByJdEhmvuOXTHWWt++boMTGhBOCOKMiU4szjljfUyJ Z54g== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1751157367; x=1751762167; h=mime-version:message-id:date:user-agent:references:in-reply-to :subject:cc:to:from:x-gm-message-state:from:to:cc:subject:date :message-id:reply-to; bh=oLXBBBNaF+ecEi53jbg5weZ2cWeNsQW9uL5wmiebZL4=; b=i/FPJjfxdFvz05wmQRXCts6ReMxKZbpNtjFN/+oOGhH5EmQ2kTLPFtYejtXSMyzX8H laGT2OcNSpaCuJ4T9s7K6JO/0R4KXsP0NNAQZ3dKjwoafF1y7cymSKymeskPLSxF6yGQ d0shfUlY5SqBTGY1J1lK9tJCDQ/9u5VpwXJ/FxtG19XII5C/FQERD+OeMKAdqB9+CE6r rl+QcJhygz6OsmtiMAhHtNyn602GqJDmciT9mSKMau3K1pDJwVYSMuMaQu4woC6n231o PcBlQ2eXZE4ij4OarabbxFltBTb9ldMNC+AwR7LqHWTg82PjlASdQpFEm3K3WBhi8z1B +BEA== X-Forwarded-Encrypted: i=1; AJvYcCXWi7skBfyB9bRa+lcGrxghOSlrAqOaSlKyp7ubrvUTVowQhtB+s51qavYFCKZfJvTkIbCtuw==@debbugs.gnu.org X-Gm-Message-State: AOJu0YyGihpXdKjAlOPFW/FUhKUKKdBhVuq+Mpqu9Gpn6ActJgpEuqfR nWlsw+ffHi9cPqFlwX2Vt/r8zxhIUirIxN/JEQNi4YgvGE383n2Ml4SE/HaRCA== X-Gm-Gg: ASbGncuSon3XSDZIJZXwCVDs7qTP3IlfCQ2PuY+oevVEDkjGjQcZnUOmEvpYy6Bpn6F 9YrAXaSJSbwWxi5wVK094nLqDa4eIbMOQZZXN6AxwaNLYD4tLNzus6pmtHHalIjnBQX8bhq4qwn cIem8CDb2XdbiDjFdyKT0d/3BnTMbZmFzHU9nUlHtmsc/NSgdy4kVR6XF2s9ZhrIQQfti3fdEd1 HBQHSME2KHV3jejwQ+Lh5BdIkJcM0gDP+zjJcNx5L+3VP/lYYoX8yeYT7MJhL6tRM3KiePYGnVr eN25cPhM9+LsssMOPdpfZ/UjJNDMi2kz1aqNd7gAC3aC6tcuw97bV/ppOw06X9A9PqIPQYavQ3W LCyh1ak2u1+NvMdcdS7v9eg69n2INsn8= X-Google-Smtp-Source: AGHT+IFot8LMpRukDQ7zniSlokDNF5kxb4hhrZMGEzgUKpJmBaoH7cd9gdwZ867/okNfqRNAMDcHsg== X-Received: by 2002:a17:90b:5626:b0:312:18e:d930 with SMTP id 98e67ed59e1d1-318c92b7872mr10876437a91.19.1751157367323; Sat, 28 Jun 2025 17:36:07 -0700 (PDT) Received: from debian-hx90 (syn-076-094-249-045.res.spectrum.com. [76.94.249.45]) by smtp.gmail.com with ESMTPSA id 98e67ed59e1d1-318c13a16d4sm5453460a91.11.2025.06.28.17.36.06 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Sat, 28 Jun 2025 17:36:06 -0700 (PDT) From: Xiyue Deng To: Stefan Monnier Subject: Re: bug#78844: 30.1; feature request: public interface for querying builtin packages and versions In-Reply-To: References: <878qlnz46j.fsf@debian-qemu> <87ecveo45m.fsf@zephyr.silentflame.com> <87zfe1aen6.fsf@debian-hx90.lan> <87jz50apab.fsf@debian-hx90.lan> <878qlgaeli.fsf@debian-hx90.lan> <874iw1a5si.fsf@zephyr.silentflame.com> <87cyap8ocu.fsf@debian-hx90.lan> <868qldbanx.fsf@gnu.org> <871pr490fu.fsf@debian-hx90.lan> <86wm8w8hpw.fsf@gnu.org> <87sejj7f47.fsf@debian-hx90.lan> User-Agent: Notmuch/0.39 (https://notmuchmail.org) Emacs/30.1 (x86_64-pc-linux-gnu) Date: Sat, 28 Jun 2025 17:36:03 -0700 Message-ID: <87plen75ak.fsf@debian-hx90.lan> MIME-Version: 1.0 Content-Type: multipart/signed; boundary="==-=-="; micalg=pgp-sha512; protocol="application/pgp-signature" X-Spam-Score: 0.0 (/) X-Debbugs-Envelope-To: 78844 Cc: 78844@debbugs.gnu.org, Eli Zaretskii , spwhitton@spwhitton.name X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -1.0 (-) --==-=-= Content-Type: multipart/mixed; boundary="=-=-=" --=-=-= Content-Type: text/plain Content-Transfer-Encoding: quoted-printable Stefan Monnier writes: >>> FWIW, I'd consider it an error if an entry in >>> `package--builtin-versions` has a nil "version". >>> There are no such things as "unversioned packages" in this respect. >>> So, I think the code is OK but the docstring should not mention that >>> we return nil for packages without a version. >> >> I think in principle you are correct given that the current public >> functions don't provide a way to obtain such a symbol. But it's >> possible that someone can construct a symbol, either by hand or through >> a new interface that queries all builtin packages, which is in >> `package--builtins' but not in `package--builtin-versions', and the >> function will return nil. Do you think it's worth keeping such >> possibility into consideration? > > Returning nil for packages (aka symbols) which aren't in > `package--builtin-versions` is fine and I have no objection to > documenting it. > > My objection is to > > if @var{package} does not have a version > > but not to > > if @var{package} ... is not a buil-tin package > I see. Though technically people can get a package symbol from `package--builtins', and hence built-in, but not in `package--builtin-versions', and hence does not have a version associated. Maybe I can be more explicit to say "if @var{package} is built-in but does not have a version ..."? (Revised as such.) > [ BTW, note the typo above. ] Thanks for spotting. Also fixed. > > > Stefan > =2D-=20 Regards, Xiyue Deng --=-=-= Content-Type: text/x-diff Content-Disposition: attachment; filename=0001-Add-public-interfaces-for-accessing-builtin-package-.patch Content-Transfer-Encoding: quoted-printable From=20c5d8fe074c321cce8194b11d032bd2a80e01d526 Mon Sep 17 00:00:00 2001 From: Xiyue Deng Date: Fri, 20 Jun 2025 21:34:45 -0700 Subject: [PATCH] Add public interfaces for accessing builtin package info (Bug#78844) * lisp/emacs-lisp/package.el (package-builtin-packages) (package-builtin-package-version): New functions. * doc/lispref/package.texi: Add a section 'Package Information' with documentation for the new functions. * etc/NEWS: Add entry for 'package-versioned-builtin-packages' and 'package-builtin-package-version'. =2D-- doc/lispref/package.texi | 25 +++++++++++++++++++++++++ etc/NEWS | 7 +++++++ lisp/emacs-lisp/package.el | 15 +++++++++++++++ 3 files changed, 47 insertions(+) diff --git a/doc/lispref/package.texi b/doc/lispref/package.texi index c96c2f5d234..5341e3e794a 100644 =2D-- a/doc/lispref/package.texi +++ b/doc/lispref/package.texi @@ -424,3 +424,28 @@ Forwards-Compatibility the manual installed, you can also read the @url{https://elpa.gnu.org/packages/doc/compat.html#Usage, Online Compat manual}. + +@node Package Information +@section Get built-in packages and versions +@cindex package information + +Emacs ships built-in packages which may also be packaged externally on +ELPA. Knowing whether a built-in package has a higher version than on +ELPA or other packaging systems may be useful for external packaging +tools. Those who would like to query such information can use the +following functions. + +@defun package-versioned-builtin-packages +This function returns the list of packages that are built-in to Emacs +and have a version. The returned list contains one symbol for each +built-in package that has a version, which are likely also packaged +externally on ELPA. +@end defun + +@defun package-builtin-package-version package +This function returns the version of a built-in @var{package}. +@var{package} should be a symbol. The returned value is a list of +integers representing the version of PACKAGE in the format returned by +the function @code{version-to-list}, or nil if @var{package} is built-in +but has no version or is not a built-in package. +@end defun diff --git a/etc/NEWS b/etc/NEWS index eb85baae341..5ea5f5314a2 100644 =2D-- a/etc/NEWS +++ b/etc/NEWS @@ -1965,6 +1965,13 @@ installed, total number of packages from all the pac= kage archives, total number of packages to upgrade and total number of new packages available. =20 ++++ +*** New functions to query builtin package information. +'package-versioned-builtin-packages' returns a list of symbols of +built-in packages; 'package-builtin-package-version' returns the +version-list of a given package symbol. These functions provide stable +interfaces for external tools to query built-in package information. + ** RCIRC =20 +++ diff --git a/lisp/emacs-lisp/package.el b/lisp/emacs-lisp/package.el index 9bcffb1df0b..ccdfb13cfd7 100644 =2D-- a/lisp/emacs-lisp/package.el +++ b/lisp/emacs-lisp/package.el @@ -669,6 +669,21 @@ package-alist loaded and/or activated, customize `package-load-list'.") (put 'package-alist 'risky-local-variable t) =20 +;;;; Public interfaces for accessing built-in package info + +(defun package-versioned-builtin-packages () + "Return a list of all the versioned built-in packages. +The return value is a list of names of built-in packages represented as +symbols." + (mapcar #'car package--builtin-versions)) + +(defun package-builtin-package-version (package) + "Return the version of a built-in PACKAGE given by its symbol. +The return value is a list of integers representing the version of +PACKAGE, in the format returned by `version-to-list', or nil if the +package is built-in but has no version or is not a built-in package." + (alist-get package package--builtin-versions)) + ;;;###autoload (defvar package-activated-list nil ;; FIXME: This should implicitly include all builtin packages. =2D-=20 2.47.2 --=-=-=-- --==-=-= Content-Type: application/pgp-signature; name="signature.asc" -----BEGIN PGP SIGNATURE----- iQJGBAEBCgAwFiEEiKQfd6o81mjI+LWALell7WOCXJMFAmhginMSHG1hbnBoaXpA Z21haWwuY29tAAoJEC3pZe1jglyTNY4P/2uzhEeeJ9f+bIbn0cIJ0mt/C8pjwGAr 5nn7l1ZIAcP3eSYioiCLy3jOCUsyhLOgsgActez6CesYmdNk0md02rSsd6f4FT5i 8Gy4LRXmTlhKUWLWNF+lhgwJaktVBQKPbkxiW0leYEUuYs1cI2hWVS7B7KsY/s3H EoM+BEjipX5RZ97uT3d2qBFcmBfF4ciTMf9vosUZEZSzp71duSVUDByVsE6DChUu ieufuH4UNl7U77xm/4TYZo22QeH7piqhxqeImM3/1cbfatd46SKlmUfTCq7DKUop xJPLqXNzQQmVC6+GxMsWH2Lky3RNQn+Y531OfEeGQHxrnu44uXoUP13M/usS6yMz tfX/cKMOjPb6AEJiB4gWnCcdI1mAE2T0f1wn95GIb7OdjaPiBE+6fQ4F2aRs92lT EV6qjSxoOHSx9kOnugdxnpsK51Yc9xtED6spxpX/2jRHRhCNqHKeSoOEzdE1UkHw sqwr1idi1utvD2Upg5DrXADGdiQ+dyvnG2DGzmwuEpJ1Xob3fF8xdsQTN4J3op3J rCLG2VptFgpZXuoPfQAQRZRBgZQ8tmnEgIPHDn+YUgNF0GL1AIXZ6d3A95zBcqNT JItiD3S2van/D+hW/y36kF0EK/uvMUAZOSRxjrzZgKZeb1TxJFvT9QyJEuuz8PJb HmDTciJ3a11m =i7QV -----END PGP SIGNATURE----- --==-=-=-- From debbugs-submit-bounces@debbugs.gnu.org Thu Jul 10 19:06:12 2025 Received: (at 78844) by debbugs.gnu.org; 10 Jul 2025 23:06:13 +0000 Received: from localhost ([127.0.0.1]:60323 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1ua0LC-0006uc-Il for submit@debbugs.gnu.org; Thu, 10 Jul 2025 19:06:12 -0400 Received: from mail-pl1-x62c.google.com ([2607:f8b0:4864:20::62c]:60624) by debbugs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.84_2) (envelope-from ) id 1ua0L8-0006sc-Gh for 78844@debbugs.gnu.org; Thu, 10 Jul 2025 19:06:08 -0400 Received: by mail-pl1-x62c.google.com with SMTP id d9443c01a7336-23649faf69fso12594765ad.0 for <78844@debbugs.gnu.org>; Thu, 10 Jul 2025 16:06:06 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1752188760; x=1752793560; darn=debbugs.gnu.org; h=mime-version:message-id:date:user-agent:references:in-reply-to :subject:cc:to:from:from:to:cc:subject:date:message-id:reply-to; bh=Qn8ksE96/amlrj2lFTSo0sndXTby8GCx6Po6Lx2DChU=; b=A52dwXOGssL7qNBQ5pYb+c19hH/fZzPDkuGmc5WfiAwOUSnk1TZDPXJaDhHko3di9S UAkaj8EEt4tihIqnnTxbtT4uAE41mlR52JRwmtlMZdpA7hLEMexg5AX6Uy6yLc5DOtCB OKSNF1gAyqOSwB2/unVAX5wlVbYRs4Zrv6OccFzJ/2vhTW1SIvrmm49cTViXfsoRhekF bZrcKhSCCyTF2MIK6r4LE4xtIhbUqsaUUHxoRH+V2y5txCJ2OMmHZ5HqSTerWpMMlvD7 zOEFuEque2dzxWyDOV8mjRE1WDkm93oo56Vd3ODJRrJCiynl7zP1ZaSS/yOCrKdLUWkj e8Yw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1752188760; x=1752793560; h=mime-version:message-id:date:user-agent:references:in-reply-to :subject:cc:to:from:x-gm-message-state:from:to:cc:subject:date :message-id:reply-to; bh=Qn8ksE96/amlrj2lFTSo0sndXTby8GCx6Po6Lx2DChU=; b=T6d2a9hTECdZHuKVpu96Gc4QzLWD+JiwUrMwlEL2NkHy2yVvpSLNiYKx4jiJ6/A3tb lYJDU5ycrOaWy+PbIYotZoGF3Oax94GtDrnwmOjB/3Fk28sSTwibj4Xtt2THlLoVKTnf G4BYkhKEkhkx4tUEHwWUeucTNiZT13LZSGLxgb5E01rqqkQKrpQN1htnH4ISU5jBYnN3 ZMztC9CybxobOcxb8bmGHqNekA8YQ+YOu9Hrz5MSdBCCMR65GfNZS1HoWYVgknp/O5Vy OuTkO1y2dsU1Gxz+HisQjq60AB9/9N1DbcaHMOxj5Lf2bzy26uGIuLBD4d/Rse/JyeUG xs1Q== X-Forwarded-Encrypted: i=1; AJvYcCV7ugwplcfLmgV/fAcVW+8jkdDSkUmigOZOqgOFY4W4+f0kNR5M/XCl0UOEtk9/+q0m0ctYiA==@debbugs.gnu.org X-Gm-Message-State: AOJu0Yzdo8bNj3SC/tJKcTaNmFnk7/hjfuuF4dwafpC8ckXxQQ8V9zkV UvqPTgiH8DskzzImB84IfMGx5pM7+obJu6P5gI4z9wFkxBsFali99FENSZIhHQ== X-Gm-Gg: ASbGncuB7Xnsn//TtISkBKcAuZZb91uNx9hKTczjYjx7IQKRQ6jNCjzPhQ0p2BVblXQ sCs/4DkEYugwhdYuD5dAlBFWiGIeDy/vwqnSEkCXSjdgS+/aUWYmmoFDeeoSX5H0RXZRlXo2ZdA +6vxWxFDMQt4qjMsOB+vBnk++QuGZgMc2V49j6Fj2mWzIGln2/1XnfL7VgvxClFNc1mlwrEsP/4 n3v2bwPbF+Q8j1wz7MEmCiRa6w2Kq6B/RKVSdZLb9VUyh2OPu//H7IF9M4Hffcz9USd1gChhvUO H/k3JFMWko7DaLFklAVzpls3W29RcAJjGeIOphRnv+pxMK0zH4HGVGeGz/CY0TNUT7DpORwydxf icT6Tkiy0AOIiD/tlGTbGwq7c0sTXv1+N63HgGoVuRro0bFXGtFdUkYNSPnAJEqa+Y6k= X-Google-Smtp-Source: AGHT+IHEas9yGQwHYqAPIbiv4qcZIdJHKsA8oT9+dIgiIGKkFjzG5NNHmdwC53F9qP6tIytvwY8dlg== X-Received: by 2002:a17:902:f691:b0:235:880:cf70 with SMTP id d9443c01a7336-23dee1e8c82mr10628495ad.14.1752188759955; Thu, 10 Jul 2025 16:05:59 -0700 (PDT) Received: from debian-hx90 (syn-076-094-249-045.res.spectrum.com. [76.94.249.45]) by smtp.gmail.com with ESMTPSA id d9443c01a7336-23de42ad268sm30643265ad.77.2025.07.10.16.05.58 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 10 Jul 2025 16:05:59 -0700 (PDT) From: Xiyue Deng To: Stefan Monnier Subject: Re: bug#78844: 30.1; feature request: public interface for querying builtin packages and versions In-Reply-To: <87plen75ak.fsf@debian-hx90.lan> References: <878qlnz46j.fsf@debian-qemu> <87ecveo45m.fsf@zephyr.silentflame.com> <87zfe1aen6.fsf@debian-hx90.lan> <87jz50apab.fsf@debian-hx90.lan> <878qlgaeli.fsf@debian-hx90.lan> <874iw1a5si.fsf@zephyr.silentflame.com> <87cyap8ocu.fsf@debian-hx90.lan> <868qldbanx.fsf@gnu.org> <871pr490fu.fsf@debian-hx90.lan> <86wm8w8hpw.fsf@gnu.org> <87sejj7f47.fsf@debian-hx90.lan> <87plen75ak.fsf@debian-hx90.lan> User-Agent: Notmuch/0.39 (https://notmuchmail.org) Emacs/30.1 (x86_64-pc-linux-gnu) Date: Thu, 10 Jul 2025 16:05:55 -0700 Message-ID: <87cya77ijw.fsf@debian-hx90.lan> MIME-Version: 1.0 Content-Type: multipart/signed; boundary="=-=-="; micalg=pgp-sha512; protocol="application/pgp-signature" X-Spam-Score: 0.0 (/) X-Debbugs-Envelope-To: 78844 Cc: 78844@debbugs.gnu.org, Eli Zaretskii , spwhitton@spwhitton.name X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -1.0 (-) --=-=-= Content-Type: text/plain Content-Transfer-Encoding: quoted-printable Hi Stefan, Xiyue Deng writes: > Stefan Monnier writes: > >>>> FWIW, I'd consider it an error if an entry in >>>> `package--builtin-versions` has a nil "version". >>>> There are no such things as "unversioned packages" in this respect. >>>> So, I think the code is OK but the docstring should not mention that >>>> we return nil for packages without a version. >>> >>> I think in principle you are correct given that the current public >>> functions don't provide a way to obtain such a symbol. But it's >>> possible that someone can construct a symbol, either by hand or through >>> a new interface that queries all builtin packages, which is in >>> `package--builtins' but not in `package--builtin-versions', and the >>> function will return nil. Do you think it's worth keeping such >>> possibility into consideration? >> >> Returning nil for packages (aka symbols) which aren't in >> `package--builtin-versions` is fine and I have no objection to >> documenting it. >> >> My objection is to >> >> if @var{package} does not have a version >> >> but not to >> >> if @var{package} ... is not a buil-tin package >> > > I see. Though technically people can get a package symbol from > `package--builtins', and hence built-in, but not in > `package--builtin-versions', and hence does not have a version > associated. Maybe I can be more explicit to say "if @var{package} is > built-in but does not have a version ..."? (Revised as such.) > >> [ BTW, note the typo above. ] > > Thanks for spotting. Also fixed. > Friendly ping. I wonder whether the updated version is in a more acceptable state? > [...] =2D-=20 Regards, Xiyue Deng --=-=-= Content-Type: application/pgp-signature; name="signature.asc" -----BEGIN PGP SIGNATURE----- iQJGBAEBCgAwFiEEiKQfd6o81mjI+LWALell7WOCXJMFAmhwR1MSHG1hbnBoaXpA Z21haWwuY29tAAoJEC3pZe1jglyTGeUP/jSqEHi9bjRorTRl79sZcZti+0buS0iJ TRf7jSTcTcLyWbqNY4kR5Yz4bpW+t1ZsH/5cACXKzYC5Be+2HkQC1/MLMF+wKPYG W4CNF0CmjhjnWqJGozm7BANT56/iQrJBwCeaP+qtcbnrnGWnIUW6jJQtwiQbbpBH pbSU9t7NKPkPqgdnepfwIFPQ0VvY6LaD2tnycf/qrxhkqZdLhV/w4eUQG5hGpyJd +ExI1InA4mY0AfHFsxR6Un038LSb+puTmsdUn2wuZu/yWM3h1iwtHjdLsIju4Z1R CDCu8TDkmXRgZW6QEYh/SNx3d15CiGhtdCoPlibLkBCfdZstjia4Fg/VOuibsDeA SUkSgiRg1xx3obXmYNdMfERoIuP3BTTlOukjoL8oeTd244TuUNjEVK1lyUmEs0zo NUvmn6Z6xDUz6Rr1Qm/dMlEAVZ4tJ6YmOvI6zHHg9cg2K8qkk1JdVFjB4LD2aveo Yiw5Pj+dH2wd501oxJMlUrmuAVfCmlWM5j6BNk+YHIlw1/CyjSIaruf051Jqsp67 E4bnGupYP/k+0CT4CdoTaf8cX/nKno0KM9+edjFHakrPCEJnIuHlKc9J/1hY1B/c +wYPbQjBON80HVmT1KVVWgmiiPRMG7hx8ZZkiilNFQMu6T1pzYw+9OtZMuO56Mek DFKNgVs8Rp8Z =Devw -----END PGP SIGNATURE----- --=-=-=-- From debbugs-submit-bounces@debbugs.gnu.org Sat Jul 12 03:15:56 2025 Received: (at 78844-done) by debbugs.gnu.org; 12 Jul 2025 07:15:56 +0000 Received: from localhost ([127.0.0.1]:43244 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1uaUSi-0007EP-B4 for submit@debbugs.gnu.org; Sat, 12 Jul 2025 03:15:56 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]:48780) by debbugs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.84_2) (envelope-from ) id 1uaUSe-0007Dy-QS for 78844-done@debbugs.gnu.org; Sat, 12 Jul 2025 03:15:54 -0400 Received: from fencepost.gnu.org ([2001:470:142:3::e]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1uaUSX-00016O-Ij; Sat, 12 Jul 2025 03:15:46 -0400 DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=gnu.org; s=fencepost-gnu-org; h=References:Subject:In-Reply-To:To:From:Date: mime-version; bh=Aidct7uEAaqilbmjRoehT7bTD6fmBbBmusz6wFsANwc=; b=gPBt6Mub3idd 0sfoY5UZYSMfVM3GcJaPc1EkgB7i2AQbZBFI38gsxo+mUj5ytk6WeabWXNgnBHblDCV3/dVq/+nCq mxH/Kf9O0dzYsYjY84oPztU/fnEhTSjfxq0LdnvOXwzwHaIDKYr9N+GRXghlQLV0G2OUGZUqOyLAD viRTQ7t5RwltP6gPQA1t7o0LXjeeor7qRioMOpnvZglcCRygn82wRHnClBtIEJdnL8mO+e16Rcicd UO5LTQawHOLDM5R974ApOSmEQZ60Zglv12cR4SOvzC1gqmzm6bCkZuy5sd3/0UCO8qT+KDoThgwD1 69uZ1rP0Kie7r9AOAxA01g==; Date: Sat, 12 Jul 2025 10:15:11 +0300 Message-Id: <86jz4dg9s0.fsf@gnu.org> From: Eli Zaretskii To: Xiyue Deng In-Reply-To: <87plen75ak.fsf@debian-hx90.lan> (message from Xiyue Deng on Sat, 28 Jun 2025 17:36:03 -0700) Subject: Re: bug#78844: 30.1; feature request: public interface for querying builtin packages and versions References: <878qlnz46j.fsf@debian-qemu> <87ecveo45m.fsf@zephyr.silentflame.com> <87zfe1aen6.fsf@debian-hx90.lan> <87jz50apab.fsf@debian-hx90.lan> <878qlgaeli.fsf@debian-hx90.lan> <874iw1a5si.fsf@zephyr.silentflame.com> <87cyap8ocu.fsf@debian-hx90.lan> <868qldbanx.fsf@gnu.org> <871pr490fu.fsf@debian-hx90.lan> <86wm8w8hpw.fsf@gnu.org> <87sejj7f47.fsf@debian-hx90.lan> <87plen75ak.fsf@debian-hx90.lan> X-Spam-Score: -2.3 (--) X-Debbugs-Envelope-To: 78844-done Cc: 78844-done@debbugs.gnu.org, monnier@iro.umontreal.ca, spwhitton@spwhitton.name X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -3.3 (---) > From: Xiyue Deng > Cc: Eli Zaretskii , spwhitton@spwhitton.name, > 78844@debbugs.gnu.org > Date: Sat, 28 Jun 2025 17:36:03 -0700 > > Stefan Monnier writes: > > >>> FWIW, I'd consider it an error if an entry in > >>> `package--builtin-versions` has a nil "version". > >>> There are no such things as "unversioned packages" in this respect. > >>> So, I think the code is OK but the docstring should not mention that > >>> we return nil for packages without a version. > >> > >> I think in principle you are correct given that the current public > >> functions don't provide a way to obtain such a symbol. But it's > >> possible that someone can construct a symbol, either by hand or through > >> a new interface that queries all builtin packages, which is in > >> `package--builtins' but not in `package--builtin-versions', and the > >> function will return nil. Do you think it's worth keeping such > >> possibility into consideration? > > > > Returning nil for packages (aka symbols) which aren't in > > `package--builtin-versions` is fine and I have no objection to > > documenting it. > > > > My objection is to > > > > if @var{package} does not have a version > > > > but not to > > > > if @var{package} ... is not a buil-tin package > > > > I see. Though technically people can get a package symbol from > `package--builtins', and hence built-in, but not in > `package--builtin-versions', and hence does not have a version > associated. Maybe I can be more explicit to say "if @var{package} is > built-in but does not have a version ..."? (Revised as such.) > > > [ BTW, note the typo above. ] > > Thanks for spotting. Also fixed. Now installed on the master branch, and closing the bug. Please note that there were missing pieces in the documentation part (missing menu items), which caused makeinfo to emit error messages. Please in the future always be sure to build Emacs with your patches, including the documentation, and please examine the output for any warnings/errors that need to be fixed. From debbugs-submit-bounces@debbugs.gnu.org Sat Jul 12 03:59:58 2025 Received: (at 78844-done) by debbugs.gnu.org; 12 Jul 2025 07:59:58 +0000 Received: from localhost ([127.0.0.1]:43546 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1uaV9I-0001eX-PI for submit@debbugs.gnu.org; Sat, 12 Jul 2025 03:59:58 -0400 Received: from mail-pl1-x634.google.com ([2607:f8b0:4864:20::634]:50212) by debbugs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.84_2) (envelope-from ) id 1uaV9F-0001do-T6 for 78844-done@debbugs.gnu.org; Sat, 12 Jul 2025 03:59:54 -0400 Received: by mail-pl1-x634.google.com with SMTP id d9443c01a7336-234bfe37cccso24827655ad.0 for <78844-done@debbugs.gnu.org>; Sat, 12 Jul 2025 00:59:53 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1752307187; x=1752911987; darn=debbugs.gnu.org; h=mime-version:message-id:date:user-agent:references:in-reply-to :subject:cc:to:from:from:to:cc:subject:date:message-id:reply-to; bh=fIYRRS2YklrX1dV2ftj+cwy2MqeFqIAISrLyZZyYhYg=; b=InoBGkO3ilN8O05L1AR7VIYhpUBmD5VQNNC5VPUe141h40YSCYZ1J27vmL1PRo0TIc zt6odOluHj4qhmsEQaVM/0jXv50Jx47QXZjd3I7UUsFjktmInJ9qDFosnLoQbyN7VMme YF/WfrOhLp9Z++QBxNpH97mgrjSZJjjnmUTiruJp4FMLm78q5bzXNjNS5OIB+2LwXIux ZR/lvbDZbai8MgxsnIAb6TL1RI55gDceRWxOcW9H+i3DbYvHwvHVQVSpwPM4HPj03g/o SFV6WmOHO+6LJ0ZBKs4FbX9JlyFlCPv4q0O9C7BfOeyV+vg3ZK1oyK16vAauXFydIqge fBMg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1752307187; x=1752911987; h=mime-version:message-id:date:user-agent:references:in-reply-to :subject:cc:to:from:x-gm-message-state:from:to:cc:subject:date :message-id:reply-to; bh=fIYRRS2YklrX1dV2ftj+cwy2MqeFqIAISrLyZZyYhYg=; b=eQxgqy02o+W/suuez0y7Ky2Qvuux04ri2VD+IlGby6ENBa/rpk7kdZqAdFbXCpHHFM fasLf61IIeOXWTuKhrYJm3Nzo+e9x5g+KdMaZj2soa58HcycRAdmysJ7EbjcFl1+TIRm jEp6VuJCgyYXxluEWPxTAmwYtVPmXscKhJG6pgl25Oyfxn3+aQHwKOdeZIjJuGhyj9M+ ZoKYZAVVy1ayZzND4KXtV1VxRMykW6lbUWHPJXWgUekDzdqu/sGy0NV1udD8MDubJ705 dNSMbAi6bLmPG/U3hNSGM0BmKOm7XdOD5Qn86EMUf5EUj7po4VDTVOdKiMTK+i6819QR dpdg== X-Forwarded-Encrypted: i=1; AJvYcCXIltoqcEMhwdoahzOGk7JXgccep72cxOxKvXVBA2krXRmw8qu9XqbTFM6MPfQZJFuQiFzocIdX337E@debbugs.gnu.org X-Gm-Message-State: AOJu0YxkiYs8q0Y7nvS76wPPeXXPp2DseTcfhWw87ELXueWrxhn0wfYk upOxf0k1/ho+RZ7bhfxXUlCm6pSsOUxVypECIdvPh3FqKPTwUkO8ejIF5xHyBA== X-Gm-Gg: ASbGncte2wEhyoarUDIQpG7vJUA1/bPfrkZlCZLEis2Y88gTimfgteW/1ld2aoH0rHo 7cj4tp6AcA8QI+mAz9xyLDwqYrcWgJiNKqdyGUpvfQK9hb8IOwx36oxetDnjgeZXnQKV1Q2kr40 OPQbhzK9FN4pb4AGJlcpaeRWDUxxVasHzvxU6NqAx6Vc0cudhgIcp1nKrggMwJmGN/zcnsMMEfN a30aUFwinAFVSRCc3WMdaB95r08g7/kPdC6crfkwBLnH6jNQRfBrTaPAGMmdl/XqA4gFjYLgQYN ogcWk/q9ms8XheRgdi578LgDcaevZXWsxVNo3QIjU+Of/eYy6JOESrT2IsYKkRt/PeuL4c1GDlZ Ebt11ZN2V7Z+70iadMy+CFd7tRG7mOnPdwrCwkwQaIwDRTKbUCj/IATNe X-Google-Smtp-Source: AGHT+IEVHxMTnDyWNHKkHJ+drUeh1mpTHWCiWNcEtWNtZPdoHJtgEDnECvpwFlSuDAN557d32EHl9A== X-Received: by 2002:a17:903:11c9:b0:235:2e0:aa9 with SMTP id d9443c01a7336-23dede456d7mr90595295ad.14.1752307187439; Sat, 12 Jul 2025 00:59:47 -0700 (PDT) Received: from debian-hx90 (syn-076-094-249-045.res.spectrum.com. [76.94.249.45]) by smtp.gmail.com with ESMTPSA id d9443c01a7336-23de4323df7sm58452095ad.134.2025.07.12.00.59.46 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Sat, 12 Jul 2025 00:59:46 -0700 (PDT) From: Xiyue Deng To: Eli Zaretskii Subject: Re: bug#78844: 30.1; feature request: public interface for querying builtin packages and versions In-Reply-To: <86jz4dg9s0.fsf@gnu.org> References: <878qlnz46j.fsf@debian-qemu> <87ecveo45m.fsf@zephyr.silentflame.com> <87zfe1aen6.fsf@debian-hx90.lan> <87jz50apab.fsf@debian-hx90.lan> <878qlgaeli.fsf@debian-hx90.lan> <874iw1a5si.fsf@zephyr.silentflame.com> <87cyap8ocu.fsf@debian-hx90.lan> <868qldbanx.fsf@gnu.org> <871pr490fu.fsf@debian-hx90.lan> <86wm8w8hpw.fsf@gnu.org> <87sejj7f47.fsf@debian-hx90.lan> <87plen75ak.fsf@debian-hx90.lan> <86jz4dg9s0.fsf@gnu.org> User-Agent: Notmuch/0.39 (https://notmuchmail.org) Emacs/30.1 (x86_64-pc-linux-gnu) Date: Sat, 12 Jul 2025 00:59:43 -0700 Message-ID: <87a5597sb4.fsf@debian-hx90.lan> MIME-Version: 1.0 Content-Type: multipart/signed; boundary="=-=-="; micalg=pgp-sha512; protocol="application/pgp-signature" X-Spam-Score: 0.0 (/) X-Debbugs-Envelope-To: 78844-done Cc: 78844-done@debbugs.gnu.org, monnier@iro.umontreal.ca, spwhitton@spwhitton.name X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -1.0 (-) --=-=-= Content-Type: text/plain Content-Transfer-Encoding: quoted-printable Hi Eli, Eli Zaretskii writes: >> From: Xiyue Deng >> Cc: Eli Zaretskii , spwhitton@spwhitton.name, >> 78844@debbugs.gnu.org >> Date: Sat, 28 Jun 2025 17:36:03 -0700 >>=20 >> Stefan Monnier writes: >>=20 >> >>> FWIW, I'd consider it an error if an entry in >> >>> `package--builtin-versions` has a nil "version". >> >>> There are no such things as "unversioned packages" in this respect. >> >>> So, I think the code is OK but the docstring should not mention that >> >>> we return nil for packages without a version. >> >> >> >> I think in principle you are correct given that the current public >> >> functions don't provide a way to obtain such a symbol. But it's >> >> possible that someone can construct a symbol, either by hand or throu= gh >> >> a new interface that queries all builtin packages, which is in >> >> `package--builtins' but not in `package--builtin-versions', and the >> >> function will return nil. Do you think it's worth keeping such >> >> possibility into consideration? >> > >> > Returning nil for packages (aka symbols) which aren't in >> > `package--builtin-versions` is fine and I have no objection to >> > documenting it. >> > >> > My objection is to >> > >> > if @var{package} does not have a version >> > >> > but not to >> > >> > if @var{package} ... is not a buil-tin package >> > >>=20 >> I see. Though technically people can get a package symbol from >> `package--builtins', and hence built-in, but not in >> `package--builtin-versions', and hence does not have a version >> associated. Maybe I can be more explicit to say "if @var{package} is >> built-in but does not have a version ..."? (Revised as such.) >>=20 >> > [ BTW, note the typo above. ] >>=20 >> Thanks for spotting. Also fixed. > > Now installed on the master branch, and closing the bug. > > Please note that there were missing pieces in the documentation part > (missing menu items), which caused makeinfo to emit error messages. > Please in the future always be sure to build Emacs with your patches, > including the documentation, and please examine the output for any > warnings/errors that need to be fixed. Thanks for the fixes! Will be more careful in the future. =2D-=20 Regards, Xiyue Deng --=-=-= Content-Type: application/pgp-signature; name="signature.asc" -----BEGIN PGP SIGNATURE----- iQJGBAEBCgAwFiEEiKQfd6o81mjI+LWALell7WOCXJMFAmhyFe8SHG1hbnBoaXpA Z21haWwuY29tAAoJEC3pZe1jglyTcG0P/jozro68CGuw6zFX7Dh188TkQUDF5e1F mDJcqyNTcrLmk9LUDCtBpxavYMRzco4Z34agTqfUvFgaFayiS2e3LZBmRgI4yWcL ktf2wiaT9thf0N7SOo5W+fUUOCAJZrhuShX0q7x1CjCYNDE9p/KnGBePgz0xsP7F c9zF+jItb16BdQlkNSl6EANUX/NCDFpDBLDhzvGl3v+C6m5R27+cnw/6lR8j76BN TF9g5tV8fqXEjt3LaWXp+54mVs7JHsdNH/zFrRoOW0oml4ULy/7el0xMtIvaV5sr OW8MdAy6zvVOqd4AYkq6HaOIpEQ9u+PjmVonatHLras5ZJcKwE/0tA2uhoOT7Q7C bkHdC/Vhmjt5sSsVFE4aO/k8qrg2LrLVtJTAeizar7dHvaesfofHaSxYdZFMk/lJ WLiJC+sXfpJU8yNIcA74+Y39wNksfDqDqr7xjJkY/SJlbLCpsmvLPFizVIRqjPYL aCmTgTGjwIAvIdwOJsP+mbVzQaDOvOOk72El+/1C0864CFzwdC4KK1jCr4Nzpr6Y aETDgXVtXp7t1wgQunj0vr/iDlr8DNEcTl3FQUCeXxNZVPcSglWUA1HE70ooqTKA LAJKgAdwEhbZPyIWF90Jpwtnfc/0A8AT9Yc/zO9US9Cu08h5Xin+DFzy0IaSqE/p cc9MkIJJG/x9 =SOh+ -----END PGP SIGNATURE----- --=-=-=--