From mboxrd@z Thu Jan 1 00:00:00 1970 Path: news.gmane.io!.POSTED.blaine.gmane.org!not-for-mail From: dick Newsgroups: gmane.emacs.bugs Subject: bug#45907: [PATCH] Shr memory singularity gif89a Date: Fri, 15 Jan 2021 18:17:09 -0500 Message-ID: <871relaiyy.fsf@dick> Mime-Version: 1.0 Content-Type: multipart/mixed; boundary="=-=-=" Injection-Info: ciao.gmane.io; posting-host="blaine.gmane.org:116.202.254.214"; logging-data="40804"; mail-complaints-to="usenet@ciao.gmane.io" To: 45907@debbugs.gnu.org Original-X-From: bug-gnu-emacs-bounces+geb-bug-gnu-emacs=m.gmane-mx.org@gnu.org Sat Jan 16 00:18:16 2021 Return-path: Envelope-to: geb-bug-gnu-emacs@m.gmane-mx.org Original-Received: from lists.gnu.org ([209.51.188.17]) by ciao.gmane.io with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.92) (envelope-from ) id 1l0YMB-000AVC-JX for geb-bug-gnu-emacs@m.gmane-mx.org; Sat, 16 Jan 2021 00:18:15 +0100 Original-Received: from localhost ([::1]:60096 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1l0YMA-0006Ud-IO for geb-bug-gnu-emacs@m.gmane-mx.org; Fri, 15 Jan 2021 18:18:14 -0500 Original-Received: from eggs.gnu.org ([2001:470:142:3::10]:59876) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1l0YLz-0006TU-9l for bug-gnu-emacs@gnu.org; Fri, 15 Jan 2021 18:18:03 -0500 Original-Received: from debbugs.gnu.org ([209.51.188.43]:58636) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1l0YLy-0006ZJ-W9 for bug-gnu-emacs@gnu.org; Fri, 15 Jan 2021 18:18:03 -0500 Original-Received: from Debian-debbugs by debbugs.gnu.org with local (Exim 4.84_2) (envelope-from ) id 1l0YLy-0003KP-Kj for bug-gnu-emacs@gnu.org; Fri, 15 Jan 2021 18:18:02 -0500 X-Loop: help-debbugs@gnu.org Resent-From: dick Original-Sender: "Debbugs-submit" Resent-CC: bug-gnu-emacs@gnu.org Resent-Date: Fri, 15 Jan 2021 23:18:02 +0000 Resent-Message-ID: Resent-Sender: help-debbugs@gnu.org X-GNU-PR-Message: report 45907 X-GNU-PR-Package: emacs X-GNU-PR-Keywords: patch X-Debbugs-Original-To: bug-gnu-emacs@gnu.org Original-Received: via spool by submit@debbugs.gnu.org id=B.161075264112742 (code B ref -1); Fri, 15 Jan 2021 23:18:02 +0000 Original-Received: (at submit) by debbugs.gnu.org; 15 Jan 2021 23:17:21 +0000 Original-Received: from localhost ([127.0.0.1]:41949 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1l0YLI-0003JR-3V for submit@debbugs.gnu.org; Fri, 15 Jan 2021 18:17:20 -0500 Original-Received: from lists.gnu.org ([209.51.188.17]:52904) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1l0YLF-0003JJ-QL for submit@debbugs.gnu.org; Fri, 15 Jan 2021 18:17:19 -0500 Original-Received: from eggs.gnu.org ([2001:470:142:3::10]:59750) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1l0YLE-0005u6-8a for bug-gnu-emacs@gnu.org; Fri, 15 Jan 2021 18:17:17 -0500 Original-Received: from mail-qk1-x734.google.com ([2607:f8b0:4864:20::734]:44785) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1l0YLB-0006Jt-5U for bug-gnu-emacs@gnu.org; Fri, 15 Jan 2021 18:17:15 -0500 Original-Received: by mail-qk1-x734.google.com with SMTP id v126so13359505qkd.11 for ; Fri, 15 Jan 2021 15:17:12 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=from:to:subject:date:message-id:mime-version; bh=E2LDEonGoh3PYJ6Rdre993f8VoWXL48+TCnCdCNmT4w=; b=GeN6kmcRS+oqiI1I0yFYwmQK0qrZZiu/Teqe1lmBiuxU3DyPE0Nr9d/Gyp5fW6Tg5A bBymzBfNGX9DdOW0SIHAe7MiFqOEVuUUPidvtxVn3RRQJN5JTP5PGnmzknVLPrrrpWdP vsJFiI9R/6WnI0AzDb9C3JvLfHCtpodDhqr4SSgQqE+snObGZ3rfE2InjhGcYICIZj9D O+SkS8fK2DIOBxke0gr1cxmGc0+pwvamkfFOFnNG8PGITcrAtw+GlSrO/WH31SKjwUMS eTaEYzc+pCX4VIFt7C7cXclr8Vni0T2Nybupghd+Y5IxyWOa6fqv5zRVKWaDlLWvxG8H kkTg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:subject:date:message-id:mime-version; bh=E2LDEonGoh3PYJ6Rdre993f8VoWXL48+TCnCdCNmT4w=; b=bltv52HPtF7XJVZ8GbYv9pYKmnctxFPmoeMU+WBGZDoNQ85uAYSEESb3ZXZpTgXyHx Zkv4Y1wSMGpCMK1U5MytPMXMHxtVVPw5IQppowiNQe5Kt/NnW2U1ei9vR2Fap7vBOsuZ zy1yHopw/iUw0frdvB8Y54aOEew4DxTUsaw8Tjor2xjtnNRcXLQpY+7+3NVvRi/OQRUr /+LlsbIjn4Wy4F5FGliGa+HVLpNigJMb32sL7xctx9ioVC/1U4ukEZlEW8bDUN0n5vpo TZQel/4bNncrafgkXQ07mGfQx9AQIpqkB5ICpZ5BDHlCUsuvs8EKXpqHrA8PmehALnPy fQvw== X-Gm-Message-State: AOAM530WxwSXG+tNO1nwf0MCLPYWf+pKGcUEOFeBC+msSxWKur5RMSEH UC71+TpTtsdgllr58FZ1w8U/ZqE/KZo= X-Google-Smtp-Source: ABdhPJylqse4vg8Cr3POJq29BMW7TkoPQ6kZRRorKhxW5cfwA+qDHcK2dGcqHoX+yNcaxJRkipAx2Q== X-Received: by 2002:a37:4394:: with SMTP id q142mr14725182qka.113.1610752631518; Fri, 15 Jan 2021 15:17:11 -0800 (PST) Original-Received: from localhost (pool-71-190-212-171.nycmny.fios.verizon.net. [71.190.212.171]) by smtp.gmail.com with ESMTPSA id t184sm5893062qkd.100.2021.01.15.15.17.10 (version=TLS1_2 cipher=ECDHE-ECDSA-CHACHA20-POLY1305 bits=256/256); Fri, 15 Jan 2021 15:17:10 -0800 (PST) Received-SPF: pass client-ip=2607:f8b0:4864:20::734; envelope-from=dick.r.chiang@gmail.com; helo=mail-qk1-x734.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-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list X-BeenThere: bug-gnu-emacs@gnu.org List-Id: "Bug reports for GNU Emacs, the Swiss army knife of text editors" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: bug-gnu-emacs-bounces+geb-bug-gnu-emacs=m.gmane-mx.org@gnu.org Original-Sender: "bug-gnu-emacs" Xref: news.gmane.io gmane.emacs.bugs:198006 Archived-At: --=-=-= Content-Type: text/plain Disclaimer: Avoid running this if you need your machine to be up. emacs -Q --eval "(eww \"https://github.com/enphysoft/search-gmail-using-message-id\")" --=-=-= Content-Type: text/x-diff Content-Disposition: inline; filename=0001-Avoid-gif89a-explosions.patch >From 7d43e6ed260c7e920b656a21a4876b87b277d81d Mon Sep 17 00:00:00 2001 From: dickmao Date: Fri, 15 Jan 2021 18:02:44 -0500 Subject: [PATCH] Avoid gif89a explosions With the increased use of gif89a, my gnus is achieving memory consumption singularity more frequently. * lisp/net/shr.el (shr-put-image): When content-type is application/octet-stream, do not attempt insert-image. * test/src/xdisp-tests.el (xdisp-tests--window-text-pixel-size, xdisp-tests--window-text-pixel-size-leading-space, xdisp-tests--window-text-pixel-size-trailing-space): `make check` currently fails without conditioning these tests for graphics display. --- lisp/net/shr.el | 53 ++++++++++++++++++++------------------ test/src/xdisp-tests.el | 57 ++++++++++++++++++++++------------------- 2 files changed, 58 insertions(+), 52 deletions(-) diff --git a/lisp/net/shr.el b/lisp/net/shr.el index 9c3740fccc..eb69668f32 100644 --- a/lisp/net/shr.el +++ b/lisp/net/shr.el @@ -1109,46 +1109,49 @@ shr-put-image "Insert image SPEC with a string ALT. Return image. SPEC is either an image data blob, or a list where the first element is the data blob and the second element is the content-type." - (if (display-graphic-p) + (let (image) + (when (display-graphic-p) (let* ((size (cdr (assq 'size flags))) (data (if (consp spec) (car spec) spec)) (content-type (and (consp spec) (cadr spec))) - (start (point)) - (image (cond - ((eq size 'original) - (create-image data nil t :ascent 100 - :format content-type)) - ((eq content-type 'image/svg+xml) - (when (image-type-available-p 'svg) - (create-image data 'svg t :ascent 100))) - ((eq size 'full) - (ignore-errors - (shr-rescale-image data content-type - (plist-get flags :width) - (plist-get flags :height)))) - (t - (ignore-errors - (shr-rescale-image data content-type - (plist-get flags :width) - (plist-get flags :height))))))) + (start (point))) + (setq image + (cond + ((eq size 'original) + (create-image data nil t :ascent 100 + :format content-type)) + ((eq content-type 'image/svg+xml) + (when (image-type-available-p 'svg) + (create-image data 'svg t :ascent 100))) + ((eq content-type 'application/octet-stream) + nil) + ((eq size 'full) + (ignore-errors + (shr-rescale-image data content-type + (plist-get flags :width) + (plist-get flags :height)))) + (t + (ignore-errors + (shr-rescale-image data content-type + (plist-get flags :width) + (plist-get flags :height)))))) (when image ;; When inserting big-ish pictures, put them at the ;; beginning of the line. - (when (and (> (current-column) 0) + (when (and (> (current-column) 0) (> (car (image-size image t)) 400)) (insert "\n")) (if (eq size 'original) (insert-sliced-image image (or alt "*") nil 20 1) (insert-image image (or alt "*"))) - (put-text-property start (point) 'image-size size) - (when (and shr-image-animate + (put-text-property start (point) 'image-size size) + (when (and shr-image-animate (cdr (image-multi-frame-p image))) - (image-animate image nil 60))) - image) - (insert (or alt "")))) + (image-animate image nil 60))))) + (or image (insert (or alt ""))))) (defun shr--image-type () "Emacs image type to use when displaying images. diff --git a/test/src/xdisp-tests.el b/test/src/xdisp-tests.el index ec96d777ff..de92d26ef8 100644 --- a/test/src/xdisp-tests.el +++ b/test/src/xdisp-tests.el @@ -72,34 +72,37 @@ xdisp-tests--minibuffer-scroll (should (equal (nth 0 posns) (nth 1 posns))) (should (equal (nth 1 posns) (nth 2 posns))))) -(ert-deftest xdisp-tests--window-text-pixel-size () ;; bug#45748 - (with-temp-buffer - (insert "xxx") - (let* ((window - (display-buffer (current-buffer) '(display-buffer-in-child-frame . nil))) - (char-width (frame-char-width)) - (size (window-text-pixel-size nil t t))) - (delete-frame (window-frame window)) - (should (equal (/ (car size) char-width) 3))))) +(when (display-graphic-p) + (ert-deftest xdisp-tests--window-text-pixel-size () ;; bug#45748 + (with-temp-buffer + (insert "xxx") + (let* ((window + (display-buffer (current-buffer) '(display-buffer-in-child-frame . nil))) + (char-width (frame-char-width)) + (size (window-text-pixel-size nil t t))) + (delete-frame (window-frame window)) + (should (equal (/ (car size) char-width) 3)))))) -(ert-deftest xdisp-tests--window-text-pixel-size-leading-space () ;; bug#45748 - (with-temp-buffer - (insert " xx") - (let* ((window - (display-buffer (current-buffer) '(display-buffer-in-child-frame . nil))) - (char-width (frame-char-width)) - (size (window-text-pixel-size nil t t))) - (delete-frame (window-frame window)) - (should (equal (/ (car size) char-width) 3))))) +(when (display-graphic-p) + (ert-deftest xdisp-tests--window-text-pixel-size-leading-space () ;; bug#45748 + (with-temp-buffer + (insert " xx") + (let* ((window + (display-buffer (current-buffer) '(display-buffer-in-child-frame . nil))) + (char-width (frame-char-width)) + (size (window-text-pixel-size nil t t))) + (delete-frame (window-frame window)) + (should (equal (/ (car size) char-width) 3)))))) -(ert-deftest xdisp-tests--window-text-pixel-size-trailing-space () ;; bug#45748 - (with-temp-buffer - (insert "xx ") - (let* ((window - (display-buffer (current-buffer) '(display-buffer-in-child-frame . nil))) - (char-width (frame-char-width)) - (size (window-text-pixel-size nil t t))) - (delete-frame (window-frame window)) - (should (equal (/ (car size) char-width) 3))))) +(when (display-graphic-p) + (ert-deftest xdisp-tests--window-text-pixel-size-trailing-space () ;; bug#45748 + (with-temp-buffer + (insert "xx ") + (let* ((window + (display-buffer (current-buffer) '(display-buffer-in-child-frame . nil))) + (char-width (frame-char-width)) + (size (window-text-pixel-size nil t t))) + (delete-frame (window-frame window)) + (should (equal (/ (car size) char-width) 3)))))) ;;; xdisp-tests.el ends here -- 2.26.2 --=-=-= Content-Type: text/plain In GNU Emacs 27.1.50 (build 1, x86_64-pc-linux-gnu, GTK+ Version 3.22.30) of 2020-12-08 built on dick Repository revision: 8e7325909363affe27c36d1181b60a625ea04d23 Repository branch: emacs-27 Windowing system distributor 'The X.Org Foundation', version 11.0.11906000 System Description: Ubuntu 18.04.4 LTS Recent messages: Auto-saving...done Mark set Auto-saving...done Mark saved where search started [2 times] No ChangeLog data at point Auto-saving...done Mark set [2 times] Saving file /home/dick/emacs/.git/COMMIT_EDITMSG... Wrote /home/dick/emacs/.git/COMMIT_EDITMSG Git finished Configured using: 'configure --prefix=/home/dick/.local --with-rsvg=yes --with-xml2=yes' Configured features: XPM JPEG TIFF GIF PNG RSVG SOUND DBUS GSETTINGS GLIB NOTIFY INOTIFY LIBSELINUX GNUTLS LIBXML2 FREETYPE HARFBUZZ XFT ZLIB TOOLKIT_SCROLL_BARS GTK3 X11 XDBE XIM MODULES THREADS JSON PDUMPER GMP Important settings: value of $LANG: en_US.UTF-8 locale-coding-system: utf-8-unix Major mode: Diff Minor modes in effect: whitespace-mode: t jupyter-repl-persistent-mode: t show-paren-mode: t global-magit-file-mode: t magit-file-mode: t magit-auto-revert-mode: t global-git-commit-mode: t async-bytecomp-package-mode: t flx-ido-mode: t projectile-mode: t override-global-mode: t pyvenv-mode: t shell-dirtrack-mode: t ido-everywhere: t beacon-mode: t global-hl-line-mode: t winner-mode: t cl-old-struct-compat-mode: t tooltip-mode: t global-eldoc-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 column-number-mode: t line-number-mode: t transient-mark-mode: t Load-path shadows: /home/dick/ESS/lisp/obsolete/ess-swv hides /home/dick/ESS/lisp/ess-swv /home/dick/ESS/lisp/obsolete/ess-rutils hides /home/dick/ESS/lisp/ess-rutils /home/dick/ESS/lisp/obsolete/ess-noweb hides /home/dick/ESS/lisp/ess-noweb /home/dick/ESS/lisp/obsolete/mouseme hides /home/dick/ESS/lisp/mouseme /home/dick/ESS/lisp/obsolete/ess-mouse hides /home/dick/ESS/lisp/ess-mouse /home/dick/ESS/lisp/obsolete/ess-noweb-mode hides /home/dick/ESS/lisp/ess-noweb-mode /home/dick/ESS/lisp/obsolete/make-regexp hides /home/dick/ESS/lisp/make-regexp /home/dick/ESS/lisp/obsolete/ess-r-a hides /home/dick/ESS/lisp/ess-r-a /home/dick/ESS/lisp/obsolete/ess-noweb-font-lock-mode hides /home/dick/ESS/lisp/ess-noweb-font-lock-mode /home/dick/gomacro-mode/gomacro-mode hides /home/dick/.emacs.d/elpa/gomacro-mode-20200326.1103/gomacro-mode /home/dick/ESS/lisp/julia-mode-latexsubs hides /home/dick/.emacs.d/elpa/julia-mode-20200717.1915/julia-mode-latexsubs /home/dick/ESS/lisp/julia-mode hides /home/dick/.emacs.d/elpa/julia-mode-20200717.1915/julia-mode /home/dick/.emacs.d/elpa/hydra-20170924.2259/lv hides /home/dick/.emacs.d/elpa/lv-20191106.1238/lv /home/dick/melpa-stats/melpa-stats hides /home/dick/.emacs.d/elpa/melpa-stats-20190720.1833/melpa-stats /home/dick/.emacs.d/elpa/async-20200113.1745/async-autoloads hides /home/dick/.local/share/emacs/site-lisp/emacs-async/async-autoloads /home/dick/.emacs.d/elpa/async-20200113.1745/async-bytecomp hides /home/dick/.local/share/emacs/site-lisp/emacs-async/async-bytecomp /home/dick/.emacs.d/elpa/async-20200113.1745/smtpmail-async hides /home/dick/.local/share/emacs/site-lisp/emacs-async/smtpmail-async /home/dick/.emacs.d/elpa/async-20200113.1745/dired-async hides /home/dick/.local/share/emacs/site-lisp/emacs-async/dired-async /home/dick/.emacs.d/elpa/async-20200113.1745/async hides /home/dick/.local/share/emacs/site-lisp/emacs-async/async /home/dick/.emacs.d/elpa/async-20200113.1745/async-pkg hides /home/dick/.local/share/emacs/site-lisp/emacs-async/async-pkg /home/dick/.emacs.d/lisp/json hides /home/dick/.local/share/emacs/27.1.50/lisp/json /home/dick/.emacs.d/elpa/map-2.1/map hides /home/dick/.local/share/emacs/27.1.50/lisp/emacs-lisp/map Features: (shadow sort flyspell ispell footnote mail-extr gnus-msg gnus-art mm-uu mml2015 mm-view mml-smime smime dig emacsbug sendmail whitespace git-rebase loadhist emms-source-file locate flycheck let-alist go-eldoc gomacro-mode go-mode find-file magit-extras ert rect completion timezone ob-python mule-util image-file cursor-sensor vc-bzr vc-src vc-sccs vc-cvs vc-rcs sgml-mode sh-script executable markdown-mode edit-indirect jupyter-python jupyter-zmq-channel-ioloop jupyter-channel-ioloop-comm jupyter-channel-ioloop jupyter-ioloop-comm jupyter-ioloop jupyter-zmq-channel zmq zmq-core jupyter-kernel-process-manager edebug dired-aux ein-ipynb-mode js ein-process ein-jupyter exec-path-from-shell ein-dev ein-notebook ein-gat ein-python-send ein-traceback ein-shared-output ein-pytools ein-pager view ein-completer ein-notification ein-scratchsheet ein-worksheet poly-ein display-line-numbers ein-kill-ring ein-kernelinfo ein-file ein-notebooklist ein-contents-api goto-addr ag vc-svn find-dired poly-rst rst polymode poly-lock polymode-base polymode-weave polymode-export polymode-compat polymode-methods polymode-core polymode-classes eieio-custom vc vc-dispatcher face-remap ivy delsel colir ivy-overlay ffap eieio-opt speedbar sb-image ezimage dframe make-mode tramp-archive tramp-gvfs zeroconf dbus pulse dumb-jump f help-fns radix-tree cl-print debug backtrace org-element avl-tree ol-eww ol-rmail ol-mhe ol-irc ol-info ol-gnus nnir gnus-sum gnus-group gnus-undo gnus-start gnus-cloud nnimap nnmail mail-source utf7 netrc nnoo gnus-spec gnus-int gnus-range gnus-win ol-docview doc-view jka-compr image-mode exif ol-bibtex bibtex ol-bbdb ol-w3m org-tempo tempo org org-macro org-footnote org-pcomplete org-list org-faces org-entities org-version ob-R ob-jupyter jupyter-org-extensions jupyter-org-client jupyter-repl jupyter-kernel-manager jupyter-channel jupyter-widget-client simple-httpd jupyter-client jupyter-comm-layer jupyter-messages hmac-def jupyter-mime jupyter-kernelspec jupyter-env jupyter-base eieio-base ob-emacs-lisp ob-ein ein-cell ein-output-area shr svg dom ein-kernel ein-ipdb ein-query ein-events ein-websocket websocket bindat ein-node ewoc ein-log ein-classes ein-core request ein-utils deferred ob ob-tangle org-src ob-ref ob-lob ob-table ob-exp ob-comint ob-core ob-eval org-table ol org-keys org-compat org-macs org-loaddefs find-func cal-menu calendar cal-loaddefs network-stream url-http url-gw nsm url-cache url-auth misearch multi-isearch vc-git bug-reference google-c-style cc-mode cc-fonts cc-guess cc-menus cc-cmds cc-styles cc-align cc-engine cc-vars cc-defs paredit-ext paredit ein dired-x inf-ruby ruby-mode smie melpa-stats ht dash-functional anaphora a pp sx key-combo company haskell-interactive-mode haskell-presentation-mode haskell-process haskell-session haskell-compile haskell-mode haskell-cabal haskell-utils haskell-font-lock haskell-indentation haskell-string haskell-sort-imports haskell-lexeme rx haskell-align-imports haskell-complete-module haskell-ghc-support dabbrev haskell-customize hydra lv use-package-ensure paren magit-patch-changelog magit-patch magit-submodule magit-obsolete magit-popup 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 magit-core magit-autorevert autorevert filenotify magit-margin magit-transient magit-process magit-mode git-commit transient magit-git magit-section magit-utils crm log-edit message rmc dired dired-loaddefs rfc822 mml mml-sec mm-decode mm-bodies mm-encode mail-parse rfc2231 mailabbrev gmm-utils mailheader pcvs-util add-log with-editor async-bytecomp async pcase server dash flx-ido flx solarized-theme solarized-definitions projectile ibuf-ext ibuffer ibuffer-loaddefs gnus nnheader gnus-util rmail rmail-loaddefs rfc2047 rfc2045 ietf-drums text-property-search mail-utils mm-util mail-prsvr google-translate-default-ui google-translate-core-ui color google-translate-core google-translate-tk google-translate-backend use-package-bind-key bind-key auto-complete popup ess-r-mode ess-r-flymake flymake-proc flymake warnings thingatpt ess-r-xref ess-trns ess-r-package ess-r-completion ess-roxy ess-r-syntax ess-rd noutline outline hideshow ess-s-lang ess-help ess-mode ess-inf ess-tracebug ess ess-utils ess-custom emms-player-mplayer emms-player-simple emms emms-compat twittering-mode epa derived epg epg-config tls gnutls puny url url-proxy url-privacy url-expand url-methods url-history url-cookie url-domsuf url-util mailcap xml cl fzf elpy advice elpy-rpc pyvenv eshell esh-cmd esh-ext esh-opt esh-proc esh-io esh-arg esh-module esh-groups esh-util elpy-shell elpy-profile elpy-django s elpy-refactor diff-mode easy-mmode python tramp-sh tramp tramp-loaddefs trampver tramp-integration tramp-compat shell pcomplete parse-time iso8601 time-date ls-lisp format-spec ido grep compile comint ansi-color files-x etags fileloop generator xref project cus-edit cus-start cus-load wid-edit cl-extra help-mode use-package-core beacon hl-line winner ring finder-inf howdoyou-autoloads json-reformat-autoloads json-snatcher-autoloads edmacro kmacro sml-mode-autoloads tornado-template-mode-autoloads 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/x-win x-win term/common-win x-dnd tool-bar dnd fontset image regexp-opt fringe tabulated-list replace newcomment text-mode elisp-mode lisp-mode prog-mode register page tab-bar menu-bar rfn-eshadow isearch 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 dbusbind inotify dynamic-setting system-font-setting font-render-setting move-toolbar gtk x-toolkit x multi-tty make-network-process emacs) Memory information: ((conses 16 1386698 198163) (symbols 48 64718 34) (strings 32 252337 33235) (string-bytes 1 8883059) (vectors 16 133645) (vector-slots 8 3381503 289432) (floats 8 770 3242) (intervals 56 71497 1958) (buffers 1000 129)) --=-=-=--