bug-gnu-emacs
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

bug#67949: 29.1; package-vc-{install,upgrade} modifies tracked files


From: Philip Kaludercic
Subject: bug#67949: 29.1; package-vc-{install,upgrade} modifies tracked files
Date: Mon, 25 Dec 2023 20:11:15 +0000

Sean Allred <allred.sean@gmail.com> writes:

> Run the following from `emacs -Q`:
>
>     (package-vc-install
>      '(bugreport :url "git@github.com:vermiculus/bugreport-20231221.git"))
>     (package-vc-upgrade (cadr (assq 'bugreport package-alist)))
>
> forking/modifying the above as you please.
>
> On upgrade, this complains that
>
>     Running "git pull --stat"...
>     error: cannot pull with rebase: You have unstaged changes.
>     error: Please commit or stash them.
>
> git-diff reveals the culprit:
>
>     diff --git a/bugreport-pkg.el b/bugreport-pkg.el
>     index df8438a..e8947d3 100644
>     --- a/bugreport-pkg.el
>     +++ b/bugreport-pkg.el
>     @@ -1,4 +1,2 @@
>     -(define-package
>     -  "bugreport20231221"
>     -  "0.1"
>     -  "Bug report on 2023-12-21")
>     +;;; Generated package description from bugreport.el  -*- 
> no-byte-compile: t -*-
>     +(define-package "bugreport" "0" "No description available." 'nil :kind 
> vc)
>
> and that 'Generated package description' language seems to be coming
> from `package-vc--generate-description-file`:

This is intentional, the -pkg.el file shouldn't be tracked in the
repository, as this is a file that should be generated.  When a package
is distributed on ELPA, it is generated before the tarball is created,
and the same logic is applied locally here as well.

That being said, it would be nice if we could be more robust here, as
many packages sadly continue to make the mistake of beliving the -pkg.el
file is an authoritative source of information.  My guess is that the
tricky part will be to ensure that this can be done, independently of
the involved VC backend...

>     (write-region (concat ";;; Generated package description from " 
> (replace-regexp-in-string "-pkg\\.el\\'" ".el" (file-name-nondirectory 
> pkg-file)) "  -*- no-byte-compile: t -*-\n" (prin1-to-string (nconc (list 
> 'define-package (symbol-name name) (package-vc--version pkg-desc) (let ((cl-x 
> pkg-desc)) (progn (or ... ...) (aref cl-x 3))) (let ((requires ...)) (list 
> 'quote (mapcar ... requires)))) (list :kind 'vc) 
> (package--alist-to-plist-args (let ((cl-x pkg-desc)) (progn (or ... ...) 
> (aref cl-x 8)))))) "\n") nil pkg-file nil 'silent)
>     (let ((print-level nil) (print-quoted t) (print-length nil)) 
> (write-region (concat ";;; Generated package description from " 
> (replace-regexp-in-string "-pkg\\.el\\'" ".el" (file-name-nondirectory 
> pkg-file)) "  -*- no-byte-compile: t -*-\n" (prin1-to-string (nconc (list 
> 'define-package (symbol-name name) (package-vc--version pkg-desc) (let (...) 
> (progn ... ...)) (let (...) (list ... ...))) (list :kind 'vc) 
> (package--alist-to-plist-args (let (...) (progn ... ...))))) "\n") nil 
> pkg-file nil 'silent))
>     (let ((name (let ((cl-x pkg-desc)) (progn (or (progn (and ... t)) (signal 
> 'wrong-type-argument (list ... cl-x))) (aref cl-x 1))))) (if (let ((cl-x 
> pkg-desc)) (progn (or (progn (and (memq ... cl-struct-package-desc-tags) t)) 
> (signal 'wrong-type-argument (list 'package-desc cl-x))) (aref cl-x 3))) nil 
> (let ((cl-x pkg-desc)) (or (progn (and (memq (type-of cl-x) 
> cl-struct-package-desc-tags) t)) (signal 'wrong-type-argument (list 
> 'package-desc cl-x))) (let* ((v cl-x)) (aset v 3 (let ((main-file ...)) (or 
> (let ... ...) (let* ... ...) (and main-file ... ...) 
> package--default-summary)))))) (let ((print-level nil) (print-quoted t) 
> (print-length nil)) (write-region (concat ";;; Generated package description 
> from " (replace-regexp-in-string "-pkg\\.el\\'" ".el" (file-name-nondirectory 
> pkg-file)) "  -*- no-byte-compile: t -*-\n" (prin1-to-string (nconc (list 
> 'define-package (symbol-name name) (package-vc--version pkg-desc) (let ... 
> ...) (let ... ...)) (list :kind 'vc) (package--alist-to-plist-args (let ... 
> ...)))) "\n") nil pkg-file nil 'silent)))
>     package-vc--generate-description-file(#s(package-desc :name 
> bugreport-20231221 :version nil :summary "No description available." :reqs 
> nil :kind vc :archive nil :dir 
> "/Users/sallred/.emacs.d/elpa/bugreport-20231221/" :extras nil :signed nil) 
> "/Users/sallred/.emacs.d/elpa/bugreport-20231221/bu...")
>     package-vc--unpack-1(#s(package-desc :name bugreport-20231221 :version 
> nil :summary "No description available." :reqs nil :kind vc :archive nil :dir 
> "/Users/sallred/.emacs.d/elpa/bugreport-20231221/" :extras nil :signed nil) 
> "/Users/sallred/.emacs.d/elpa/bugreport-20231221/")
>     (progn (if (string-empty-p name) (progn (user-error "Empty package 
> name"))) (progn (or (progn (and (memq (type-of pkg-desc) 
> cl-struct-package-desc-tags) t)) (signal 'wrong-type-argument (list 
> 'package-desc pkg-desc))) (let* ((v pkg-desc)) (aset v 7 pkg-dir))) (if 
> (file-exists-p pkg-dir) (progn (if (yes-or-no-p (format "Overwrite previous 
> checkout for package `%s'?" name)) (package--delete-directory pkg-dir) (error 
> "There already exists a checkout for %s" name)))) (package-vc--clone pkg-desc 
> pkg-spec pkg-dir rev) (if (directory-empty-p pkg-dir) (progn 
> (delete-directory pkg-dir) (error "Empty checkout for %s" name))) (if 
> (seq-remove #'(lambda (file) (member (file-name-nondirectory file) 
> package-vc-non-code-file-names)) (directory-files-recursively pkg-dir 
> "\\.el\\'" nil)) nil (if (yes-or-no-p (format "No Emacs Lisp files found when 
> fetching \"%s\", abor..." name)) (progn (delete-directory pkg-dir t) 
> (user-error "Installation aborted")))) (catch 'done (let ((tail '("lisp" 
> "src"))) (while tail (let ((name (car tail))) (let* ((s ...) (dir ...) (s 
> ...) (s ...)) (if s (throw ... ...))) (setq tail (cdr tail)))))) (if 
> (seq-some #'(lambda (alist) (equal (alist-get name (cdr alist)) pkg-spec)) 
> package-vc--archive-spec-alists) nil (customize-save-variable 
> 'package-vc-selected-packages (cons (cons name pkg-spec) (seq-remove 
> #'(lambda (spec) (string= name ...)) package-vc-selected-packages)))) 
> (package-vc--unpack-1 pkg-desc pkg-dir))
>     (let* ((name (progn (or (progn (and (memq ... 
> cl-struct-package-desc-tags) t)) (signal 'wrong-type-argument (list 
> 'package-desc pkg-desc))) (aref pkg-desc 1))) (dirname 
> (package-desc-full-name pkg-desc)) (pkg-dir (file-name-as-directory 
> (expand-file-name dirname package-user-dir)))) (progn (if (string-empty-p 
> name) (progn (user-error "Empty package name"))) (progn (or (progn (and (memq 
> (type-of pkg-desc) cl-struct-package-desc-tags) t)) (signal 
> 'wrong-type-argument (list 'package-desc pkg-desc))) (let* ((v pkg-desc)) 
> (aset v 7 pkg-dir))) (if (file-exists-p pkg-dir) (progn (if (yes-or-no-p 
> (format "Overwrite previous checkout for package `%s'?" name)) 
> (package--delete-directory pkg-dir) (error "There already exists a checkout 
> for %s" name)))) (package-vc--clone pkg-desc pkg-spec pkg-dir rev) (if 
> (directory-empty-p pkg-dir) (progn (delete-directory pkg-dir) (error "Empty 
> checkout for %s" name))) (if (seq-remove #'(lambda (file) (member 
> (file-name-nondirectory file) package-vc-non-code-file-names)) 
> (directory-files-recursively pkg-dir "\\.el\\'" nil)) nil (if (yes-or-no-p 
> (format "No Emacs Lisp files found when fetching \"%s\", abor..." name)) 
> (progn (delete-directory pkg-dir t) (user-error "Installation aborted")))) 
> (catch 'done (let ((tail '("lisp" "src"))) (while tail (let ((name ...)) 
> (let* (... ... ... ...) (if s ...)) (setq tail (cdr tail)))))) (if (seq-some 
> #'(lambda (alist) (equal (alist-get name ...) pkg-spec)) 
> package-vc--archive-spec-alists) nil (customize-save-variable 
> 'package-vc-selected-packages (cons (cons name pkg-spec) (seq-remove 
> #'(lambda ... ...) package-vc-selected-packages)))) (package-vc--unpack-1 
> pkg-desc pkg-dir)))
>     (let ((lisp-dir x285)) (let* ((name (progn (or (progn (and ... t)) 
> (signal 'wrong-type-argument (list ... pkg-desc))) (aref pkg-desc 1))) 
> (dirname (package-desc-full-name pkg-desc)) (pkg-dir (file-name-as-directory 
> (expand-file-name dirname package-user-dir)))) (progn (if (string-empty-p 
> name) (progn (user-error "Empty package name"))) (progn (or (progn (and (memq 
> ... cl-struct-package-desc-tags) t)) (signal 'wrong-type-argument (list 
> 'package-desc pkg-desc))) (let* ((v pkg-desc)) (aset v 7 pkg-dir))) (if 
> (file-exists-p pkg-dir) (progn (if (yes-or-no-p (format "Overwrite previous 
> checkout for package `%s'?" name)) (package--delete-directory pkg-dir) (error 
> "There already exists a checkout for %s" name)))) (package-vc--clone pkg-desc 
> pkg-spec pkg-dir rev) (if (directory-empty-p pkg-dir) (progn 
> (delete-directory pkg-dir) (error "Empty checkout for %s" name))) (if 
> (seq-remove #'(lambda (file) (member ... package-vc-non-code-file-names)) 
> (directory-files-recursively pkg-dir "\\.el\\'" nil)) nil (if (yes-or-no-p 
> (format "No Emacs Lisp files found when fetching \"%s\", abor..." name)) 
> (progn (delete-directory pkg-dir t) (user-error "Installation aborted")))) 
> (catch 'done (let ((tail '...)) (while tail (let (...) (let* ... ...) (setq 
> tail ...))))) (if (seq-some #'(lambda (alist) (equal ... pkg-spec)) 
> package-vc--archive-spec-alists) nil (customize-save-variable 
> 'package-vc-selected-packages (cons (cons name pkg-spec) (seq-remove #'... 
> package-vc-selected-packages)))) (package-vc--unpack-1 pkg-desc pkg-dir))))
>     (let* ((x285 (map-elt pkg-spec :lisp-dir))) (let ((lisp-dir x285)) (let* 
> ((name (progn (or (progn ...) (signal ... ...)) (aref pkg-desc 1))) (dirname 
> (package-desc-full-name pkg-desc)) (pkg-dir (file-name-as-directory 
> (expand-file-name dirname package-user-dir)))) (progn (if (string-empty-p 
> name) (progn (user-error "Empty package name"))) (progn (or (progn (and ... 
> t)) (signal 'wrong-type-argument (list ... pkg-desc))) (let* ((v pkg-desc)) 
> (aset v 7 pkg-dir))) (if (file-exists-p pkg-dir) (progn (if (yes-or-no-p ...) 
> (package--delete-directory pkg-dir) (error "There already exists a checkout 
> for %s" name)))) (package-vc--clone pkg-desc pkg-spec pkg-dir rev) (if 
> (directory-empty-p pkg-dir) (progn (delete-directory pkg-dir) (error "Empty 
> checkout for %s" name))) (if (seq-remove #'(lambda ... ...) 
> (directory-files-recursively pkg-dir "\\.el\\'" nil)) nil (if (yes-or-no-p 
> (format "No Emacs Lisp files found when fetching \"%s\", abor..." name)) 
> (progn (delete-directory pkg-dir t) (user-error "Installation aborted")))) 
> (catch 'done (let ((tail ...)) (while tail (let ... ... ...)))) (if (seq-some 
> #'(lambda ... ...) package-vc--archive-spec-alists) nil 
> (customize-save-variable 'package-vc-selected-packages (cons (cons name 
> pkg-spec) (seq-remove ... package-vc-selected-packages)))) 
> (package-vc--unpack-1 pkg-desc pkg-dir)))))
>     (progn (ignore (mapp pkg-spec)) (let* ((x285 (map-elt pkg-spec 
> :lisp-dir))) (let ((lisp-dir x285)) (let* ((name (progn (or ... ...) (aref 
> pkg-desc 1))) (dirname (package-desc-full-name pkg-desc)) (pkg-dir 
> (file-name-as-directory (expand-file-name dirname package-user-dir)))) (progn 
> (if (string-empty-p name) (progn (user-error "Empty package name"))) (progn 
> (or (progn ...) (signal ... ...)) (let* (...) (aset v 7 pkg-dir))) (if 
> (file-exists-p pkg-dir) (progn (if ... ... ...))) (package-vc--clone pkg-desc 
> pkg-spec pkg-dir rev) (if (directory-empty-p pkg-dir) (progn 
> (delete-directory pkg-dir) (error "Empty checkout for %s" name))) (if 
> (seq-remove #'... (directory-files-recursively pkg-dir "\\.el\\'" nil)) nil 
> (if (yes-or-no-p ...) (progn ... ...))) (catch 'done (let (...) (while tail 
> ...))) (if (seq-some #'... package-vc--archive-spec-alists) nil 
> (customize-save-variable 'package-vc-selected-packages (cons ... ...))) 
> (package-vc--unpack-1 pkg-desc pkg-dir))))))
>     package-vc--unpack(#s(package-desc :name bugreport-20231221 :version nil 
> :summary "No description available." :reqs nil :kind vc :archive nil :dir 
> "/Users/sallred/.emacs.d/elpa/bugreport-20231221/" :extras nil :signed nil) 
> (:url "git@github.com:vermiculus/bugreport-20231221.git") nil)
>     package-vc-install((bugreport-20231221 :url 
> "git@github.com:vermiculus/bugreport-20231221.git"))
>
>
> In GNU Emacs 29.1 (build 1, aarch64-apple-darwin21.6.0, NS
>  appkit-2113.60 Version 12.6.6 (Build 21G646)) of 2023-07-30 built on
>  armbob.lan
> Windowing system distributor 'Apple', version 10.3.2299
> System Description:  macOS 13.6.1
>
> Configured using:
>  'configure --with-ns '--enable-locallisppath=/Library/Application
>  Support/Emacs/${version}/site-lisp:/Library/Application
>  Support/Emacs/site-lisp' --with-modules 'CFLAGS=-DFD_SETSIZE=10000
>  -DDARWIN_UNLIMITED_SELECT' --with-x-toolkit=no'
>
> Configured features:
> ACL GLIB GMP GNUTLS JPEG JSON LIBXML2 MODULES NOTIFY KQUEUE NS PDUMPER
> PNG RSVG THREADS TIFF TOOLKIT_SCROLL_BARS TREE_SITTER ZLIB
>
> Important settings:
>   value of $LANG: en_US.UTF-8
>   locale-coding-system: utf-8-unix
>
> Major mode: Compilation
>
> Minor modes in effect:
>   mu4e-modeline-mode: t
>   global-git-commit-mode: t
>   magit-auto-revert-mode: t
>   server-mode: t
>   global-treesit-auto-mode: t
>   TeX-PDF-mode: t
>   editorconfig-mode: t
>   yas-global-mode: t
>   yas-minor-mode: t
>   which-key-mode: t
>   org-roam-db-autosync-mode: t
>   shell-dirtrack-mode: t
>   savehist-mode: t
>   corfu-popupinfo-mode: t
>   marginalia-mode: t
>   vertico-multiform-mode: t
>   vertico-mode: t
>   pixel-scroll-precision-mode: t
>   override-global-mode: t
>   tooltip-mode: t
>   global-eldoc-mode: t
>   eldoc-mode: t
>   show-paren-mode: t
>   electric-indent-mode: t
>   mouse-wheel-mode: t
>   menu-bar-mode: t
>   file-name-shadow-mode: t
>   global-font-lock-mode: t
>   font-lock-mode: t
>   blink-cursor-mode: t
>   buffer-read-only: t
>   line-number-mode: t
>   transient-mark-mode: t
>   auto-composition-mode: t
>   auto-encryption-mode: t
>   auto-compression-mode: t
>
> Load-path shadows:
> /Users/sallred/.emacs.d/elpa/bugreport/bugreport-pkg hides 
> /Users/sallred/.emacs.d/elpa/bugreport-20231221/bugreport-pkg
> /Users/sallred/.emacs.d/elpa/bugreport/bugreport hides 
> /Users/sallred/.emacs.d/elpa/bugreport-20231221/bugreport
> /Users/sallred/.emacs.d/elpa/emc2/emc2 hides 
> ~/git/gitlab.epic.com/sallred/emc2.el/emc2
> /Users/sallred/.emacs.d/elpa/emc2/emc2-pkg hides 
> ~/git/gitlab.epic.com/sallred/emc2.el/emc2-pkg
> /Users/sallred/.emacs.d/elpa/emc2/emc2-summary hides 
> ~/git/gitlab.epic.com/sallred/emc2.el/emc2-summary
> /Users/sallred/.emacs.d/elpa/emc2/emc2-magit-checkout hides 
> ~/git/gitlab.epic.com/sallred/emc2.el/emc2-magit-checkout
> /Users/sallred/.emacs.d/elpa/emc2/emc2-delorean hides 
> ~/git/gitlab.epic.com/sallred/emc2.el/emc2-delorean
> /Users/sallred/.emacs.d/elpa/emc2/emc2-org-tlg hides 
> ~/git/gitlab.epic.com/sallred/emc2.el/emc2-org-tlg
> /Users/sallred/.emacs.d/elpa/emc2/emc2-magit-pull-request hides 
> ~/git/gitlab.epic.com/sallred/emc2.el/emc2-magit-pull-request
> /Users/sallred/.emacs.d/elpa/emc2/emc2-org hides 
> ~/git/gitlab.epic.com/sallred/emc2.el/emc2-org
> /Users/sallred/.emacs.d/elpa/emc2/emc2-workplan hides 
> ~/git/gitlab.epic.com/sallred/emc2.el/emc2-workplan
> /Users/sallred/.emacs.d/elpa/emc2/emc2-magit hides 
> ~/git/gitlab.epic.com/sallred/emc2.el/emc2-magit
> /Users/sallred/.emacs.d/elpa/emc2/emc2-org-gitlab hides 
> ~/git/gitlab.epic.com/sallred/emc2.el/emc2-org-gitlab
> /Users/sallred/.emacs.d/elpa/emc2/emc2-org-workplan hides 
> ~/git/gitlab.epic.com/sallred/emc2.el/emc2-org-workplan
> /Users/sallred/.emacs.d/elpa/emc2/emc2-ts hides 
> ~/git/gitlab.epic.com/sallred/emc2.el/emc2-ts
> /Users/sallred/.emacs.d/elpa/emc2/emc2-magit-cherry-pick hides 
> ~/git/gitlab.epic.com/sallred/emc2.el/emc2-magit-cherry-pick
> /Users/sallred/.emacs.d/elpa/transient-20231129.1714/transient hides 
> /Applications/Emacs.app/Contents/Resources/lisp/transient
> /Users/sallred/.emacs.d/elpa/use-package-20230203.2004/use-package-jump hides 
> /Applications/Emacs.app/Contents/Resources/lisp/use-package/use-package-jump
> /Users/sallred/.emacs.d/elpa/use-package-20230203.2004/use-package-ensure 
> hides 
> /Applications/Emacs.app/Contents/Resources/lisp/use-package/use-package-ensure
> /Users/sallred/.emacs.d/elpa/use-package-20230203.2004/use-package-core hides 
> /Applications/Emacs.app/Contents/Resources/lisp/use-package/use-package-core
> /Users/sallred/.emacs.d/elpa/use-package-20230203.2004/use-package-delight 
> hides 
> /Applications/Emacs.app/Contents/Resources/lisp/use-package/use-package-delight
> /Users/sallred/.emacs.d/elpa/use-package-20230203.2004/use-package-diminish 
> hides 
> /Applications/Emacs.app/Contents/Resources/lisp/use-package/use-package-diminish
> /Users/sallred/.emacs.d/elpa/use-package-20230203.2004/use-package hides 
> /Applications/Emacs.app/Contents/Resources/lisp/use-package/use-package
> /Users/sallred/.emacs.d/elpa/use-package-20230203.2004/use-package-bind-key 
> hides 
> /Applications/Emacs.app/Contents/Resources/lisp/use-package/use-package-bind-key
> /Users/sallred/.emacs.d/elpa/use-package-20230203.2004/use-package-lint hides 
> /Applications/Emacs.app/Contents/Resources/lisp/use-package/use-package-lint
> /Users/sallred/.emacs.d/elpa/seq-2.24/seq hides 
> /Applications/Emacs.app/Contents/Resources/lisp/emacs-lisp/seq
>
> Features:
> (bugreport-autoloads bugreport20231221-autoloads wdired
> bugreport-20231221-autoloads finder skeleton autoinsert shadow emacsbug
> smiley gnus-cite qp textsec uni-scripts idna-mapping uni-confusable
> textsec-check mu4e mu4e-org mu4e-notification mu4e-main mu4e-view
> mu4e-headers mu4e-compose mu4e-draft mu4e-actions smtpmail mu4e-search
> mu4e-lists mu4e-bookmarks mu4e-mark mu4e-message flow-fill mu4e-contacts
> mu4e-update mu4e-folders mu4e-context mu4e-query-items mu4e-server
> mu4e-modeline mu4e-vars mu4e-helpers mu4e-config mu4e-window ido
> mu4e-obsolete mail-extr emc2-workplan emc2-magit loaddefs-gen shortdoc
> pulse cl-print cus-start mm-archive package-vc lisp-mnt helpful trace
> edebug debug backtrace info-look help-fns radix-tree elisp-refs
> goto-addr vc-hg vc-bzr vc-src vc-sccs vc-svn vc-cvs vc-rcs log-view
> rust-ts-mode rust-utils rust-mode rust-rustfmt rust-playpen rust-compile
> rust-cargo mc-hide-unmatched-lines-mode mc-mark-more mc-cycle-cursors
> multiple-cursors-core rect consult-org sort org-archive cal-move
> epa-file network-stream url-cache python csharp-mode c-ts-common
> cc-langs json-ts-mode vertico-buffer emacsql-sqlite-module sqlite3
> sqlite3-api magit-extras forge-list forge-commands forge-semi
> forge-bitbucket buck forge-gogs gogs forge-gitea gtea forge-gitlab
> forge-github forge-notify forge-revnote forge-pullreq forge-issue
> forge-topic yaml forge-post forge-repo forge forge-core forge-db closql
> eieio-base 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 imenu magit-diff smerge-mode diff git-commit log-edit
> pcvs-util add-log magit-core magit-autorevert autorevert magit-margin
> magit-transient magit-process with-editor server magit-mode magit-git
> magit-base tramp tramp-loaddefs trampver tramp-integration tramp-compat
> embark-consult consult bookmark view cal-china lunar solar cal-dst
> cal-bahai cal-islam cal-hebrew holidays holiday-loaddefs diary-lib
> diary-loaddefs cal-iso face-remap vertico-repeat vertico-reverse
> org-mru-clock embark-org embark aggressive-indent vc-git diff-mode
> org-eldoc display-line-numbers flyspell ispell oc-basic disp-table
> ol-eww eww url-queue mm-url ol-rmail ol-mhe ol-irc ol-info ol-gnus
> nnselect gnus-art mm-uu mml2015 mm-view mml-smime smime dig gnus-sum
> gnus-group gnus-undo gnus-start gnus-dbus gnus-cloud nnimap nnmail
> mail-source utf7 nnoo parse-time gnus-spec gnus-int gnus-range message
> sendmail yank-media rfc822 mml mml-sec mm-decode mm-bodies mm-encode
> mailabbrev gmm-utils gnus-win gnus nnheader gnus-util range ol-docview
> doc-view filenotify jka-compr image-mode exif ol-bibtex bibtex iso8601
> ol-bbdb ol-w3m ol-doi org-link-doi time treesit-auto tex crm texmathp
> go-mode find-file etags fileloop xref hydra lv powershell
> flymake-shellcheck flymake-proc flymake project basic-mode graphql
> graphql-mode yaml-mode rg files-x rg-info-hack advice rg-menu transient
> rg-ibuffer rg-result wgrep-rg wgrep rg-history rg-header ibuf-ext
> ibuffer ibuffer-loaddefs grep cus-edit htmlize tree-sitter-langs
> tree-sitter-langs-build tar-mode arc-mode archive-mode pp tree-sitter-hl
> tree-sitter-indent tree-sitter tree-sitter-load tree-sitter-cli tsc
> tsc-dyn tsc-dyn-get dired-aux tsc-obsolete dockerfile-mode sh-script
> smie treesit executable git-modes gitignore-mode gitconfig-mode
> conf-mode gitattributes-mode org-contrib tj3-mode mermaid-mode
> org-bullets ox-gfm ox-md ox-odt rng-loc rng-uri rng-parse rng-match
> rng-dt rng-util rng-pttrn nxml-parse nxml-ns nxml-enc xmltok nxml-util
> ox-latex ox-icalendar ox-html table ox-ascii ox-publish ox dart-mode
> editorconfig editorconfig-core editorconfig-core-handle
> editorconfig-fnmatch alert log4e notifications dbus gntp typescript-mode
> cc-mode cc-fonts cc-guess cc-menus cc-cmds cc-styles cc-align cc-engine
> cc-vars cc-defs compile vc vc-dispatcher dashboard dashboard-widgets
> recentf tree-widget wid-edit ffap warnings emc2-org-gitlab emc2
> bug-reference glab ghub-graphql treepy gsexp ghub gnutls emc2-org-tlg
> emc2-delorean let-alist url-http-ntlm ntlm hmac-md5 hex-util md4
> url-http mail-parse rfc2231 rfc2047 rfc2045 mm-util ietf-drums
> mail-prsvr url-gw nsm emc2-ts hl-line org-clock emc2-org apiwrap apropos
> mastodon mastodon-search mastodon-toot facemenu mastodon-iso persist
> mastodon-http shr text-property-search pixel-fill kinsoku url-file puny
> svg xml dom request mailheader mail-utils all-the-icons
> all-the-icons-faces data-material data-weathericons data-octicons
> data-fileicons data-faicons data-alltheicons yasnippet paredit which-key
> exec-path-from-shell org-roam-dailies org-roam-migrate org-roam-log
> org-roam-mode org-roam-capture org-roam-id org-roam-node org-roam-db
> emacsql-sqlite-builtin sqlite org-roam-utils org-roam-compat org-roam
> org-capture org-attach emacsql-sqlite emacsql-sqlite-common emacsql
> emacsql-compiler magit-section cursor-sensor org-ql peg ts org-habit
> org-agenda org-element org-persist xdg org-id org-refile avl-tree
> generator org-duration org-tempo tempo org org-macro org-pcomplete
> org-list org-footnote org-faces org-entities time-date ob-shell shell
> pcomplete ob ob-tangle org-src ob-ref ob-lob ob-table ob-exp ob-comint
> comint ansi-osc ansi-color ob-emacs-lisp ob-core ob-eval org-cycle
> org-table ol org-fold org-fold-core org-keys oc org-loaddefs find-func
> cal-menu calendar cal-loaddefs org-version org-compat org-macs
> format-spec markdown-mode edit-indirect color thingatpt noutline outline
> icons savehist corfu-popupinfo corfu orderless marginalia
> vertico-directory vertico-multiform vertico compat diminish epa derived
> epg rfc6068 epg-config pixel-scroll cua-base ring help-at-pt cus-load
> dired dired-loaddefs rx ample-theme f f-shortdoc dash s cl-extra
> help-mode edmacro kmacro use-package use-package-ensure
> use-package-delight use-package-diminish use-package-bind-key bind-key
> easy-mmode use-package-core alert-autoloads all-the-icons-autoloads
> ample-theme-autoloads apiwrap-autoloads auctex-autoloads tex-site
> basic-mode-autoloads corfu-autoloads dart-mode-autoloads
> dashboard-autoloads diminish-autoloads dockerfile-mode-autoloads
> edit-indirect-autoloads embark-consult-autoloads consult-autoloads
> embark-autoloads emc2-autoloads exec-path-from-shell-autoloads
> flycheck-autoloads flymake-shellcheck-autoloads forge-autoloads
> closql-autoloads ghub-autoloads git-modes-autoloads gntp-autoloads
> go-mode-autoloads graphql-autoloads graphql-mode-autoloads
> helpful-autoloads elisp-refs-autoloads htmlize-autoloads hydra-autoloads
> log4e-autoloads lv-autoloads magit-autoloads pcase git-commit-autoloads
> marginalia-autoloads markdown-mode-autoloads mastodon-autoloads
> mermaid-mode-autoloads multiple-cursors-autoloads orderless-autoloads
> org-bullets-autoloads org-contrib-autoloads org-mru-clock-autoloads
> org-ql-autoloads org-roam-autoloads magit-section-autoloads
> emacsql-autoloads org-super-agenda-autoloads ht-autoloads
> org-tree-slide-autoloads ov-autoloads ox-gfm-autoloads peg-autoloads
> persist-autoloads pkg-info-autoloads epl-autoloads powershell-autoloads
> prettier-autoloads editorconfig-autoloads nvm-autoloads f-autoloads
> iter2-autoloads request-autoloads rg-autoloads rust-mode-autoloads
> sqlite3-autoloads tj3-mode-autoloads transient-autoloads
> tree-sitter-indent-autoloads tree-sitter-autoloads finder-inf
> treesit-auto-autoloads dash-autoloads tsc-autoloads
> typescript-mode-autoloads url-auth vertico-autoloads wgrep-autoloads
> which-key-autoloads with-editor-autoloads info compat-autoloads
> seq-autoloads package browse-url url url-proxy url-privacy url-expand
> url-methods url-history url-cookie generate-lisp-file url-domsuf
> url-util mailcap url-handlers url-parse auth-source cl-seq eieio
> eieio-core cl-macs password-cache json subr-x map byte-opt gv bytecomp
> byte-compile url-vars cl-loaddefs cl-lib rmc iso-transl tooltip cconv
> eldoc paren electric uniquify ediff-hook vc-hooks lisp-float-type
> elisp-mode mwheel term/ns-win ns-win ucs-normalize mule-util
> term/common-win 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 kqueue cocoa ns multi-tty make-network-process emacs)
>
> Memory information:
> ((conses 16 2559529 322683)
>  (symbols 48 65117 98)
>  (strings 32 461753 41439)
>  (string-bytes 1 15812751)
>  (vectors 16 154942)
>  (vector-slots 8 2726143 179725)
>  (floats 8 1786 1057)
>  (intervals 56 221145 24719)
>  (buffers 984 154))





reply via email to

[Prev in Thread] Current Thread [Next in Thread]