From mboxrd@z Thu Jan 1 00:00:00 1970 Path: news.gmane.org!.POSTED.blaine.gmane.org!not-for-mail From: Ken Manheimer Newsgroups: gmane.emacs.bugs Subject: bug#36556: 26.2; python.el pdbtracking sometimes kills buffers when it shouldn't (plus fix) Date: Mon, 8 Jul 2019 18:28:53 -0400 Message-ID: Mime-Version: 1.0 Content-Type: multipart/alternative; boundary="00000000000016f432058d32f989" Injection-Info: blaine.gmane.org; posting-host="blaine.gmane.org:195.159.176.226"; logging-data="238111"; mail-complaints-to="usenet@blaine.gmane.org" To: 36556@debbugs.gnu.org Original-X-From: bug-gnu-emacs-bounces+geb-bug-gnu-emacs=m.gmane.org@gnu.org Tue Jul 09 00:30:46 2019 Return-path: Envelope-to: geb-bug-gnu-emacs@m.gmane.org Original-Received: from lists.gnu.org ([209.51.188.17]) by blaine.gmane.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.89) (envelope-from ) id 1hkc9i-000zib-Ap for geb-bug-gnu-emacs@m.gmane.org; Tue, 09 Jul 2019 00:30:42 +0200 Original-Received: from localhost ([::1]:45336 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.86_2) (envelope-from ) id 1hkc9h-0005me-BH for geb-bug-gnu-emacs@m.gmane.org; Mon, 08 Jul 2019 18:30:41 -0400 Original-Received: from eggs.gnu.org ([2001:470:142:3::10]:50335) by lists.gnu.org with esmtp (Exim 4.86_2) (envelope-from ) id 1hkc97-0005QX-Cd for bug-gnu-emacs@gnu.org; Mon, 08 Jul 2019 18:30:08 -0400 Original-Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1hkc94-0008Fh-Cm for bug-gnu-emacs@gnu.org; Mon, 08 Jul 2019 18:30:05 -0400 Original-Received: from debbugs.gnu.org ([209.51.188.43]:51040) by eggs.gnu.org with esmtps (TLS1.0:RSA_AES_128_CBC_SHA1:16) (Exim 4.71) (envelope-from ) id 1hkc94-0008F3-8M for bug-gnu-emacs@gnu.org; Mon, 08 Jul 2019 18:30:02 -0400 Original-Received: from Debian-debbugs by debbugs.gnu.org with local (Exim 4.84_2) (envelope-from ) id 1hkc93-0006EY-Vt for bug-gnu-emacs@gnu.org; Mon, 08 Jul 2019 18:30:02 -0400 X-Loop: help-debbugs@gnu.org Resent-From: Ken Manheimer Original-Sender: "Debbugs-submit" Resent-CC: bug-gnu-emacs@gnu.org Resent-Date: Mon, 08 Jul 2019 22:30:01 +0000 Resent-Message-ID: Resent-Sender: help-debbugs@gnu.org X-GNU-PR-Message: report 36556 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.156262496723894 (code B ref -1); Mon, 08 Jul 2019 22:30:01 +0000 Original-Received: (at submit) by debbugs.gnu.org; 8 Jul 2019 22:29:27 +0000 Original-Received: from localhost ([127.0.0.1]:59861 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1hkc8U-0006DJ-3o for submit@debbugs.gnu.org; Mon, 08 Jul 2019 18:29:26 -0400 Original-Received: from lists.gnu.org ([209.51.188.17]:51890) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1hkc8M-0006D6-QM for submit@debbugs.gnu.org; Mon, 08 Jul 2019 18:29:21 -0400 Original-Received: from eggs.gnu.org ([2001:470:142:3::10]:50191) by lists.gnu.org with esmtp (Exim 4.86_2) (envelope-from ) id 1hkc8J-0005KD-PZ for bug-gnu-emacs@gnu.org; Mon, 08 Jul 2019 18:29:18 -0400 Original-Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1hkc8G-0007x6-R9 for bug-gnu-emacs@gnu.org; Mon, 08 Jul 2019 18:29:15 -0400 Original-Received: from mail-io1-xd36.google.com ([2607:f8b0:4864:20::d36]:36350) by eggs.gnu.org with esmtps (TLS1.0:RSA_AES_128_CBC_SHA1:16) (Exim 4.71) (envelope-from ) id 1hkc8G-0007wY-Im for bug-gnu-emacs@gnu.org; Mon, 08 Jul 2019 18:29:12 -0400 Original-Received: by mail-io1-xd36.google.com with SMTP id o9so23330482iom.3 for ; Mon, 08 Jul 2019 15:29:11 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=mime-version:from:date:message-id:subject:to; bh=t+kLNMkZBk8Pz2WlECpDRzDxzeqmGcnbW33vq5UimrE=; b=ZlrWDaiK3hIppg4Cssy7lRJI9aKJ5ajrnlI6ehIUPouTdd3Ipbg9LRWaH1bBE4Sj5u ep+iQkX+y+GAc4JiS1DlSJ97ZLvjbDJIZAkcMr2aDme/07nZ2Wck6mAXndeoFkmCx238 nB8FW/cqaB6U9tAwAQiGVUvTtCBfQE5slXQP8LntDMbwiRxKiPwB95N926hwnQOyCDS5 RDTJ4cCO72Sx8gZrmvoPjxcI7+VWn0iaHSie19ciw/d1qx1SmBaKIyhkz3+R2PJViUY0 aqmriI6B3p6UdwngMQIGnjnVXlAWGsGaKi4Y20ksJ6fIlMFZJs1CQj89W9f61V+2yhFc Z59g== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:mime-version:from:date:message-id:subject:to; bh=t+kLNMkZBk8Pz2WlECpDRzDxzeqmGcnbW33vq5UimrE=; b=cFZdQk2lSYSEyg0IJHnEJ8l8yMvtKrN7NnqnYc5vZryjC2tY+d0uvi2HgJ8gMCdt17 +uZ+3D1lJ3TsSd0jx8+MupfeEtaTtpkiSuFXQHzyORaVnoEIGiKrZXN5vBoZfEt58uDF 25h4bFyZtwB1Tr/9x2Bdl7NeMbWbhHKo4Mta/Ho8WB5qaAumUtDseIjuJujwURYHPJRN 4uRMcCSxQfARfcecyKxVomV/E+RI5vlHu6C9zsbI+opbtIVcAwas84EoCauT0v6bu3tc iSHC/wv0ZxLQECsvnuW7u71lk66gZ1902Y893ClZiQvXgfbRpUkAkyoCf+j8P+wcDAj+ 6wEQ== X-Gm-Message-State: APjAAAV8KDA/66LJ4ZSTDCAFEFip+SW4+JyKiIqFVN3wddxAi3rTaa3L HrxITuFVa45W2eRi0+f94PrVrx4B/Y+U7JM6AkIsJ2CwL/s= X-Google-Smtp-Source: APXvYqxQyWgKFd/4RQ8i10KIa83xtEbGnCNUvGLBbgObImYVLAgPCJcL/cBuvqhS5BIuXIQiDIhD2VyUhpKL1dWFkeA= X-Received: by 2002:a6b:6e01:: with SMTP id d1mr1858001ioh.156.1562624950464; Mon, 08 Jul 2019 15:29:10 -0700 (PDT) X-detected-operating-system: by eggs.gnu.org: Genre and OS details not recognized. X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list X-detected-operating-system: by eggs.gnu.org: GNU/Linux 2.2.x-3.x [generic] X-Received-From: 209.51.188.43 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.org@gnu.org Original-Sender: "bug-gnu-emacs" Xref: news.gmane.org gmane.emacs.bugs:162390 Archived-At: --00000000000016f432058d32f989 Content-Type: text/plain; charset="UTF-8" python.el has a feature whereby the editor will progressively present the python code lines that the user is stepping through in a pdb session in a python buffer (or any comint buffer to which the user has added the filter functions). The python.el pdb tracking provisions includes a function, `python-pdbtrack-set-tracked-buffer()`, which registers python code buffers that were created to visit files for pdbtracking for subsequent deletion (the buffers, not the files) after the pdb session concludes. The problem is that this provision sometimes registers buffers that were present in the editing session before the pdbtracking session, so that pdbtracking sometimes causes pdbtracked buffers to be deleted when it shouldn't. I'm unsure what exact conditions lead to the problem, but I'm pretty sure that `python-pdbtrack-set-tracked-buffer()` uses the wrong buffer-finding function. Instead of using `get-file-buffer()`, it should be using `find-buffer-visiting()`. I believe that this will solve the problem. Here's a diff of python.el from the emacs-26.2.90 branch with my suggested change applied. (The same patch would obtain for the master branch): diff --git a/lisp/progmodes/python.el b/lisp/progmodes/python.el index 38dcc823d0..151b27aa80 100644 --- a/lisp/progmodes/python.el +++ b/lisp/progmodes/python.el @@ -3717,7 +3717,7 @@ python-pdbtrack-set-tracked-buffer Returns the tracked buffer." (let* ((file-name-prospect (concat (file-remote-p default-directory) file-name)) - (file-buffer (get-file-buffer file-name-prospect))) + (file-buffer (find-buffer-visiting file-name-prospect))) (if file-buffer (setq python-pdbtrack-tracked-buffer file-buffer) (cond I have verified that pdbtracking will delete some buffers that were created just for tracking and keep some buffers that were present before tracking, but haven't used it long enough to be sure it will do the right thing with all buffers. But I'm pretty sure that find-buffer-visiting should be used instead of get-file-buffer, so am pretty confident that this is a proper change. Ken Manheimer ken.manheimer@gmail.com In GNU Emacs 26.2 (build 1, x86_64-apple-darwin18.2.0, NS appkit-1671.20 Version 10.14.3 (Build 18D109)) of 2019-04-12 built on builder10-14.porkrind.org Windowing system distributor 'Apple', version 10.3.1671 Recent messages: Checking 87 files in /Applications/Emacs.app/Contents/Resources/lisp/calc... Checking 105 files in /Applications/Emacs.app/Contents/Resources/lisp/obsolete... Checking for load-path shadows...done Saved text from " In GNU Emacs 26.2 (build 1, x86_64-a" mwheel-scroll: Beginning of buffer [11 times] previous-line: Beginning of buffer Quit [5 times] 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 ACL GNUTLS LIBXML2 ZLIB TOOLKIT_SCROLL_BARS NS MODULES THREADS Important settings: value of $LANG: en_US.UTF-8 locale-coding-system: utf-8-unix Major mode: Python Minor modes in effect: flycheck-mode: t yas-minor-mode: t highlight-indentation-mode: t company-mode: t elpy-mode: t pyvenv-mode: t flymake-mode: t auto-revert-mode: t diff-hl-flydiff-mode: t save-place-mode: t show-paren-mode: t recentf-mode: t rcirc-track-minor-mode: t global-whitespace-mode: t global-diff-hl-mode: t diff-hl-mode: t diff-auto-refine-mode: t desktop-save-mode: t rainbow-delimiters-mode: t fci-mode: t savehist-mode: t shell-dirtrack-mode: t global-undo-tree-mode: t undo-tree-mode: t icomplete-mode: t tooltip-mode: t global-eldoc-mode: t 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 line-number-mode: t transient-mark-mode: t Load-path shadows: /Users/klm/lib/emacs/EmacsMultishell/multishell hides /Users/klm/lib/emacs/EmacsUtils/multishell /Users/klm/lib/emacs/misc hides /Applications/Emacs.app/Contents/Resources/lisp/misc /Users/klm/lib/emacs/align hides /Applications/Emacs.app/Contents/Resources/lisp/align /Users/klm/lib/emacs/allout_dev/allout hides /Applications/Emacs.app/Contents/Resources/lisp/allout /Users/klm/lib/emacs/allout_dev/allout-widgets hides /Applications/Emacs.app/Contents/Resources/lisp/allout-widgets /Users/klm/lib/emacs/css-mode hides /Applications/Emacs.app/Contents/Resources/lisp/textmodes/css-mode /Users/klm/lib/emacs/rst hides /Applications/Emacs.app/Contents/Resources/lisp/textmodes/rst /Users/klm/lib/emacs/nxml/rng-uri hides /Applications/Emacs.app/Contents/Resources/lisp/nxml/rng-uri /Users/klm/lib/emacs/nxml/rng-pttrn hides /Applications/Emacs.app/Contents/Resources/lisp/nxml/rng-pttrn /Users/klm/lib/emacs/nxml/rng-match hides /Applications/Emacs.app/Contents/Resources/lisp/nxml/rng-match /Users/klm/lib/emacs/nxml/nxml-maint hides /Applications/Emacs.app/Contents/Resources/lisp/nxml/nxml-maint /Users/klm/lib/emacs/nxml/rng-dt hides /Applications/Emacs.app/Contents/Resources/lisp/nxml/rng-dt /Users/klm/lib/emacs/nxml/xmltok hides /Applications/Emacs.app/Contents/Resources/lisp/nxml/xmltok /Users/klm/lib/emacs/nxml/nxml-enc hides /Applications/Emacs.app/Contents/Resources/lisp/nxml/nxml-enc /Users/klm/lib/emacs/nxml/rng-util hides /Applications/Emacs.app/Contents/Resources/lisp/nxml/rng-util /Users/klm/lib/emacs/nxml/rng-loc hides /Applications/Emacs.app/Contents/Resources/lisp/nxml/rng-loc /Users/klm/lib/emacs/nxml/rng-parse hides /Applications/Emacs.app/Contents/Resources/lisp/nxml/rng-parse /Users/klm/lib/emacs/nxml/xsd-regexp hides /Applications/Emacs.app/Contents/Resources/lisp/nxml/xsd-regexp /Users/klm/lib/emacs/nxml/rng-xsd hides /Applications/Emacs.app/Contents/Resources/lisp/nxml/rng-xsd /Users/klm/lib/emacs/nxml/rng-cmpct hides /Applications/Emacs.app/Contents/Resources/lisp/nxml/rng-cmpct /Users/klm/lib/emacs/nxml/nxml-mode hides /Applications/Emacs.app/Contents/Resources/lisp/nxml/nxml-mode /Users/klm/lib/emacs/nxml/rng-valid hides /Applications/Emacs.app/Contents/Resources/lisp/nxml/rng-valid /Users/klm/lib/emacs/nxml/nxml-ns hides /Applications/Emacs.app/Contents/Resources/lisp/nxml/nxml-ns /Users/klm/lib/emacs/nxml/nxml-util hides /Applications/Emacs.app/Contents/Resources/lisp/nxml/nxml-util /Users/klm/lib/emacs/nxml/rng-maint hides /Applications/Emacs.app/Contents/Resources/lisp/nxml/rng-maint /Users/klm/lib/emacs/nxml/nxml-parse hides /Applications/Emacs.app/Contents/Resources/lisp/nxml/nxml-parse /Users/klm/lib/emacs/nxml/rng-nxml hides /Applications/Emacs.app/Contents/Resources/lisp/nxml/rng-nxml Features: (pp shadow sort mail-extr gnus-msg gnus-art mm-uu mml2015 mm-view mml-smime smime dig mailcap gnus-sum gnus-group gnus-undo gnus-start gnus-cloud nnimap nnmail mail-source tls gnutls utf7 netrc nnoo gnus-spec gnus-int gnus-range gnus-win emacsbug message rmc puny rfc822 mml mml-sec epa mm-decode mm-bodies mm-encode mail-parse rfc2231 mailabbrev gmm-utils mailheader sendmail edebug compare-w add-log log-view pcvs-util view sh-script smie executable time-stamp misearch multi-isearch conf-mode markdown-mode noutline outline flycheck rx dash company-oddmuse company-keywords company-etags company-gtags company-dabbrev-code company-dabbrev company-files company-cmake company-xcode company-clang company-eclim company-template company-bbdb cl-extra yasnippet help-mode highlight-indentation company-capf company elpy find-file-in-project ivy colir color ivy-overlay ffap windmove elpy-shell pyvenv esh-var esh-io esh-cmd esh-opt esh-ext esh-proc esh-arg esh-groups eshell esh-module esh-mode esh-util elpy-profile elpy-django s elpy-refactor subr-x ido files-x etags xref project cus-edit flymake-proc flymake warnings thingatpt python json map autorevert filenotify diff-hl-flydiff disp-table elec-pair saveplace jka-compr paren recentf tree-widget rcirc-reconnect rcirc-notify rcirc avoid gnus nnheader gnus-util rmail rmail-loaddefs rfc2047 rfc2045 ietf-drums mail-utils mm-util mail-prsvr whitespace hl-line diff-hl face-remap vc-hg vc-git vc-dir ewoc diff-mode easy-mmode desktop frameset allout-widgets wid-edit allout cus-start cus-load delsel mouse-drag flyspell ispell server monkey monkey-dir background nice fields modal dired dired-loaddefs wgrep grep compile rainbow-delimiters fill-column-indicator multishell multishell-list derived savehist pcase user-info ange-ftp tramp-ftp tramp-sh tramp tramp-compat tramp-loaddefs trampver shell pcomplete comint ansi-color ring parse-time format-spec advice file-registry namedmarks vc vc-dispatcher misc undo-tree diff icomplete-fix nxml-mode nxml-util nxml-glyph nxml-enc xmltok find-func retain-copy cl epg icomplete edmacro kmacro finder-inf info package easymenu epg-config url-handlers url-parse auth-source cl-seq eieio eieio-core cl-macs eieio-loaddefs password-cache url-vars seq byte-opt gv bytecomp byte-compile cconv cl-loaddefs cl-lib time-date 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 menu-bar rfn-eshadow isearch timer select scroll-bar mouse jit-lock font-lock syntax facemenu font-core term/tty-colors frame 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 minibuffer 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 701576 48230) (symbols 48 47329 11) (miscs 40 17455 3460) (strings 32 120830 4193) (string-bytes 1 3766078) (vectors 16 80685) (vector-slots 8 2053353 146650) (floats 8 517 2021) (intervals 56 29302 12) (buffers 992 154)) --00000000000016f432058d32f989 Content-Type: text/html; charset="UTF-8" Content-Transfer-Encoding: quoted-printable
python.el has a feature whereby the editor will progressively = present the python code lines that the user is stepping through in a pdb se= ssion in a python buffer (or any comint buffer to which the user has added = the filter functions). The python.el pdb tracking provisions includes a fun= ction, `python-pdbtrack-set-tracked-buffer()`, which registers python code = buffers that were created to visit files for pdbtracking for subsequent del= etion (the buffers, not the files) after the pdb session concludes. The pro= blem is that this provision sometimes registers buffers that were present i= n the editing session before the pdbtracking session, so that pdbtracking s= ometimes causes pdbtracked buffers to be deleted when it shouldn't.

I'm unsure what exact conditions lead to the prob= lem, but I'm pretty sure that `python-pdbtrack-set-tracked-buffer()` us= es the wrong buffer-finding function. Instead of using `get-file-buffer()`,= it should be using `find-buffer-visiting()`. I believe that this will solv= e the problem.

Here's a diff of python.el from= the emacs-26.2.90 branch with my suggested change applied. (The same patch= would obtain for the master branch):

diff --git a/lisp/progmodes/python.el b= /lisp/progmodes/python.el
index 38dcc823d0..151b27aa80 100644
--- a/lisp/progmodes/python.el
+++ b/lisp/progmodes/python.el
@@ -3717,7 +3717,7 @@ python-pd= btrack-set-tracked-buffer
=C2=A0Returns the tracked buffer."
=C2=A0 =C2=A0(let* ((file-name-prospect (concat= (file-remote-p default-directory)
=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2= =A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0file-name))
- =C2=A0 =C2=A0 =C2=A0 =C2=A0 (= file-buffer (get-file-buffer file-name-prospect)))
+ =C2=A0 =C2=A0 =C2=A0 =C2=A0 (file-buffer (= find-buffer-visiting file-name-prospect)))
=C2=A0 =C2=A0 =C2=A0(if file-buffer
=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0(s= etq python-pdbtrack-tracked-buffer file-buffer)
=C2=A0 =C2=A0 =C2=A0 =C2=A0(cond

I have verified that pdbtracking will delete = some buffers that were created just for tracking and keep some buffers that= were present before tracking, but haven't used it long enough to be su= re it will do the right thing with all buffers. But I'm pretty sure tha= t find-buffer-visiting should be used instead of get-file-buffer, so am pre= tty confident that this is a proper change.

Ken Ma= nheimer



In GNU= Emacs 26.2 (build 1, x86_64-apple-darwin18.2.0, NS appkit-1671.20 Version = 10.14.3 (Build 18D109)) =C2=A0of 2019-04-12 built on builder10-14.porkrind.org Windowing system distr= ibutor 'Apple', version 10.3.1671
Recent messages:
<= div>Checking 87 files in /Applications/Emacs.app/Contents/Resources/lisp/ca= lc...
Checking 105 files in /Applications/Emacs.app/Contents/Reso= urces/lisp/obsolete...
Checking for load-path shadows...done
Saved text from "



In GNU Emacs 26.2 (build 1, x86_64-a"
mwheel-scroll= : Beginning of buffer [11 times]
previous-line: Beginning of buff= er
Quit [5 times]
Configured using:
=C2=A0= 9;configure --with-ns '--enable-locallisppath=3D/Library/Application
=C2=A0Support/Emacs/${version}/site-lisp:/Library/Application
=
=C2=A0Support/Emacs/site-lisp' --with-modules'

<= /div>
Configured features:
NOTIFY ACL GNUTLS LIBXML2 ZLIB TOO= LKIT_SCROLL_BARS NS MODULES THREADS

Important sett= ings:
=C2=A0 value of $LANG: en_US.UTF-8
=C2=A0 locale-= coding-system: utf-8-unix

Major mode: Python
=

Minor modes in effect:
=C2=A0 flycheck-mode: = t
=C2=A0 yas-minor-mode: t
=C2=A0 highlight-indentation= -mode: t
=C2=A0 company-mode: t
=C2=A0 elpy-mode: t
=C2=A0 pyvenv-mode: t
=C2=A0 flymake-mode: t
=C2= =A0 auto-revert-mode: t
=C2=A0 diff-hl-flydiff-mode: t
= =C2=A0 save-place-mode: t
=C2=A0 show-paren-mode: t
=C2= =A0 recentf-mode: t
=C2=A0 rcirc-track-minor-mode: t
= =C2=A0 global-whitespace-mode: t
=C2=A0 global-diff-hl-mode: t
=C2=A0 diff-hl-mode: t
=C2=A0 diff-auto-refine-mode: t
=C2=A0 desktop-save-mode: t
=C2=A0 rainbow-delimiters-mod= e: t
=C2=A0 fci-mode: t
=C2=A0 savehist-mode: t
=C2=A0 shell-dirtrack-mode: t
=C2=A0 global-undo-tree-mode: t<= /div>
=C2=A0 undo-tree-mode: t
=C2=A0 icomplete-mode: t
=
=C2=A0 tooltip-mode: t
=C2=A0 global-eldoc-mode: t
=C2=A0 eldoc-mode: t
=C2=A0 electric-indent-mode: t
= =C2=A0 mouse-wheel-mode: t
=C2=A0 file-name-shadow-mode: t
<= div>=C2=A0 global-font-lock-mode: t
=C2=A0 font-lock-mode: t
=C2=A0 blink-cursor-mode: t
=C2=A0 auto-composition-mode: t=
=C2=A0 auto-encryption-mode: t
=C2=A0 auto-compression= -mode: t
=C2=A0 line-number-mode: t
=C2=A0 transient-ma= rk-mode: t

Load-path shadows:
/Users/klm= /lib/emacs/EmacsMultishell/multishell hides /Users/klm/lib/emacs/EmacsUtils= /multishell
/Users/klm/lib/emacs/misc hides /Applications/Emacs.a= pp/Contents/Resources/lisp/misc
/Users/klm/lib/emacs/align hides = /Applications/Emacs.app/Contents/Resources/lisp/align
/Users/klm/= lib/emacs/allout_dev/allout hides /Applications/Emacs.app/Contents/Resource= s/lisp/allout
/Users/klm/lib/emacs/allout_dev/allout-widgets hide= s /Applications/Emacs.app/Contents/Resources/lisp/allout-widgets
= /Users/klm/lib/emacs/css-mode hides /Applications/Emacs.app/Contents/Resour= ces/lisp/textmodes/css-mode
/Users/klm/lib/emacs/rst hides /Appli= cations/Emacs.app/Contents/Resources/lisp/textmodes/rst
/Users/kl= m/lib/emacs/nxml/rng-uri hides /Applications/Emacs.app/Contents/Resources/l= isp/nxml/rng-uri
/Users/klm/lib/emacs/nxml/rng-pttrn hides /Appli= cations/Emacs.app/Contents/Resources/lisp/nxml/rng-pttrn
/Users/k= lm/lib/emacs/nxml/rng-match hides /Applications/Emacs.app/Contents/Resource= s/lisp/nxml/rng-match
/Users/klm/lib/emacs/nxml/nxml-maint hides = /Applications/Emacs.app/Contents/Resources/lisp/nxml/nxml-maint
/= Users/klm/lib/emacs/nxml/rng-dt hides /Applications/Emacs.app/Contents/Reso= urces/lisp/nxml/rng-dt
/Users/klm/lib/emacs/nxml/xmltok hides /Ap= plications/Emacs.app/Contents/Resources/lisp/nxml/xmltok
/Users/k= lm/lib/emacs/nxml/nxml-enc hides /Applications/Emacs.app/Contents/Resources= /lisp/nxml/nxml-enc
/Users/klm/lib/emacs/nxml/rng-util hides /App= lications/Emacs.app/Contents/Resources/lisp/nxml/rng-util
/Users/= klm/lib/emacs/nxml/rng-loc hides /Applications/Emacs.app/Contents/Resources= /lisp/nxml/rng-loc
/Users/klm/lib/emacs/nxml/rng-parse hides /App= lications/Emacs.app/Contents/Resources/lisp/nxml/rng-parse
/Users= /klm/lib/emacs/nxml/xsd-regexp hides /Applications/Emacs.app/Contents/Resou= rces/lisp/nxml/xsd-regexp
/Users/klm/lib/emacs/nxml/rng-xsd hides= /Applications/Emacs.app/Contents/Resources/lisp/nxml/rng-xsd
/Us= ers/klm/lib/emacs/nxml/rng-cmpct hides /Applications/Emacs.app/Contents/Res= ources/lisp/nxml/rng-cmpct
/Users/klm/lib/emacs/nxml/nxml-mode hi= des /Applications/Emacs.app/Contents/Resources/lisp/nxml/nxml-mode
/Users/klm/lib/emacs/nxml/rng-valid hides /Applications/Emacs.app/Content= s/Resources/lisp/nxml/rng-valid
/Users/klm/lib/emacs/nxml/nxml-ns= hides /Applications/Emacs.app/Contents/Resources/lisp/nxml/nxml-ns
/Users/klm/lib/emacs/nxml/nxml-util hides /Applications/Emacs.app/Conten= ts/Resources/lisp/nxml/nxml-util
/Users/klm/lib/emacs/nxml/rng-ma= int hides /Applications/Emacs.app/Contents/Resources/lisp/nxml/rng-maint
/Users/klm/lib/emacs/nxml/nxml-parse hides /Applications/Emacs.app/= Contents/Resources/lisp/nxml/nxml-parse
/Users/klm/lib/emacs/nxml= /rng-nxml hides /Applications/Emacs.app/Contents/Resources/lisp/nxml/rng-nx= ml

Features:
(pp shadow sort mail-extr g= nus-msg gnus-art mm-uu mml2015 mm-view
mml-smime smime dig mailca= p gnus-sum gnus-group gnus-undo gnus-start
gnus-cloud nnimap nnma= il mail-source tls gnutls utf7 netrc nnoo
gnus-spec gnus-int gnus= -range gnus-win emacsbug message rmc puny rfc822
mml mml-sec epa = mm-decode mm-bodies mm-encode mail-parse rfc2231
mailabbrev gmm-u= tils mailheader sendmail edebug compare-w add-log
log-view pcvs-u= til view sh-script smie executable time-stamp misearch
multi-isea= rch conf-mode markdown-mode noutline outline flycheck rx dash
com= pany-oddmuse company-keywords company-etags company-gtags
company= -dabbrev-code company-dabbrev company-files company-cmake
company= -xcode company-clang company-eclim company-template company-bbdb
= cl-extra yasnippet help-mode highlight-indentation company-capf company
elpy find-file-in-project ivy colir color ivy-overlay ffap windmove<= /div>
elpy-shell pyvenv esh-var esh-io esh-cmd esh-opt esh-ext esh-proc=
esh-arg esh-groups eshell esh-module esh-mode esh-util elpy-prof= ile
elpy-django s elpy-refactor subr-x ido files-x etags xref pro= ject
cus-edit flymake-proc flymake warnings thingatpt python json= map
autorevert filenotify diff-hl-flydiff disp-table elec-pair s= aveplace
jka-compr paren recentf tree-widget rcirc-reconnect rcir= c-notify rcirc
avoid gnus nnheader gnus-util rmail rmail-loaddefs= rfc2047 rfc2045
ietf-drums mail-utils mm-util mail-prsvr whitesp= ace hl-line diff-hl
face-remap vc-hg vc-git vc-dir ewoc diff-mode= easy-mmode desktop
frameset allout-widgets wid-edit allout cus-s= tart cus-load delsel
mouse-drag flyspell ispell server monkey mon= key-dir background nice
fields modal dired dired-loaddefs wgrep g= rep compile rainbow-delimiters
fill-column-indicator multishell m= ultishell-list derived savehist pcase
user-info ange-ftp tramp-ft= p tramp-sh tramp tramp-compat tramp-loaddefs
trampver shell pcomp= lete comint ansi-color ring parse-time format-spec
advice file-re= gistry namedmarks vc vc-dispatcher misc undo-tree diff
icomplete-= fix nxml-mode nxml-util nxml-glyph nxml-enc xmltok find-func
reta= in-copy cl epg icomplete edmacro kmacro finder-inf info package
e= asymenu epg-config url-handlers url-parse auth-source cl-seq eieio
eieio-core cl-macs eieio-loaddefs password-cache url-vars seq byte-opt
gv bytecomp byte-compile cconv cl-loaddefs cl-lib time-date tooltip=
eldoc electric uniquify ediff-hook vc-hooks lisp-float-type mwhe= el
term/ns-win ns-win ucs-normalize mule-util term/common-win too= l-bar dnd
fontset image regexp-opt fringe tabulated-list replace = newcomment
text-mode elisp-mode lisp-mode prog-mode register page= menu-bar
rfn-eshadow isearch timer select scroll-bar mouse jit-l= ock font-lock
syntax facemenu font-core term/tty-colors frame cl-= generic cham georgian
utf-8-lang misc-lang vietnamese tibetan tha= i tai-viet lao korean
japanese eucjp-ms cp51932 hebrew greek roma= nian slovak czech european
ethiopic indian cyrillic chinese compo= site charscript charprop
case-table epa-hook jka-cmpr-hook help s= imple abbrev obarray minibuffer
cl-preloaded nadvice loaddefs but= ton faces cus-face macroexp files
text-properties overlay sha1 md= 5 base64 format env code-pages mule
custom widget hashtable-print= -readable backquote threads kqueue cocoa ns
multi-tty make-networ= k-process emacs)

Memory information:
((c= onses 16 701576 48230)
=C2=A0(symbols 48 47329 11)
=C2= =A0(miscs 40 17455 3460)
=C2=A0(strings 32 120830 4193)
=C2=A0(string-bytes 1 3766078)
=C2=A0(vectors 16 80685)
=C2=A0(vector-slots 8 2053353 146650)
=C2=A0(floats 8 517 2021)=
=C2=A0(intervals 56 29302 12)
=C2=A0(buffers 992 154))=

=
--00000000000016f432058d32f989--