Subject: 26.1; Condition-case failed to catch error

From: Sheng Yang (杨圣) <[email-masked]>
Date: Thu, 28 Jun 2018 09:54:41 -0700

I was trying to read code of undo-tree when I encounter this problem.
Here is a somewhat simplified version with some debug output (and the
offending undo-tree file can be found in attachment or at
https://dimlight.tk/~yangsheng/undo-tree):

'''
(defun load-undo-tree-history ()
   (interactive)
   (let ((filename "~/undo-tree"))
     (with-temp-buffer
       (insert-file-contents filename)
       (goto-char (point-min))
       (condition-case err
         (progn
           (message "before reading hash")
           (setq hash (read (current-buffer)))
           (message "before reading tree")
           (setq tree (read (current-buffer)))
           (message "after reading tree"))
         (error (message "error caught")))
       (message "outside condition-case")
    (kill-buffer nil))))
'''

The undo-tree file contains two lines, the first is a hash, and the
second is a undo-tree structure printed with ~prin1~. Some error will
happen in the second ~(read (current-buffer))~, so the expected behavior
is the following output:

'''
before reading hash
before reading tree
error caught
outside condition-case
'''

However, here is what I get.

'''
before reading hash
before reading tree
Re-entering top level after C stack overflow
'''

It seems that the function call ~(read (current-buffer))~ causes C stack
overflow. Though I personally believe the undo-tree file is not
corrupted, I assume this error should be caught by condition-case even
if the file to read is indeed corrupted.

I bisected with git (using current master head d0e2a341dd) and found the
first commit that introduced this (not exactly the same) problem was

commit f0a1e9ec3fba3d5bea5bd62f525dba3fb005d1b1
Author: Paul Eggert
Date: Thu Dec 8 11:32:48 2016 -0800

Make read1 more reentrant

This is needed if ‘read’ is called soon after startup, before the
Unicode tables have been set up, and it reads a \N escape and
needs to look up a value the Unicode tables, a lookup that in turn
calls read1 recursively. Although this change doesn’t make ‘read’
fully reentrant, it’s good enough to handle this case.
,* src/lread.c (read_buffer_size, read_buffer): Remove static vars.
(grow_read_buffer): Revamp to use locals, not statics, and to
record memory allocation un the specpdl. All callers changed.
(read1): Start with a stack-based buffer, and use the heap
only if the stack buffer is too small. Use unbind_to to
free any heap buffer allocated. Use bool for boolean.
Redo symbol loop so that only one call to grow_read_buffer
is needed.
(init_obarray): Remove no-longer-needed initialization.

Starting from this commit, the previous elisp code will crash emacs. An
attempt to fix this problem is

commit 9dee1c884eb50ba282eb9dd2495c5269add25963
Author: Paul Eggert
Date: Fri Jul 14 04:54:05 2017 -0700

Improve stack-overflow heuristic on GNU/Linux

Problem reported by Steve Kemp (Bug#27585).
,* src/eval.c (near_C_stack_top): Remove. All uses replaced
by current_thread->stack_top.
(record_in_backtrace): Set current_thread->stack_top.
This is for when the Lisp interpreter calls itself.
,* src/lread.c (read1): Set current_thread->stack_top.
This is for recursive s-expression reads.
,* src/print.c (print_object): Set current_thread->stack_top.
This is for recursive s-expression printing.
,* src/thread.c (mark_one_thread): Get stack top first.
,* src/thread.h (struct thread_state.stack_top): Now void *, not char *.

This commit fixed the crashing problem, but error catching still does
not work. As indicated in commit 9dee1c88, this commit tries to fix
Bug#27585, where Steve Kemp triggered it with a huge number of '`' or
',' . Wrapping these '`' or ',' with condition-case can also trigger the
problem.

Configured using:
'configure --prefix=/usr --sysconfdir=/etc --libexecdir=/usr/lib
--localstatedir=/var --with-x-toolkit=gtk3 --with-xft --with-modules
'CFLAGS=-march=x86-64 -mtune=generic -O2 -pipe -fstack-protector-strong
-fno-plt' CPPFLAGS=-D_FORTIFY_SOURCE=2
LDFLAGS=-Wl,-O1,--sort-common,--as-needed,-z,relro,-z,now'

Configured features:
XPM JPEG TIFF GIF PNG RSVG IMAGEMAGICK SOUND GPM DBUS GSETTINGS NOTIFY
ACL GNUTLS LIBXML2 FREETYPE M17N_FLT LIBOTF XFT ZLIB TOOLKIT_SCROLL_BARS
GTK3 X11 MODULES THREADS LIBSYSTEMD LCMS2

Important settings:
value of $LANG: zh_CN.utf-8
value of $XMODIFIERS: @im=fcitx
locale-coding-system: utf-8-unix

Major mode: Spacemacs buffer

Minor modes in effect:
highlight-changes-visible-mode: t
TeX-PDF-mode: t
TeX-source-correlate-mode: t
global-vi-tilde-fringe-mode: t
pupo-mode: t
purpose-mode: t
spaceline-info-mode: t
spaceline-helm-mode: t
projectile-mode: t
company-statistics-mode: t
eval-sexp-fu-flash-mode: t
global-semanticdb-minor-mode: t
recentf-mode: t
global-semantic-idle-scheduler-mode: t
global-semantic-idle-summary-mode: t
flycheck-pos-tip-mode: t
global-flycheck-mode: t
yas-global-mode: t
yas-minor-mode: t
global-atomic-chrome-edit-mode: t
dired-omit-mode: t
engine-mode: t
company-quickhelp-mode: t
company-quickhelp-local-mode: t
pdf-occur-global-minor-mode: t
global-semantic-stickyfunc-mode: t
semantic-mode: t
show-smartparens-global-mode: t
show-smartparens-mode: t
flyspell-lazy-mode: t
global-magit-file-mode: t
diff-auto-refine-mode: t
winner-mode: t
winum-mode: t
save-place-mode: t
savehist-mode: t
persp-mode: t
global-pangu-spacing-mode: t
pangu-spacing-mode: t
global-git-gutter+-mode: t
global-git-commit-mode: t
async-bytecomp-package-mode: t
flx-ido-mode: t
eyebrowse-mode: t
global-evil-surround-mode: t
evil-surround-mode: t
evil-lion-mode: t
evil-escape-mode: t
global-anzu-mode: t
anzu-mode: t
editorconfig-mode: t
counsel-mode: t
ivy-mode: t
clean-aindent-mode: t
ace-pinyin-global-mode: t
ace-pinyin-mode: t
which-key-mode: t
override-global-mode: t
global-undo-tree-mode: t
undo-tree-mode: t
evil-mode: t
evil-local-mode: t
spacemacs-leader-override-mode: t
global-spacemacs-leader-override-mode: t
global-hl-line-mode: t
xterm-mouse-mode: t
global-auto-revert-mode: t
shell-dirtrack-mode: t
ido-vertical-mode: t
global-page-break-lines-mode: t
page-break-lines-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
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:
/home/yangsheng/.emacs.d/elpa/26.1/develop/org-plus-contrib-20180611/org-plot
hides /usr/share/emacs/26.1/lisp/org/org-plot
/home/yangsheng/.emacs.d/elpa/26.1/develop/org-plus-contrib-20180611/ob-stan
hides /usr/share/emacs/26.1/lisp/org/ob-stan
/home/yangsheng/.emacs.d/elpa/26.1/develop/org-plus-contrib-20180611/ob-processing
hides /usr/share/emacs/26.1/lisp/org/ob-processing
/home/yangsheng/.emacs.d/elpa/26.1/develop/org-plus-contrib-20180611/org-colview
hides /usr/share/emacs/26.1/lisp/org/org-colview
/home/yangsheng/.emacs.d/elpa/26.1/develop/org-plus-contrib-20180611/ox-man
hides /usr/share/emacs/26.1/lisp/org/ox-man
/home/yangsheng/.emacs.d/elpa/26.1/develop/org-plus-contrib-20180611/ox-org
hides /usr/share/emacs/26.1/lisp/org/ox-org
/home/yangsheng/.emacs.d/elpa/26.1/develop/org-plus-contrib-20180611/ob-makefile
hides /usr/share/emacs/26.1/lisp/org/ob-makefile
/home/yangsheng/.emacs.d/elpa/26.1/develop/org-plus-contrib-20180611/ob-org
hides /usr/share/emacs/26.1/lisp/org/ob-org
/home/yangsheng/.emacs.d/elpa/26.1/develop/org-plus-contrib-20180611/org-gnus
hides /usr/share/emacs/26.1/lisp/org/org-gnus
/home/yangsheng/.emacs.d/elpa/26.1/develop/org-plus-contrib-20180611/ob-sed
hides /usr/share/emacs/26.1/lisp/org/ob-sed
/home/yangsheng/.emacs.d/elpa/26.1/develop/org-plus-contrib-20180611/ob-java
hides /usr/share/emacs/26.1/lisp/org/ob-java
/home/yangsheng/.emacs.d/elpa/26.1/develop/org-plus-contrib-20180611/ox-latex
hides /usr/share/emacs/26.1/lisp/org/ox-latex
/home/yangsheng/.emacs.d/elpa/26.1/develop/org-plus-contrib-20180611/org-habit
hides /usr/share/emacs/26.1/lisp/org/org-habit
/home/yangsheng/.emacs.d/elpa/26.1/develop/org-plus-contrib-20180611/org-feed
hides /usr/share/emacs/26.1/lisp/org/org-feed
/home/yangsheng/.emacs.d/elpa/26.1/develop/org-plus-contrib-20180611/org-duration
hides /usr/share/emacs/26.1/lisp/org/org-duration
/home/yangsheng/.emacs.d/elpa/26.1/develop/org-plus-contrib-20180611/ob-calc
hides /usr/share/emacs/26.1/lisp/org/ob-calc
/home/yangsheng/.emacs.d/elpa/26.1/develop/org-plus-contrib-20180611/ob-css
hides /usr/share/emacs/26.1/lisp/org/ob-css
/home/yangsheng/.emacs.d/elpa/26.1/develop/org-plus-contrib-20180611/org-protocol
hides /usr/share/emacs/26.1/lisp/org/org-protocol
/home/yangsheng/.emacs.d/elpa/26.1/develop/org-plus-contrib-20180611/org-timer
hides /usr/share/emacs/26.1/lisp/org/org-timer
/home/yangsheng/.emacs.d/elpa/26.1/develop/org-plus-contrib-20180611/ob-J
hides /usr/share/emacs/26.1/lisp/org/ob-J
/home/yangsheng/.emacs.d/elpa/26.1/develop/org-plus-contrib-20180611/ox-icalendar
hides /usr/share/emacs/26.1/lisp/org/ox-icalendar
/home/yangsheng/.emacs.d/elpa/26.1/develop/org-plus-contrib-20180611/ob-forth
hides /usr/share/emacs/26.1/lisp/org/ob-forth
/home/yangsheng/.emacs.d/elpa/26.1/develop/org-plus-contrib-20180611/ob-C
hides /usr/share/emacs/26.1/lisp/org/ob-C
/home/yangsheng/.emacs.d/elpa/26.1/develop/org-plus-contrib-20180611/ob-lilypond
hides /usr/share/emacs/26.1/lisp/org/ob-lilypond
/home/yangsheng/.emacs.d/elpa/26.1/develop/org-plus-contrib-20180611/org-list
hides /usr/share/emacs/26.1/lisp/org/org-list
/home/yangsheng/.emacs.d/elpa/26.1/develop/org-plus-contrib-20180611/org-inlinetask
hides /usr/share/emacs/26.1/lisp/org/org-inlinetask
/home/yangsheng/.emacs.d/elpa/26.1/develop/org-plus-contrib-20180611/org-loaddefs
hides /usr/share/emacs/26.1/lisp/org/org-loaddefs
/home/yangsheng/.emacs.d/elpa/26.1/develop/org-plus-contrib-20180611/org-agenda
hides /usr/share/emacs/26.1/lisp/org/org-agenda
/home/yangsheng/.emacs.d/elpa/26.1/develop/org-plus-contrib-20180611/org-ctags
hides /usr/share/emacs/26.1/lisp/org/org-ctags
/home/yangsheng/.emacs.d/elpa/26.1/develop/org-plus-contrib-20180611/ox-ascii
hides /usr/share/emacs/26.1/lisp/org/ox-ascii
/home/yangsheng/.emacs.d/elpa/26.1/develop/org-plus-contrib-20180611/org-indent
hides /usr/share/emacs/26.1/lisp/org/org-indent
/home/yangsheng/.emacs.d/elpa/26.1/develop/org-plus-contrib-20180611/ob-gnuplot
hides /usr/share/emacs/26.1/lisp/org/ob-gnuplot
/home/yangsheng/.emacs.d/elpa/26.1/develop/org-plus-contrib-20180611/org-mobile
hides /usr/share/emacs/26.1/lisp/org/org-mobile
/home/yangsheng/.emacs.d/elpa/26.1/develop/org-plus-contrib-20180611/org-info
hides /usr/share/emacs/26.1/lisp/org/org-info
/home/yangsheng/.emacs.d/elpa/26.1/develop/org-plus-contrib-20180611/org-irc
hides /usr/share/emacs/26.1/lisp/org/org-irc
/home/yangsheng/.emacs.d/elpa/26.1/develop/org-plus-contrib-20180611/ob-ledger
hides /usr/share/emacs/26.1/lisp/org/ob-ledger
/home/yangsheng/.emacs.d/elpa/26.1/develop/org-plus-contrib-20180611/ob-asymptote
hides /usr/share/emacs/26.1/lisp/org/ob-asymptote
/home/yangsheng/.emacs.d/elpa/26.1/develop/org-plus-contrib-20180611/ob-io
hides /usr/share/emacs/26.1/lisp/org/ob-io
/home/yangsheng/.emacs.d/elpa/26.1/develop/org-plus-contrib-20180611/ob-fortran
hides /usr/share/emacs/26.1/lisp/org/ob-fortran
/home/yangsheng/.emacs.d/elpa/26.1/develop/org-plus-contrib-20180611/ox
hides /usr/share/emacs/26.1/lisp/org/ox
/home/yangsheng/.emacs.d/elpa/26.1/develop/org-plus-contrib-20180611/org-w3m
hides /usr/share/emacs/26.1/lisp/org/org-w3m
/home/yangsheng/.emacs.d/elpa/26.1/develop/org-plus-contrib-20180611/org-compat
hides /usr/share/emacs/26.1/lisp/org/org-compat
/home/yangsheng/.emacs.d/elpa/26.1/develop/org-plus-contrib-20180611/org-mouse
hides /usr/share/emacs/26.1/lisp/org/org-mouse
/home/yangsheng/.emacs.d/elpa/26.1/develop/org-plus-contrib-20180611/ob-sass
hides /usr/share/emacs/26.1/lisp/org/ob-sass
/home/yangsheng/.emacs.d/elpa/26.1/develop/org-plus-contrib-20180611/ob-ocaml
hides /usr/share/emacs/26.1/lisp/org/ob-ocaml
/home/yangsheng/.emacs.d/elpa/26.1/develop/org-plus-contrib-20180611/org-faces
hides /usr/share/emacs/26.1/lisp/org/org-faces
/home/yangsheng/.emacs.d/elpa/26.1/develop/org-plus-contrib-20180611/ob-python
hides /usr/share/emacs/26.1/lisp/org/ob-python
/home/yangsheng/.emacs.d/elpa/26.1/develop/org-plus-contrib-20180611/ob-perl
hides /usr/share/emacs/26.1/lisp/org/ob-perl
/home/yangsheng/.emacs.d/elpa/26.1/develop/org-plus-contrib-20180611/ob-vala
hides /usr/share/emacs/26.1/lisp/org/ob-vala
/home/yangsheng/.emacs.d/elpa/26.1/develop/org-plus-contrib-20180611/ob-scheme
hides /usr/share/emacs/26.1/lisp/org/ob-scheme
/home/yangsheng/.emacs.d/elpa/26.1/develop/org-plus-contrib-20180611/ob-ref
hides /usr/share/emacs/26.1/lisp/org/ob-ref
/home/yangsheng/.emacs.d/elpa/26.1/develop/org-plus-contrib-20180611/org-footnote
hides /usr/share/emacs/26.1/lisp/org/org-footnote
/home/yangsheng/.emacs.d/elpa/26.1/develop/org-plus-contrib-20180611/org-entities
hides /usr/share/emacs/26.1/lisp/org/org-entities
/home/yangsheng/.emacs.d/elpa/26.1/develop/org-plus-contrib-20180611/org-element
hides /usr/share/emacs/26.1/lisp/org/org-element
/home/yangsheng/.emacs.d/elpa/26.1/develop/org-plus-contrib-20180611/ob-table
hides /usr/share/emacs/26.1/lisp/org/ob-table
/home/yangsheng/.emacs.d/elpa/26.1/develop/org-plus-contrib-20180611/org-crypt
hides /usr/share/emacs/26.1/lisp/org/org-crypt
/home/yangsheng/.emacs.d/elpa/26.1/develop/org-plus-contrib-20180611/ox-publish
hides /usr/share/emacs/26.1/lisp/org/ox-publish
/home/yangsheng/.emacs.d/elpa/26.1/develop/org-plus-contrib-20180611/org-clock
hides /usr/share/emacs/26.1/lisp/org/org-clock
/home/yangsheng/.emacs.d/elpa/26.1/develop/org-plus-contrib-20180611/ob-R
hides /usr/share/emacs/26.1/lisp/org/ob-R
/home/yangsheng/.emacs.d/elpa/26.1/develop/org-plus-contrib-20180611/org-src
hides /usr/share/emacs/26.1/lisp/org/org-src
/home/yangsheng/.emacs.d/elpa/26.1/develop/org-plus-contrib-20180611/ob-ebnf
hides /usr/share/emacs/26.1/lisp/org/ob-ebnf
/home/yangsheng/.emacs.d/elpa/26.1/develop/org-plus-contrib-20180611/org-macs
hides /usr/share/emacs/26.1/lisp/org/org-macs
/home/yangsheng/.emacs.d/elpa/26.1/develop/org-plus-contrib-20180611/ob-clojure
hides /usr/share/emacs/26.1/lisp/org/ob-clojure
/home/yangsheng/.emacs.d/elpa/26.1/develop/org-plus-contrib-20180611/ob-haskell
hides /usr/share/emacs/26.1/lisp/org/ob-haskell
/home/yangsheng/.emacs.d/elpa/26.1/develop/org-plus-contrib-20180611/ob-tangle
hides /usr/share/emacs/26.1/lisp/org/ob-tangle
/home/yangsheng/.emacs.d/elpa/26.1/develop/org-plus-contrib-20180611/org-rmail
hides /usr/share/emacs/26.1/lisp/org/org-rmail
/home/yangsheng/.emacs.d/elpa/26.1/develop/org-plus-contrib-20180611/org-bbdb
hides /usr/share/emacs/26.1/lisp/org/org-bbdb
/home/yangsheng/.emacs.d/elpa/26.1/develop/org-plus-contrib-20180611/org-bibtex
hides /usr/share/emacs/26.1/lisp/org/org-bibtex
/home/yangsheng/.emacs.d/elpa/26.1/develop/org-plus-contrib-20180611/ob-lob
hides /usr/share/emacs/26.1/lisp/org/ob-lob
/home/yangsheng/.emacs.d/elpa/26.1/develop/org-plus-contrib-20180611/ob-groovy
hides /usr/share/emacs/26.1/lisp/org/ob-groovy
/home/yangsheng/.emacs.d/elpa/26.1/develop/org-plus-contrib-20180611/ob-lua
hides /usr/share/emacs/26.1/lisp/org/ob-lua
/home/yangsheng/.emacs.d/elpa/26.1/develop/org-plus-contrib-20180611/ob-lisp
hides /usr/share/emacs/26.1/lisp/org/ob-lisp
/home/yangsheng/.emacs.d/elpa/26.1/develop/org-plus-contrib-20180611/ox-html
hides /usr/share/emacs/26.1/lisp/org/ox-html
/home/yangsheng/.emacs.d/elpa/26.1/develop/org-plus-contrib-20180611/ob-keys
hides /usr/share/emacs/26.1/lisp/org/ob-keys
/home/yangsheng/.emacs.d/elpa/26.1/develop/org-plus-contrib-20180611/ob-ruby
hides /usr/share/emacs/26.1/lisp/org/ob-ruby
/home/yangsheng/.emacs.d/elpa/26.1/develop/org-plus-contrib-20180611/ob-mscgen
hides /usr/share/emacs/26.1/lisp/org/ob-mscgen
/home/yangsheng/.emacs.d/elpa/26.1/develop/org-plus-contrib-20180611/ob-abc
hides /usr/share/emacs/26.1/lisp/org/ob-abc
/home/yangsheng/.emacs.d/elpa/26.1/develop/org-plus-contrib-20180611/ob-core
hides /usr/share/emacs/26.1/lisp/org/ob-core
/home/yangsheng/.emacs.d/elpa/26.1/develop/org-plus-contrib-20180611/ob-maxima
hides /usr/share/emacs/26.1/lisp/org/ob-maxima
/home/yangsheng/.emacs.d/elpa/26.1/develop/org-plus-contrib-20180611/ob-ditaa
hides /usr/share/emacs/26.1/lisp/org/ob-ditaa
/home/yangsheng/.emacs.d/elpa/26.1/develop/org-plus-contrib-20180611/ob
hides /usr/share/emacs/26.1/lisp/org/ob
/home/yangsheng/.emacs.d/elpa/26.1/develop/org-plus-contrib-20180611/ob-sqlite
hides /usr/share/emacs/26.1/lisp/org/ob-sqlite
/home/yangsheng/.emacs.d/elpa/26.1/develop/org-plus-contrib-20180611/org-eshell
hides /usr/share/emacs/26.1/lisp/org/org-eshell
/home/yangsheng/.emacs.d/elpa/26.1/develop/org-plus-contrib-20180611/org-lint
hides /usr/share/emacs/26.1/lisp/org/org-lint
/home/yangsheng/.emacs.d/elpa/26.1/develop/org-plus-contrib-20180611/org-table
hides /usr/share/emacs/26.1/lisp/org/org-table
/home/yangsheng/.emacs.d/elpa/26.1/develop/org-plus-contrib-20180611/org-datetree
hides /usr/share/emacs/26.1/lisp/org/org-datetree
/home/yangsheng/.emacs.d/elpa/26.1/develop/org-plus-contrib-20180611/ob-js
hides /usr/share/emacs/26.1/lisp/org/ob-js
/home/yangsheng/.emacs.d/elpa/26.1/develop/org-plus-contrib-20180611/ox-md
hides /usr/share/emacs/26.1/lisp/org/ox-md
/home/yangsheng/.emacs.d/elpa/26.1/develop/org-plus-contrib-20180611/ox-beamer
hides /usr/share/emacs/26.1/lisp/org/ox-beamer
/home/yangsheng/.emacs.d/elpa/26.1/develop/org-plus-contrib-20180611/ob-hledger
hides /usr/share/emacs/26.1/lisp/org/ob-hledger
/home/yangsheng/.emacs.d/elpa/26.1/develop/org-plus-contrib-20180611/ox-odt
hides /usr/share/emacs/26.1/lisp/org/ox-odt
/home/yangsheng/.emacs.d/elpa/26.1/develop/org-plus-contrib-20180611/ob-dot
hides /usr/share/emacs/26.1/lisp/org/ob-dot
/home/yangsheng/.emacs.d/elpa/26.1/develop/org-plus-contrib-20180611/org-archive
hides /usr/share/emacs/26.1/lisp/org/org-archive
/home/yangsheng/.emacs.d/elpa/26.1/develop/org-plus-contrib-20180611/org-pcomplete
hides /usr/share/emacs/26.1/lisp/org/org-pcomplete
/home/yangsheng/.emacs.d/elpa/26.1/develop/org-plus-contrib-20180611/ob-shen
hides /usr/share/emacs/26.1/lisp/org/ob-shen
/home/yangsheng/.emacs.d/elpa/26.1/develop/org-plus-contrib-20180611/ox-texinfo
hides /usr/share/emacs/26.1/lisp/org/ox-texinfo
/home/yangsheng/.emacs.d/elpa/26.1/develop/org-plus-contrib-20180611/ob-octave
hides /usr/share/emacs/26.1/lisp/org/ob-octave
/home/yangsheng/.emacs.d/elpa/26.1/develop/org-plus-contrib-20180611/ob-picolisp
hides /usr/share/emacs/26.1/lisp/org/ob-picolisp
/home/yangsheng/.emacs.d/elpa/26.1/develop/org-plus-contrib-20180611/org-macro
hides /usr/share/emacs/26.1/lisp/org/org-macro
/home/yangsheng/.emacs.d/elpa/26.1/develop/org-plus-contrib-20180611/ob-plantuml
hides /usr/share/emacs/26.1/lisp/org/ob-plantuml
/home/yangsheng/.emacs.d/elpa/26.1/develop/org-plus-contrib-20180611/org
hides /usr/share/emacs/26.1/lisp/org/org
/home/yangsheng/.emacs.d/elpa/26.1/develop/org-plus-contrib-20180611/ob-sql
hides /usr/share/emacs/26.1/lisp/org/ob-sql
/home/yangsheng/.emacs.d/elpa/26.1/develop/org-plus-contrib-20180611/ob-emacs-lisp
hides /usr/share/emacs/26.1/lisp/org/ob-emacs-lisp
/home/yangsheng/.emacs.d/elpa/26.1/develop/org-plus-contrib-20180611/ob-coq
hides /usr/share/emacs/26.1/lisp/org/ob-coq
/home/yangsheng/.emacs.d/elpa/26.1/develop/org-plus-contrib-20180611/ob-matlab
hides /usr/share/emacs/26.1/lisp/org/ob-matlab
/home/yangsheng/.emacs.d/elpa/26.1/develop/org-plus-contrib-20180611/org-docview
hides /usr/share/emacs/26.1/lisp/org/org-docview
/home/yangsheng/.emacs.d/elpa/26.1/develop/org-plus-contrib-20180611/org-id
hides /usr/share/emacs/26.1/lisp/org/org-id
/home/yangsheng/.emacs.d/elpa/26.1/develop/org-plus-contrib-20180611/ob-exp
hides /usr/share/emacs/26.1/lisp/org/ob-exp
/home/yangsheng/.emacs.d/elpa/26.1/develop/org-plus-contrib-20180611/ob-shell
hides /usr/share/emacs/26.1/lisp/org/ob-shell
/home/yangsheng/.emacs.d/elpa/26.1/develop/org-plus-contrib-20180611/org-eww
hides /usr/share/emacs/26.1/lisp/org/org-eww
/home/yangsheng/.emacs.d/elpa/26.1/develop/org-plus-contrib-20180611/org-attach
hides /usr/share/emacs/26.1/lisp/org/org-attach
/home/yangsheng/.emacs.d/elpa/26.1/develop/org-plus-contrib-20180611/org-capture
hides /usr/share/emacs/26.1/lisp/org/org-capture
/home/yangsheng/.emacs.d/elpa/26.1/develop/org-plus-contrib-20180611/org-install
hides /usr/share/emacs/26.1/lisp/org/org-install
/home/yangsheng/.emacs.d/elpa/26.1/develop/org-plus-contrib-20180611/org-mhe
hides /usr/share/emacs/26.1/lisp/org/org-mhe
/home/yangsheng/.emacs.d/elpa/26.1/develop/org-plus-contrib-20180611/ob-latex
hides /usr/share/emacs/26.1/lisp/org/ob-latex
/home/yangsheng/.emacs.d/elpa/26.1/develop/org-plus-contrib-20180611/ob-comint
hides /usr/share/emacs/26.1/lisp/org/ob-comint
/home/yangsheng/.emacs.d/elpa/26.1/develop/org-plus-contrib-20180611/ob-awk
hides /usr/share/emacs/26.1/lisp/org/ob-awk
/home/yangsheng/.emacs.d/elpa/26.1/develop/org-plus-contrib-20180611/org-version
hides /usr/share/emacs/26.1/lisp/org/org-version
/home/yangsheng/.emacs.d/elpa/26.1/develop/org-plus-contrib-20180611/ob-eval
hides /usr/share/emacs/26.1/lisp/org/ob-eval
/home/yangsheng/.emacs.d/elpa/26.1/develop/org-plus-contrib-20180611/ob-screen
hides /usr/share/emacs/26.1/lisp/org/ob-screen

Features:
(shadow emacsbug mailalias mailclient sendmail qp mail-extr sort view
reftex-global magit-ediff evil-ediff ediff-merg ediff-wind ediff-diff
ediff-mult ediff-help ediff-init ediff-util ediff vc vc-dispatcher
gravatar url-cache org-timer org-clock expand-region
text-mode-expansions cc-mode-expansions the-org-mode-expansions
ruby-mode-expansions python-el-fgallina-expansions latex-mode-expansions
js2-mode-expansions js-mode-expansions web-mode-expansions
html-mode-expansions css-mode-expansions er-basic-expansions
expand-region-core expand-region-custom hide-comnt helm-find handwrite
hangul hanja-util quail helm-id-utils cal-bahai helm-sys helm-color
simple-httpd helm-eshell cal-china-x help-at-pt highlight-indentation
helm-config helm-easymenu helm-semantic helm-man hashcash helm-ring
cal-hebrew helm-dabbrev htmlfontify htmlfontify-loaddefs files-x mmm-erb
mmm-region mmm-auto mmm-vars mmm-utils mmm-compat helm-for-files
helm-bookmark helm-external helm-net helm-command helm-mode helm-org
cal-islam tutorial helm-elisp helm-files helm-buffers helm-tags
helm-locate helm-eval edebug helm-info holidays hol-loaddefs hexl
helm-make htmlize helm-grep helm-regexp helm-adaptive helm-misc
helm-types helm-elisp-package helm-font haml-mode smartparens-markdown
markdown-mode css-mode eww smartparens-ruby ruby-mode hanoi helm-imenu
helm-utils helm-help hilit-chg hungry-delete helm helm-source
helm-multi-match helm-lib canlock use-package-lint use-package-jump
whitespace semantic/tag-write fill-column-indicator magit-gitflow
pcre2el rxt re-builder semantic/edit semantic/analyze/complete
semantic/db-typecache org-duration cal-julian diary-lib diary-loaddefs
cal-iso org-agenda tabify elfeed-link org-projectile
org-category-capture org-capture reftex-index reftex-sel reftex-ref
reftex-cite reftex-parse texmathp pdf-sync pdf-annot pdf-outline
pdf-links pdf-history latexenc paren hippie-exp company-web-html
company-web company-css web-completion-data emmet-mode web-mode
ibuffer-projectile timezone elfeed-goodies-logging
elfeed-goodies-new-entry-hooks mm-url elfeed-goodies-split-pane
elfeed-goodies-show-mode noflet cl-indent elfeed-goodies-search-mode
elfeed-goodies elfeed-org elfeed-show elfeed-search shr svg elfeed-csv
elfeed elfeed-curl elfeed-log elfeed-db elfeed-lib url-queue browse-url
xml-query conf-mode company-shell flycheck-bashate sh-script smie
executable preview prv-emacs company-auctex tex-fold reftex-dcr
reftex-auc reftex reftex-loaddefs reftex-vars font-latex auctex-latexmk
tex-buf latex latex-flymake flymake-proc flymake tex-ispell tex-style
tex smartparens-latex tex-mode cl-print debug two-column iso-transl
network-stream starttls importmagic anaconda-mode pythonic hi-lock
evil-matchit evil-matchit-sdk semantic/wisent/python
semantic/wisent/python-wy smartparens-python python
semantic/decorate/mode org-eldoc org-journal org-crypt evil-org
org-table ob-python ob-C ob-js ob-shell ob-latex org-bullets
org-download toc-org image-file org-rmail org-mhe org-irc org-info
org-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 gnus nnheader org-docview doc-view org-bibtex bibtex org-bbdb
org-w3m vc-git flycheck-rust stickyfunc-enhance company-c-headers
semantic/db-file data-debug cedet-files ggtags ewoc tramp-cache tramp-sh
colir smex vi-tilde-fringe spacemacs-purpose-popwin window-purpose-x
imenu-list window-purpose window-purpose-fixes
window-purpose-prefix-overload window-purpose-switch
window-purpose-layout spaceline-config spaceline-segments spaceline
powerline powerline-separators powerline-themes projectile grep
company-statistics company-files company-keywords company-etags
company-gtags company-template company-dabbrev-code company-dabbrev
company-yasnippet company-capf overseer pkg-info epl auto-compile packed
elisp-slime-nav eval-sexp-fu highlight font-lock+ frame-fns avoid
semantic/db-mode srefactor srefactor-ui recentf tree-widget
srecode/semantic semantic/senator semantic/decorate srecode/insert
srecode/filters srecode/args ede/speedbar ede/files ede ede/detect
ede/base ede/auto ede/source eieio-speedbar eieio-custom srecode/find
srecode/map srecode/ctxt srecode/compile srecode/dictionary
srecode/table srecode semantic/doc semantic/bovine/c hideif
semantic/bovine/c-by semantic/lex-spp semantic/idle semantic/bovine/gcc
semantic/dep semantic/analyze/refs semantic/db-find semantic/db-ref
semantic/analyze semantic/sort semantic/scope semantic/analyze/fcn
goto-addr bug-reference auto-highlight-symbol evil-lisp-state
flycheck-pos-tip flycheck highlight-numbers parent-mode
highlight-parentheses hideshow rainbow-delimiters yasnippet-snippets
yasnippet rainbow-mode color elec-pair window-purpose-core
window-purpose-configuration window-purpose-utils atomic-chrome
websocket bindat cnfonts cnfonts-ui cal-china lunar solar cal-dst
eterm-256color term ehelp dired-x ranger ivy-rich engine-mode
company-jed

-- 
Sheng Yang(杨圣)
PhD student
Computer Science Department
University of Maryland, College Park
E-mail:[email-masked]