From mboxrd@z Thu Jan 1 00:00:00 1970 Path: news.gmane.io!.POSTED.blaine.gmane.org!not-for-mail From: Jason Orendorff Newsgroups: gmane.emacs.bugs Subject: bug#60956: 27.2; project-try-vc considers every nonempty directory a root when vc-handled-backends is nil Date: Thu, 19 Jan 2023 16:45:21 -0600 Message-ID: Mime-Version: 1.0 Content-Type: multipart/alternative; boundary="000000000000c8a34505f2a5b05e" Injection-Info: ciao.gmane.io; posting-host="blaine.gmane.org:116.202.254.214"; logging-data="23579"; mail-complaints-to="usenet@ciao.gmane.io" To: 60956@debbugs.gnu.org Original-X-From: bug-gnu-emacs-bounces+geb-bug-gnu-emacs=m.gmane-mx.org@gnu.org Fri Jan 20 09:43:12 2023 Return-path: Envelope-to: geb-bug-gnu-emacs@m.gmane-mx.org Original-Received: from lists.gnu.org ([209.51.188.17]) by ciao.gmane.io with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.92) (envelope-from ) id 1pImzQ-000603-Et for geb-bug-gnu-emacs@m.gmane-mx.org; Fri, 20 Jan 2023 09:43:12 +0100 Original-Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1pImzH-0006ka-RJ; Fri, 20 Jan 2023 03:43:05 -0500 Original-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 1pImzG-0006k1-Gp for bug-gnu-emacs@gnu.org; Fri, 20 Jan 2023 03:43:02 -0500 Original-Received: from debbugs.gnu.org ([209.51.188.43]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1pImzG-0000cW-72 for bug-gnu-emacs@gnu.org; Fri, 20 Jan 2023 03:43:02 -0500 Original-Received: from Debian-debbugs by debbugs.gnu.org with local (Exim 4.84_2) (envelope-from ) id 1pImzG-0004NT-37 for bug-gnu-emacs@gnu.org; Fri, 20 Jan 2023 03:43:02 -0500 X-Loop: help-debbugs@gnu.org Resent-From: Jason Orendorff Original-Sender: "Debbugs-submit" Resent-CC: bug-gnu-emacs@gnu.org Resent-Date: Fri, 20 Jan 2023 08:43:01 +0000 Resent-Message-ID: Resent-Sender: help-debbugs@gnu.org X-GNU-PR-Message: report 60956 X-GNU-PR-Package: emacs X-Debbugs-Original-To: bug-gnu-emacs@gnu.org Original-Received: via spool by submit@debbugs.gnu.org id=B.167420417716812 (code B ref -1); Fri, 20 Jan 2023 08:43:01 +0000 Original-Received: (at submit) by debbugs.gnu.org; 20 Jan 2023 08:42:57 +0000 Original-Received: from localhost ([127.0.0.1]:45473 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1pImzA-0004N4-ID for submit@debbugs.gnu.org; Fri, 20 Jan 2023 03:42:57 -0500 Original-Received: from lists.gnu.org ([209.51.188.17]:44672) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1pIdf9-00039H-Ob for submit@debbugs.gnu.org; Thu, 19 Jan 2023 17:45:42 -0500 Original-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 1pIdf9-0007CA-Gw for bug-gnu-emacs@gnu.org; Thu, 19 Jan 2023 17:45:39 -0500 Original-Received: from mail-ej1-x632.google.com ([2a00:1450:4864:20::632]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1pIdf5-0005R3-SA for bug-gnu-emacs@gnu.org; Thu, 19 Jan 2023 17:45:39 -0500 Original-Received: by mail-ej1-x632.google.com with SMTP id rl14so6303771ejb.2 for ; Thu, 19 Jan 2023 14:45:35 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20210112; h=to:subject:message-id:date:from:mime-version:from:to:cc:subject :date:message-id:reply-to; bh=JKnU0etf7tnSjLnvVru24rH3IKkEm5fIylan/s+Lltc=; b=o2ZEhHhCXR/8jUX+dCjYjDUVB4xNj6j8wflt8N7xMAJ2JXIkw6GknM/WrONGCpCyq1 Uq+vC4bIaMNJndnQ0OMKTby4Gr154NxmAX+uNOByMUXI/eT5YFD6qImOl7bgAKxfUj8f fi4zVsssv6nw7mxl8QFacOI/NTZcQscjnJhz6FTsOLi7Tntl1dA1xkLsJTBXIofiPo2F B/K1uK36E8yB+JZqwhU5/4zGpgwB2vSyYitKfxWIxBj3HLXq6HmHg+N6rNACsijBzmjR wBLdxlIuVfTA5H0LGFB30O/wgYdV7XHJNDD3LrViNXrXapwcbyvisHX+EvzydmHP5ZSu QrbQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=to:subject:message-id:date:from:mime-version:x-gm-message-state :from:to:cc:subject:date:message-id:reply-to; bh=JKnU0etf7tnSjLnvVru24rH3IKkEm5fIylan/s+Lltc=; b=ymrne/+gUBtbX/IxiI4l0hZYekTtDkDbic82hFP3DBVeYrtoQIf3mcdWg0xdpPHWkW infwjd9/O9GOdnS9W2+uEwYlZ9agQ79nyHR+owuwfQB5IXSJqt72hp0tnVVxK2Xi8Pd6 4vN7y33o2bx48wHB9dpYfvkCJ+0+sACk6orZWHGuaBzwe/uP2ebdhjo40BKS6kYa83Hz 5EqJs/EoWg4sryVh6LWlVPgmxhjGlObBL+8HYhmN5X1sRdH2en/3jg0uulhEqi0SycS8 B/2rMU5GxgYv3ntUU835pJhMXH/xRFmurL10Zij7IS5N08JokSe+rAZ2NpNvMstaanKA ixPw== X-Gm-Message-State: AFqh2kq1JyRBC6XpbzFztYf56FT99tL1yUihI3NLUjNxbJCaCUczZiZO Ycwy61L0Ke4mIhIrcd16OCyWl0sE+CIYJKNcaB68iDC/J44= X-Google-Smtp-Source: AMrXdXuhK9lROybjbegJg2yy5fnBaqUyOQZVRTr0B9jawkN3S8ITQRWbBqaKfaond68mpzQC5swbIjcK5G/P3OVfqkQ= X-Received: by 2002:a17:906:2b12:b0:7c1:9b52:ceb0 with SMTP id a18-20020a1709062b1200b007c19b52ceb0mr1201794ejg.145.1674168333016; Thu, 19 Jan 2023 14:45:33 -0800 (PST) Received-SPF: pass client-ip=2a00:1450:4864:20::632; envelope-from=jason.orendorff@gmail.com; helo=mail-ej1-x632.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, HTML_MESSAGE=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-Mailman-Approved-At: Fri, 20 Jan 2023 03:42:55 -0500 X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list X-BeenThere: bug-gnu-emacs@gnu.org List-Id: "Bug reports for GNU Emacs, the Swiss army knife of text editors" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: bug-gnu-emacs-bounces+geb-bug-gnu-emacs=m.gmane-mx.org@gnu.org Original-Sender: bug-gnu-emacs-bounces+geb-bug-gnu-emacs=m.gmane-mx.org@gnu.org Xref: news.gmane.io gmane.emacs.bugs:253757 Archived-At: --000000000000c8a34505f2a5b05e Content-Type: text/plain; charset="UTF-8" I observed that `eglot' would happily start dozens of language server processes, but each one of them only seemed to know about a tiny fraction of my code. I tracked this down and found a minor bug in project.el. In `project-try-vc', when `vc-handled-backends' is nil, the value of `marker-re' computed here: https://git.savannah.gnu.org/cgit/emacs.git/tree/lisp/progmodes/project.el?id=207901457c018d94b1ce9e13a897d8241b1f3af2#n516 is the empty string. If no vc backends are enabled, no directory should be treated as a vc root. But the empty regexp matches everything, so *all* directories are treated as vc roots. Consequently, `eglot' spawned a lot of processes, because it starts one per project. The workaround is to set `vc-handled-backends' to any other value. (I suppose I configured it to nil long ago, when working in a huge Mercurial repository. Back then, commonplace hg commands in that repo were unreasonably slow.) In GNU Emacs 27.2 (build 1, x86_64-apple-darwin18.7.0, NS appkit-1671.60 Version 10.14.6 (Build 18G95)) of 2021-03-27 built on builder10-14.porkrind.org Windowing system distributor 'Apple', version 10.3.2299 System Description: macOS 13.0.1 Recent messages: (".git") project-try-vc-2 "~/src/blackbird/" Quit Followed link to /Users/jorendorff/src/dotfiles/.emacs Mark set [3 times] Quit Making completion list... Type "q" to restore previous buffer. user-error: No cross-reference here Quit Configured using: 'configure --with-ns '--enable-locallisppath=/Library/Application Support/Emacs/${version}/site-lisp:/Library/Application Support/Emacs/site-lisp' --with-modules' Configured features: NOTIFY KQUEUE ACL GNUTLS LIBXML2 ZLIB TOOLKIT_SCROLL_BARS NS MODULES THREADS JSON PDUMPER GMP Important settings: value of $LANG: en_US.UTF-8 locale-coding-system: utf-8-unix Major mode: Info Minor modes in effect: show-paren-mode: t global-git-commit-mode: t magit-auto-revert-mode: t shell-dirtrack-mode: t override-global-mode: t tooltip-mode: t global-eldoc-mode: t electric-indent-mode: t mouse-wheel-mode: t file-name-shadow-mode: t global-font-lock-mode: t font-lock-mode: t blink-cursor-mode: t auto-composition-mode: t auto-encryption-mode: t auto-compression-mode: t buffer-read-only: t column-number-mode: t line-number-mode: t transient-mark-mode: t Load-path shadows: /Users/jorendorff/.emacs.d/elpa/jsonrpc-1.0.15/jsonrpc hides /Applications/Emacs.app/Contents/Resources/lisp/jsonrpc /Users/jorendorff/.emacs.d/elpa/xref-1.6.0/xref hides /Applications/Emacs.app/Contents/Resources/lisp/progmodes/xref /Users/jorendorff/.emacs.d/elpa/project-0.9.3/project hides /Applications/Emacs.app/Contents/Resources/lisp/progmodes/project /Users/jorendorff/.emacs.d/elpa/flymake-1.2.2/flymake hides /Applications/Emacs.app/Contents/Resources/lisp/progmodes/flymake /Users/jorendorff/.emacs.d/elpa/seq-2.23/seq hides /Applications/Emacs.app/Contents/Resources/lisp/emacs-lisp/seq /Users/jorendorff/.emacs.d/elpa/eldoc-1.13.0/eldoc hides /Applications/Emacs.app/Contents/Resources/lisp/emacs-lisp/eldoc Features: (shadow sort mail-extr emacsbug sendmail vc-git vc-annotate vc-filewise apropos jka-compr vc-dir vc vc-dispatcher rustic-flycheck let-alist rustic-spellcheck rustic-expand rustic-lsp rustic-playground rustic-rustfix rustic-racer rustic-babel rustic-rustfmt rustic-comint rustic-clippy rustic-doc xdg rustic-popup rustic-cargo rustic-compile spinner rustic-interaction rustic xterm-color org-element avl-tree org ob ob-tangle ob-ref ob-lob ob-table ob-exp org-macro org-footnote org-src ob-comint org-pcomplete org-list org-faces org-entities org-version ob-emacs-lisp ob-core ob-eval org-table ol org-keys org-compat org-macs org-loaddefs cal-menu calendar cal-loaddefs tar-mode arc-mode archive-mode autoload lisp-mnt mm-archive gnutls network-stream url-http url-gw nsm url-cache url-auth url url-proxy url-privacy url-expand url-methods url-history url-cookie url-domsuf mailcap cus-edit cus-start cus-load wid-edit cl-print eieio-opt speedbar sb-image ezimage dframe ibuf-ext ibuffer ibuffer-loaddefs help-fns radix-tree make-mode sql view conf-mode goto-addr tmm git-rebase magit-ediff ediff ediff-merg ediff-mult ediff-wind ediff-diff ediff-help ediff-init ediff-util dired-x bug-reference magit-extras face-remap sh-script smie executable pulse find-dired misearch multi-isearch vc-svn grep paren page-ext rust-utils rust-mode rust-rustfmt rust-playpen rust-compile rust-cargo company-lean company-etags company lean-mode lean-dev lean-right-click lean-message-boxes lean-type lean-hole lean-flycheck lean-info lean-server lean-debug lean-leanpkg lean-syntax lean-input quail lean-settings lean-util f s lean-eri yaml-mode terraform-mode hcl-mode protobuf-mode cc-mode cc-fonts cc-guess cc-menus cc-cmds cc-styles cc-align cc-engine cc-vars cc-defs markdown-mode color lua-mode haskell-mode haskell-cabal haskell-utils haskell-font-lock haskell-indentation haskell-string haskell-sort-imports haskell-lexeme haskell-align-imports haskell-complete-module haskell-ghc-support noutline outline etags fileloop generator dabbrev haskell-customize yasnippet multiple-cursors mc-separate-operations rectangular-region-mode mc-mark-pop mc-edit-lines mc-hide-unmatched-lines-mode mc-mark-more mc-cycle-cursors multiple-cursors-core advice rect magit-submodule magit-obsolete magit-blame magit-stash magit-reflog magit-bisect magit-push magit-pull magit-fetch magit-clone magit-remote magit-commit magit-sequence magit-notes magit-worktree magit-tag magit-merge magit-branch magit-reset magit-files magit-refs magit-status magit magit-repos magit-apply magit-wip magit-log which-func magit-diff smerge-mode diff diff-mode git-commit log-edit message rmc puny dired dired-loaddefs rfc822 mml mml-sec epa derived epg epg-config gnus-util rmail rmail-loaddefs text-property-search time-date mm-decode mm-bodies mm-encode mail-parse rfc2231 rfc2047 rfc2045 mm-util ietf-drums mail-prsvr mailabbrev mail-utils gmm-utils mailheader pcvs-util add-log magit-core magit-autorevert autorevert magit-margin magit-transient magit-process with-editor shell pcomplete server magit-mode transient edmacro kmacro magit-git magit-base magit-section format-spec crm compat-27 compat-26 compat compat-macs eglot array filenotify jsonrpc ert pp ewoc debug backtrace xref flymake-proc flymake thingatpt warnings compile comint ring pcase url-util project imenu flycheck ansi-color find-func rx dash 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 finder-inf info package easymenu browse-url url-handlers url-parse auth-source cl-seq eieio eieio-core cl-macs eieio-loaddefs password-cache json subr-x map url-vars seq byte-opt gv bytecomp byte-compile cconv cl-loaddefs cl-lib tooltip eldoc electric uniquify ediff-hook vc-hooks lisp-float-type 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 elisp-mode lisp-mode prog-mode register page tab-bar menu-bar rfn-eshadow isearch timer select scroll-bar mouse jit-lock font-lock syntax facemenu font-core term/tty-colors frame minibuffer cl-generic cham georgian utf-8-lang misc-lang vietnamese tibetan thai tai-viet lao korean japanese eucjp-ms cp51932 hebrew greek romanian slovak czech european ethiopic indian cyrillic chinese composite charscript charprop case-table epa-hook jka-cmpr-hook help simple abbrev obarray cl-preloaded nadvice loaddefs button faces cus-face macroexp files text-properties overlay sha1 md5 base64 format env code-pages mule custom widget hashtable-print-readable backquote threads kqueue cocoa ns multi-tty make-network-process emacs) Memory information: ((conses 16 838747 195081) (symbols 48 49430 2) (strings 32 217132 39331) (string-bytes 1 7847174) (vectors 16 106459) (vector-slots 8 1958647 115236) (floats 8 419 673) (intervals 56 49417 2047) (buffers 1000 201)) --000000000000c8a34505f2a5b05e Content-Type: text/html; charset="UTF-8" Content-Transfer-Encoding: quoted-printable
I observed that `eglot' would happily start dozens of = language server
processes, but each one of them only seemed to know abou= t a tiny
fraction of my code. I tracked this down and found a minor bug = in
project.el.

In `project-try-vc', when `vc-handled-backends= ' is nil, the value of
`marker-re' computed here:

https://git.savanna= h.gnu.org/cgit/emacs.git/tree/lisp/progmodes/project.el?id=3D207901457c018d= 94b1ce9e13a897d8241b1f3af2#n516

is the empty string.

If n= o vc backends are enabled, no directory should be treated as a vc
root. = But the empty regexp matches everything, so *all* directories are
treate= d as vc roots.

Consequently, `eglot' spawned a lot of processes,= because it starts one
per project.

The workaround is to set `vc-= handled-backends' to any other value. (I
suppose I configured it to = nil long ago, when working in a huge
Mercurial repository. Back then, co= mmonplace hg commands in that repo
were unreasonably slow.)

In GN= U Emacs 27.2 (build 1, x86_64-apple-darwin18.7.0, NS appkit-1671.60 Version= 10.14.6 (Build 18G95))
=C2=A0of 2021-03-27 built on builder10-14.porkrind.org
Windowing system= distributor 'Apple', version 10.3.2299
System Description: =C2= =A0macOS 13.0.1

Recent messages:
(".git")
project-tr= y-vc-2
"~/src/blackbird/"
Quit
Followed link to /Users/j= orendorff/src/dotfiles/.emacs
Mark set [3 times]
Quit
Making compl= etion list...
Type "q" to restore previous buffer.
user-err= or: No cross-reference here
Quit
Configured using:
=C2=A0'conf= igure --with-ns '--enable-locallisppath=3D/Library/Application
=C2= =A0Support/Emacs/${version}/site-lisp:/Library/Application
=C2=A0Support= /Emacs/site-lisp' --with-modules'

Configured features:
NO= TIFY KQUEUE ACL GNUTLS LIBXML2 ZLIB TOOLKIT_SCROLL_BARS NS MODULES
THREA= DS JSON PDUMPER GMP

Important settings:
=C2=A0 value of $LANG: en= _US.UTF-8
=C2=A0 locale-coding-system: utf-8-unix

Major mode: Inf= o

Minor modes in effect:
=C2=A0 show-paren-mode: t
=C2=A0 glob= al-git-commit-mode: t
=C2=A0 magit-auto-revert-mode: t
=C2=A0 shell-d= irtrack-mode: t
=C2=A0 override-global-mode: t
=C2=A0 tooltip-mode: t=
=C2=A0 global-eldoc-mode: t
=C2=A0 electric-indent-mode: t
=C2=A0= mouse-wheel-mode: t
=C2=A0 file-name-shadow-mode: t
=C2=A0 global-fo= nt-lock-mode: t
=C2=A0 font-lock-mode: t
=C2=A0 blink-cursor-mode: t<= br>=C2=A0 auto-composition-mode: t
=C2=A0 auto-encryption-mode: t
=C2= =A0 auto-compression-mode: t
=C2=A0 buffer-read-only: t
=C2=A0 column= -number-mode: t
=C2=A0 line-number-mode: t
=C2=A0 transient-mark-mode= : t

Load-path shadows:
/Users/jorendorff/.emacs.d/elpa/jsonrpc-1.= 0.15/jsonrpc hides /Applications/Emacs.app/Contents/Resources/lisp/jsonrpc<= br>/Users/jorendorff/.emacs.d/elpa/xref-1.6.0/xref hides /Applications/Emac= s.app/Contents/Resources/lisp/progmodes/xref
/Users/jorendorff/.emacs.d/= elpa/project-0.9.3/project hides /Applications/Emacs.app/Contents/Resources= /lisp/progmodes/project
/Users/jorendorff/.emacs.d/elpa/flymake-1.2.2/fl= ymake hides /Applications/Emacs.app/Contents/Resources/lisp/progmodes/flyma= ke
/Users/jorendorff/.emacs.d/elpa/seq-2.23/seq hides /Applications/Emac= s.app/Contents/Resources/lisp/emacs-lisp/seq
/Users/jorendorff/.emacs.d/= elpa/eldoc-1.13.0/eldoc hides /Applications/Emacs.app/Contents/Resources/li= sp/emacs-lisp/eldoc

Features:
(shadow sort mail-extr emacsbug sen= dmail vc-git vc-annotate vc-filewise
apropos jka-compr vc-dir vc vc-disp= atcher rustic-flycheck let-alist
rustic-spellcheck rustic-expand rustic-= lsp rustic-playground
rustic-rustfix rustic-racer rustic-babel rustic-ru= stfmt rustic-comint
rustic-clippy rustic-doc xdg rustic-popup rustic-car= go rustic-compile
spinner rustic-interaction rustic xterm-color org-elem= ent avl-tree org
ob ob-tangle ob-ref ob-lob ob-table ob-exp org-macro or= g-footnote
org-src ob-comint org-pcomplete org-list org-faces org-entiti= es
org-version ob-emacs-lisp ob-core ob-eval org-table ol org-keys
or= g-compat org-macs org-loaddefs cal-menu calendar cal-loaddefs tar-mode
a= rc-mode archive-mode autoload lisp-mnt mm-archive gnutls network-stream
= url-http url-gw nsm url-cache url-auth url url-proxy url-privacy
url-exp= and url-methods url-history url-cookie url-domsuf mailcap
cus-edit cus-s= tart cus-load wid-edit cl-print eieio-opt speedbar
sb-image ezimage dfra= me ibuf-ext ibuffer ibuffer-loaddefs help-fns
radix-tree make-mode sql v= iew conf-mode goto-addr tmm git-rebase
magit-ediff ediff ediff-merg edif= f-mult ediff-wind ediff-diff ediff-help
ediff-init ediff-util dired-x bu= g-reference magit-extras face-remap
sh-script smie executable pulse find= -dired misearch multi-isearch vc-svn
grep paren page-ext rust-utils rust= -mode rust-rustfmt rust-playpen
rust-compile rust-cargo company-lean com= pany-etags company lean-mode
lean-dev lean-right-click lean-message-boxe= s lean-type lean-hole
lean-flycheck lean-info lean-server lean-debug lea= n-leanpkg lean-syntax
lean-input quail lean-settings lean-util f s lean-= eri yaml-mode
terraform-mode hcl-mode protobuf-mode cc-mode cc-fonts cc-= guess cc-menus
cc-cmds cc-styles cc-align cc-engine cc-vars cc-defs mark= down-mode color
lua-mode haskell-mode haskell-cabal haskell-utils haskel= l-font-lock
haskell-indentation haskell-string haskell-sort-imports hask= ell-lexeme
haskell-align-imports haskell-complete-module haskell-ghc-sup= port
noutline outline etags fileloop generator dabbrev haskell-customize=
yasnippet multiple-cursors mc-separate-operations
rectangular-region= -mode mc-mark-pop mc-edit-lines
mc-hide-unmatched-lines-mode mc-mark-mor= e mc-cycle-cursors
multiple-cursors-core advice rect magit-submodule mag= it-obsolete
magit-blame magit-stash magit-reflog magit-bisect magit-push= magit-pull
magit-fetch magit-clone magit-remote magit-commit magit-sequ= ence
magit-notes magit-worktree magit-tag magit-merge magit-branch
ma= git-reset magit-files magit-refs magit-status magit magit-repos
magit-ap= ply magit-wip magit-log which-func magit-diff smerge-mode diff
diff-mode= git-commit log-edit message rmc puny dired dired-loaddefs
rfc822 mml mm= l-sec epa derived epg epg-config gnus-util rmail
rmail-loaddefs text-pro= perty-search time-date mm-decode mm-bodies
mm-encode mail-parse rfc2231 = rfc2047 rfc2045 mm-util ietf-drums
mail-prsvr mailabbrev mail-utils gmm-= utils mailheader pcvs-util add-log
magit-core magit-autorevert autorever= t magit-margin magit-transient
magit-process with-editor shell pcomplete= server magit-mode transient
edmacro kmacro magit-git magit-base magit-s= ection format-spec crm
compat-27 compat-26 compat compat-macs eglot arra= y filenotify jsonrpc
ert pp ewoc debug backtrace xref flymake-proc flyma= ke thingatpt warnings
compile comint ring pcase url-util project imenu f= lycheck ansi-color
find-func rx dash 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 finder-inf info package easyme= nu browse-url
url-handlers url-parse auth-source cl-seq eieio eieio-core= cl-macs
eieio-loaddefs password-cache json subr-x map url-vars seq byte= -opt gv
bytecomp byte-compile cconv cl-loaddefs cl-lib tooltip eldoc ele= ctric
uniquify ediff-hook vc-hooks lisp-float-type mwheel term/ns-win ns= -win
ucs-normalize mule-util term/common-win tool-bar dnd fontset image<= br>regexp-opt fringe tabulated-list replace newcomment text-mode elisp-mode=
lisp-mode prog-mode register page tab-bar menu-bar rfn-eshadow isearch<= br>timer select scroll-bar mouse jit-lock font-lock syntax facemenu
font= -core term/tty-colors frame minibuffer cl-generic cham georgian
utf-8-la= ng misc-lang vietnamese tibetan thai tai-viet lao korean
japanese eucjp-= ms cp51932 hebrew greek romanian slovak czech european
ethiopic indian c= yrillic chinese composite charscript charprop
case-table epa-hook jka-cm= pr-hook help simple abbrev obarray
cl-preloaded nadvice loaddefs button = faces cus-face macroexp files
text-properties overlay sha1 md5 base64 fo= rmat env code-pages mule
custom widget hashtable-print-readable backquot= e threads kqueue cocoa ns
multi-tty make-network-process emacs)

M= emory information:
((conses 16 838747 195081)
=C2=A0(symbols 48 49430= 2)
=C2=A0(strings 32 217132 39331)
=C2=A0(string-bytes 1 7847174)=C2=A0(vectors 16 106459)
=C2=A0(vector-slots 8 1958647 115236)
=C2= =A0(floats 8 419 673)
=C2=A0(intervals 56 49417 2047)
=C2=A0(buffers = 1000 201))
--000000000000c8a34505f2a5b05e--