Subject: bug#21644: 24.4; completing-read acts differently on functional collection

From: "Ryan C. Thompson" <[email-masked]>
Date: Wed, 7 Oct 2015 15:55:38 -0700

I've discovered that completing-read works differently if COLLECTION is 
a function than if it is a list, even if the function represents exactly 
the same set of completions as the list. For example, we can define a 
function to convert any collection to an equivalent function using a 
closure:

(setq lexical-binding t)
(defun collection-as-function (collection)
   "Return a function equivalent to COLLECTION.

The returned function will work equivalently to COLLECTION when
passed to `all-completions' and `try-completion'."
   (if (functionp collection)
       collection
     ;; Capture collection in a closure
     (lambda (string pred all)
       (funcall (if all #'all-completions #'try-completion)
                string collection pred))))
collection-as-function

(completing-read "Prompt: " '("blue" "yellow" "green") nil t)
(completing-read "Prompt: " (collection-as-function '("blue" "yellow" 
"green")) nil t)

Try typing "g" followed by RET for both of the above. In the first case 
(collection is a list), it returns "green". In the second case 
(collection is a function), it returns just "g". This is reproducible in 
emacs -Q.

In GNU Emacs 24.4.1 (x86_64-pc-linux-gnu, X toolkit, Xaw3d scroll bars)
of 2015-03-21 on kissel, modified by Debian
Windowing system distributor `The X.Org Foundation', version 11.0.11701000
System Description: Ubuntu 15.04

Configured using:
`configure --build x86_64-linux-gnu --prefix=/usr
--sharedstatedir=/var/lib --libexecdir=/usr/lib
--localstatedir=/var/lib --infodir=/usr/share/info
--mandir=/usr/share/man --with-pop=yes
--enable-locallisppath=/etc/emacs24:/etc/emacs:/usr/local/share/emacs/24.4/site-lisp:/usr/local/share/emacs/site-lisp:/usr/share/emacs/24.4/site-lisp:/usr/share/emacs/site-lisp 

--build x86_64-linux-gnu --prefix=/usr --sharedstatedir=/var/lib
--libexecdir=/usr/lib --localstatedir=/var/lib
--infodir=/usr/share/info --mandir=/usr/share/man --with-pop=yes
--enable-locallisppath=/etc/emacs24:/etc/emacs:/usr/local/share/emacs/24.4/site-lisp:/usr/local/share/emacs/site-lisp:/usr/share/emacs/24.4/site-lisp:/usr/share/emacs/site-lisp 

--with-x=yes --with-x-toolkit=lucid --with-toolkit-scroll-bars
--without-gconf --without-gsettings 'CFLAGS=-g -O2
-fstack-protector-strong -Wformat -Werror=format-security -Wall'
CPPFLAGS=-D_FORTIFY_SOURCE=2 'LDFLAGS=-Wl,-Bsymbolic-functions
-Wl,-z,relro''

Important settings:
value of $LC_COLLATE: en_US.UTF-8
value of $LC_CTYPE: en_US.UTF-8
value of $LC_MESSAGES: en_US.UTF-8
value of $LANG: en_US.UTF-8
value of $XMODIFIERS: @im=ibus
locale-coding-system: utf-8-unix

Major mode: Emacs-Lisp

Minor modes in effect:
recentf-mode: t
ws-butler-global-mode: t
ws-butler-mode: t
winner-mode: t
sml-modeline-mode: t
savehist-mode: t
minibuffer-electric-default-mode: t
minibuffer-depth-indicate-mode: t
ido-yes-or-no-mode: t
icomplete-mode: t
global-undo-tree-mode: t
undo-tree-mode: t
global-pointback-mode: t
pointback-mode: t
global-hl-line-mode: t
global-anzu-mode: t
anzu-mode: t
desktop-save-mode: t
delete-selection-mode: t
auto-dim-other-buffers-mode: t
git-wip-mode: t
ido-complete-space-or-hyphen-mode: t
pretty-symbols-mode: t
diff-auto-refine-mode: t
global-git-commit-mode: t
lexbind-mode: t
highlight-defined-mode: t
global-git-gutter-mode: t
git-gutter-mode: t
ido-everywhere: t
shell-dirtrack-mode: t
eldoc-mode: t
autopair-global-mode: t
autopair-mode: t
show-paren-mode: t
global-auto-complete-mode: t
auto-complete-mode: t
adjust-parens-mode: t
override-global-mode: t
tooltip-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

Recent input:
C-_ C-x C-e <down> <up> <left> C-x C-e g <tab> <backspace>
<backspace> <backspace> <backspace> <backspace> g <return>
C-a <tab> C-M-S-f M-w C-e <return> <return> C-y <C-left>
<C-left> <C-left> <C-left> <C-left> <C-left> <C-right>
<right> <C-S-left> <C-S-left> <C-S-left> <S-left> <backspace>
C-e <left> <left> <left> <left> <left> <backspace>
C-e C-j g <return> M-x i d o - u <tab> b <tab> - m
o <return> <left> C-_ C-j g <return> C-_ <up> <up>
<tab> <tab> C-a <tab> C-M-S-f M-w <down> <return> C-y
C-j g <return> <down> <down> C-e C-j g <return> <down-mouse-1>
<mouse-1> ( u n e <backspace> l e s s SPC ( f u n c
t i o n <backspace> <backspace> <backspace> <backspace>
<backspace> <backspace> <backspace> <backspace> <backspace>
<backspace> <backspace> <backspace> <backspace> <backspace>
<backspace> <backspace> <backspace> C-x C-s <down-mouse-4>
<mouse-4> <double-down-mouse-4> <double-mouse-4> <triple-down-mouse-4>
<triple-mouse-4> <triple-down-mouse-4> <triple-mouse-4>
<triple-down-mouse-4> <triple-mouse-4> <down-mouse-1>
<mouse-1> C-a <C-S-down> <C-S-down> M-w <C-S-up> <S-up>
<S-up> M-w <help-echo> <help-echo> <down-mouse-1> <mouse-1>
<down-mouse-1> <mouse-1> C-a <up> <up> <down> <C-S-down>
<C-S-down> M-w <help-echo> <help-echo> <help-echo>
<help-echo> <help-echo> <help-echo> <down-mouse-1>
<mouse-1> C-a <C-S-down> <C-S-down> <up> <down> C-_
C-_ C-_ C-a <C-S-down> <C-S-down> M-w <down-mouse-1>
<mouse-1> M-x r e p o r t <return> <down> <up> <down>
<down> <up> <up> M-x <return> M-x r e p o r t - e m
a c s <tab> <return> c o m p l e t i n g - r e a d
SPC a c t s SPC d i f f e r e n t l y SPC o n SPC f
u n c t i o n a l SPC c o l l e c t i o n <return>
M-x r e p o r C-g C-g C-x k <return> <return> M-x r
e p o r - v i a - m a i l <return>

Recent messages:
Checking 261 files in /usr/share/emacs/24.4/lisp/gnus...
Checking 57 files in /usr/share/emacs/24.4/lisp/eshell...
Checking 70 files in /usr/share/emacs/24.4/lisp/erc...
Checking 48 files in /usr/share/emacs/24.4/lisp/emulation...
Checking 151 files in /usr/share/emacs/24.4/lisp/emacs-lisp...
Checking 24 files in /usr/share/emacs/24.4/lisp/cedet...
Checking 57 files in /usr/share/emacs/24.4/lisp/calendar...
Checking 87 files in /usr/share/emacs/24.4/lisp/calc...
Checking 95 files in /usr/share/emacs/24.4/lisp/obsolete...
Checking for load-path shadows...done
Quit [2 times]

Load-path shadows:
/home/ryan/.emacs.d/el-get/ido-completing-read+/ido-completing-read+ 
hides 
/home/ryan/.emacs.d/.cask/24.4.1/elpa/ido-completing-read+-20151005.2131/ido-completing-read+
/home/ryan/.emacs.d/el-get/tempbuf/tempbuf hides 
/home/ryan/.emacs.d/.cask/24.4.1/elpa/tempbuf-20111124.1307/tempbuf
/home/ryan/.emacs.d/.cask/24.4.1/elpa/bar-cursor-1.1/bar-cursor hides 
/usr/share/emacs24/site-lisp/emacs-goodies-el/bar-cursor
/home/ryan/.emacs.d/.cask/24.4.1/elpa/apache-mode-20140625.1556/apache-mode 
hides /usr/share/emacs24/site-lisp/emacs-goodies-el/apache-mode
/home/ryan/.emacs.d/.cask/24.4.1/elpa/markdown-mode-20150628.502/markdown-mode 
hides /usr/share/emacs24/site-lisp/emacs-goodies-el/markdown-mode
/home/ryan/.emacs.d/.cask/24.4.1/elpa/keydef-20090428.1231/keydef hides 
/usr/share/emacs24/site-lisp/emacs-goodies-el/keydef
/home/ryan/.emacs.d/.cask/24.4.1/elpa/diminish-20091203.1012/diminish 
hides /usr/share/emacs24/site-lisp/emacs-goodies-el/diminish
/home/ryan/.emacs.d/.cask/24.4.1/elpa/debian-changelog-mode-1.96/debian-changelog-mode 
hides /usr/share/emacs24/site-lisp/dpkg-dev-el/debian-changelog-mode
/usr/share/emacs/24.4/site-lisp/debian-startup hides 
/usr/share/emacs/site-lisp/debian-startup
/usr/share/emacs24/site-lisp/cmake-data/cmake-mode hides 
/usr/share/emacs/site-lisp/cmake-mode
/usr/share/emacs24/site-lisp/flim/md4 hides /usr/share/emacs/24.4/lisp/md4
/usr/share/emacs24/site-lisp/flim/hex-util hides 
/usr/share/emacs/24.4/lisp/hex-util
/home/ryan/.emacs.d/el-get/ido-mode-el/ido hides 
/usr/share/emacs/24.4/lisp/ido
/usr/share/emacs24/site-lisp/dictionaries-common/flyspell hides 
/usr/share/emacs/24.4/lisp/textmodes/flyspell
/usr/share/emacs24/site-lisp/dictionaries-common/ispell hides 
/usr/share/emacs/24.4/lisp/textmodes/ispell
/usr/share/emacs/site-lisp/rst hides 
/usr/share/emacs/24.4/lisp/textmodes/rst
/home/ryan/.emacs.d/.cask/24.4.1/elpa/org-plus-contrib-20150629/org-ctags hides 
/usr/share/emacs/24.4/lisp/org/org-ctags
/home/ryan/.emacs.d/.cask/24.4.1/elpa/org-plus-contrib-20150629/ob-eval 
hides /usr/share/emacs/24.4/lisp/org/ob-eval
/home/ryan/.emacs.d/.cask/24.4.1/elpa/org-plus-contrib-20150629/org-docview 
hides /usr/share/emacs/24.4/lisp/org/org-docview
/home/ryan/.emacs.d/.cask/24.4.1/elpa/org-plus-contrib-20150629/ob-awk 
hides /usr/share/emacs/24.4/lisp/org/ob-awk
/home/ryan/.emacs.d/.cask/24.4.1/elpa/org-plus-contrib-20150629/ob-screen hides 
/usr/share/emacs/24.4/lisp/org/ob-screen
/home/ryan/.emacs.d/.cask/24.4.1/elpa/org-plus-contrib-20150629/ob-sql 
hides /usr/share/emacs/24.4/lisp/org/ob-sql
/home/ryan/.emacs.d/.cask/24.4.1/elpa/org-plus-contrib-20150629/ob-mscgen hides 
/usr/share/emacs/24.4/lisp/org/ob-mscgen
/home/ryan/.emacs.d/.cask/24.4.1/elpa/org-plus-contrib-20150629/ox-md 
hides /usr/share/emacs/24.4/lisp/org/ox-md
/home/ryan/.emacs.d/.cask/24.4.1/elpa/org-plus-contrib-20150629/org-list 
hides /usr/share/emacs/24.4/lisp/org/org-list
/home/ryan/.emacs.d/.cask/24.4.1/elpa/org-plus-contrib-20150629/ob-perl 
hides /usr/share/emacs/24.4/lisp/org/ob-perl
/home/ryan/.emacs.d/.cask/24.4.1/elpa/org-plus-contrib-20150629/org-attach 
hides /usr/share/emacs/24.4/lisp/org/org-attach
/home/ryan/.emacs.d/.cask/24.4.1/elpa/org-plus-contrib-20150629/ob-js 
hides /usr/share/emacs/24.4/lisp/org/ob-js
/home/ryan/.emacs.d/.cask/24.4.1/elpa/org-plus-contrib-20150629/org-w3m 
hides /usr/share/emacs/24.4/lisp/org/org-w3m
/home/ryan/.emacs.d/.cask/24.4.1/elpa/org-plus-contrib-20150629/ox-org 
hides /usr/share/emacs/24.4/lisp/org/ox-org
/home/ryan/.emacs.d/.cask/24.4.1/elpa/org-plus-contrib-20150629/ox-texinfo 
hides /usr/share/emacs/24.4/lisp/org/ox-texinfo
/home/ryan/.emacs.d/.cask/24.4.1/elpa/org-plus-contrib-20150629/org-id 
hides /usr/share/emacs/24.4/lisp/org/org-id
/home/ryan/.emacs.d/.cask/24.4.1/elpa/org-plus-contrib-20150629/ob-ocaml 
hides /usr/share/emacs/24.4/lisp/org/ob-ocaml
/home/ryan/.emacs.d/.cask/24.4.1/elpa/org-plus-contrib-20150629/ob-sqlite hides 
/usr/share/emacs/24.4/lisp/org/ob-sqlite
/home/ryan/.emacs.d/.cask/24.4.1/elpa/org-plus-contrib-20150629/ob-plantuml 
hides /usr/share/emacs/24.4/lisp/org/ob-plantuml
/home/ryan/.emacs.d/.cask/24.4.1/elpa/org-plus-contrib-20150629/org-entities 
hides /usr/share/emacs/24.4/lisp/org/org-entities
/home/ryan/.emacs.d/.cask/24.4.1/elpa/org-plus-contrib-20150629/org-agenda 
hides /usr/share/emacs/24.4/lisp/org/org-agenda
/home/ryan/.emacs.d/.cask/24.4.1/elpa/org-plus-contrib-20150629/ox-beamer hides 
/usr/share/emacs/24.4/lisp/org/ox-beamer
/home/ryan/.emacs.d/.cask/24.4.1/elpa/org-plus-contrib-20150629/ob-exp 
hides /usr/share/emacs/24.4/lisp/org/ob-exp
/home/ryan/.emacs.d/.cask/24.4.1/elpa/org-plus-contrib-20150629/org-install 
hides /usr/share/emacs/24.4/lisp/org/org-install
/home/ryan/.emacs.d/.cask/24.4.1/elpa/org-plus-contrib-20150629/org-mobile 
hides /usr/share/emacs/24.4/lisp/org/org-mobile
/home/ryan/.emacs.d/.cask/24.4.1/elpa/org-plus-contrib-20150629/ob-emacs-lisp 
hides /usr/share/emacs/24.4/lisp/org/ob-emacs-lisp
/home/ryan/.emacs.d/.cask/24.4.1/elpa/org-plus-contrib-20150629/ob-lob 
hides /usr/share/emacs/24.4/lisp/org/ob-lob
/home/ryan/.emacs.d/.cask/24.4.1/elpa/org-plus-contrib-20150629/org-feed 
hides /usr/share/emacs/24.4/lisp/org/org-feed
/home/ryan/.emacs.d/.cask/24.4.1/elpa/org-plus-contrib-20150629/ob-python hides 
/usr/share/emacs/24.4/lisp/org/ob-python
/home/ryan/.emacs.d/.cask/24.4.1/elpa/org-plus-contrib-20150629/ox-latex 
hides /usr/share/emacs/24.4/lisp/org/ox-latex
/home/ryan/.emacs.d/.cask/24.4.1/elpa/org-plus-contrib-20150629/org-crypt hides 
/usr/share/emacs/24.4/lisp/org/org-crypt
/home/ryan/.emacs.d/.cask/24.4.1/elpa/org-plus-contrib-20150629/ob-calc 
hides /usr/share/emacs/24.4/lisp/org/ob-calc
/home/ryan/.emacs.d/.cask/24.4.1/elpa/org-plus-contrib-20150629/ob-table 
hides /usr/share/emacs/24.4/lisp/org/ob-table
/home/ryan/.emacs.d/.cask/24.4.1/elpa/org-plus-contrib-20150629/ob-picolisp 
hides /usr/share/emacs/24.4/lisp/org/ob-picolisp
/home/ryan/.emacs.d/.cask/24.4.1/elpa/org-plus-contrib-20150629/ob hides 
/usr/share/emacs/24.4/lisp/org/ob
/home/ryan/.emacs.d/.cask/24.4.1/elpa/org-plus-contrib-20150629/ob-shen 
hides /usr/share/emacs/24.4/lisp/org/ob-shen
/home/ryan/.emacs.d/.cask/24.4.1/elpa/org-plus-contrib-20150629/ob-gnuplot 
hides /usr/share/emacs/24.4/lisp/org/ob-gnuplot
/home/ryan/.emacs.d/.cask/24.4.1/elpa/org-plus-contrib-20150629/ox-html 
hides /usr/share/emacs/24.4/lisp/org/ox-html
/home/ryan/.emacs.d/.cask/24.4.1/elpa/org-plus-contrib-20150629/ob-dot 
hides /usr/share/emacs/24.4/lisp/org/ob-dot
/home/ryan/.emacs.d/.cask/24.4.1/elpa/org-plus-contrib-20150629/ob-clojure 
hides /usr/share/emacs/24.4/lisp/org/ob-clojure
/home/ryan/.emacs.d/.cask/24.4.1/elpa/org-plus-contrib-20150629/org-pcomplete 
hides /usr/share/emacs/24.4/lisp/org/org-pcomplete
/home/ryan/.emacs.d/.cask/24.4.1/elpa/org-plus-contrib-20150629/org-capture 
hides /usr/share/emacs/24.4/lisp/org/org-capture
/home/ryan/.emacs.d/.cask/24.4.1/elpa/org-plus-contrib-20150629/org-colview 
hides /usr/share/emacs/24.4/lisp/org/org-colview
/home/ryan/.emacs.d/.cask/24.4.1/elpa/org-plus-contrib-20150629/ob-fortran 
hides /usr/share/emacs/24.4/lisp/org/ob-fortran
/home/ryan/.emacs.d/.cask/24.4.1/elpa/org-plus-contrib-20150629/ob-tangle hides 
/usr/share/emacs/24.4/lisp/org/ob-tangle
/home/ryan/.emacs.d/.cask/24.4.1/elpa/org-plus-contrib-20150629/org-mouse hides 
/usr/share/emacs/24.4/lisp/org/org-mouse
/home/ryan/.emacs.d/.cask/24.4.1/elpa/org-plus-contrib-20150629/org-datetree 
hides /usr/share/emacs/24.4/lisp/org/org-datetree
/home/ryan/.emacs.d/.cask/24.4.1/elpa/org-plus-contrib-20150629/org-table hides 
/usr/share/emacs/24.4/lisp/org/org-table
/home/ryan/.emacs.d/.cask/24.4.1/elpa/org-plus-contrib-20150629/ob-asymptote 
hides /usr/share/emacs/24.4/lisp/org/ob-asymptote
/home/ryan/.emacs.d/.cask/24.4.1/elpa/org-plus-contrib-20150629/ob-lilypond 
hides /usr/share/emacs/24.4/lisp/org/ob-lilypond
/home/ryan/.emacs.d/.cask/24.4.1/elpa/org-plus-contrib-20150629/ob-org 
hides /usr/share/emacs/24.4/lisp/org/ob-org
/home/ryan/.emacs.d/.cask/24.4.1/elpa/org-plus-contrib-20150629/ox-man 
hides /usr/share/emacs/24.4/lisp/org/ox-man
/home/ryan/.emacs.d/.cask/24.4.1/elpa/org-plus-contrib-20150629/ob-sh 
hides /usr/share/emacs/24.4/lisp/org/ob-sh
/home/ryan/.emacs.d/.cask/24.4.1/elpa/org-plus-contrib-20150629/ob-lisp 
hides /usr/share/emacs/24.4/lisp/org/ob-lisp
/home/ryan/.emacs.d/.cask/24.4.1/elpa/org-plus-contrib-20150629/org-compat 
hides /usr/share/emacs/24.4/lisp/org/org-compat
/home/ryan/.emacs.d/.cask/24.4.1/elpa/org-plus-contrib-20150629/ob-core 
hides /usr/share/emacs/24.4/lisp/org/ob-core
/home/ryan/.emacs.d/.cask/24.4.1/elpa/org-plus-contrib-20150629/org-clock hides 
/usr/share/emacs/24.4/lisp/org/org-clock
/home/ryan/.emacs.d/.cask/24.4.1/elpa/org-plus-contrib-20150629/org-plot 
hides /usr/share/emacs/24.4/lisp/org/org-plot
/home/ryan/.emacs.d/.cask/24.4.1/elpa/org-plus-contrib-20150629/ob-ledger hides 
/usr/share/emacs/24.4/lisp/org/ob-ledger
/home/ryan/.emacs.d/.cask/24.4.1/elpa/org-plus-contrib-20150629/ob-css 
hides /usr/share/emacs/24.4/lisp/org/ob-css
/home/ryan/.emacs.d/.cask/24.4.1/elpa/org-plus-contrib-20150629/org-archive 
hides /usr/share/emacs/24.4/lisp/org/org-archive
/home/ryan/.emacs.d/.cask/24.4.1/elpa/org-plus-contrib-20150629/ob-ref 
hides /usr/share/emacs/24.4/lisp/org/ob-ref
/home/ryan/.emacs.d/.cask/24.4.1/elpa/org-plus-contrib-20150629/org-irc 
hides /usr/share/emacs/24.4/lisp/org/org-irc
/home/ryan/.emacs.d/.cask/24.4.1/elpa/org-plus-contrib-20150629/ob-comint hides 
/usr/share/emacs/24.4/lisp/org/ob-comint
/home/ryan/.emacs.d/.cask/24.4.1/elpa/org-plus-contrib-20150629/ox-odt 
hides /usr/share/emacs/24.4/lisp/org/ox-odt
/home/ryan/.emacs.d/.cask/24.4.1/elpa/org-plus-contrib-20150629/ob-C 
hides /usr/share/emacs/24.4/lisp/org/ob-C
/home/ryan/.emacs.d/.cask/24.4.1/elpa/org-plus-contrib-20150629/ob-io 
hides /usr/share/emacs/24.4/lisp/org/ob-io
/home/ryan/.emacs.d/.cask/24.4.1/elpa/org-plus-contrib-20150629/ob-java 
hides /usr/share/emacs/24.4/lisp/org/ob-java
/home/ryan/.emacs.d/.cask/24.4.1/elpa/org-plus-contrib-20150629/org-bbdb 
hides /usr/share/emacs/24.4/lisp/org/org-bbdb
/home/ryan/.emacs.d/.cask/24.4.1/elpa/org-plus-contrib-20150629/org-indent 
hides /usr/share/emacs/24.4/lisp/org/org-indent
/home/ryan/.emacs.d/.cask/24.4.1/elpa/org-plus-contrib-20150629/org-macro hides 
/usr/share/emacs/24.4/lisp/org/org-macro
/home/ryan/.emacs.d/.cask/24.4.1/elpa/org-plus-contrib-20150629/org-protocol 
hides /usr/share/emacs/24.4/lisp/org/org-protocol
/home/ryan/.emacs.d/.cask/24.4.1/elpa/org-plus-contrib-20150629/ox-publish 
hides /usr/share/emacs/24.4/lisp/org/ox-publish
/home/ryan/.emacs.d/.cask/24.4.1/elpa/org-plus-contrib-20150629/ob-keys 
hides /usr/share/emacs/24.4/lisp/org/ob-keys
/home/ryan/.emacs.d/.cask/24.4.1/elpa/org-plus-contrib-20150629/org-element 
hides /usr/share/emacs/24.4/lisp/org/org-element
/home/ryan/.emacs.d/.cask/24.4.1/elpa/org-plus-contrib-20150629/org-inlinetask 
hides /usr/share/emacs/24.4/lisp/org/org-inlinetask
/home/ryan/.emacs.d/.cask/24.4.1/elpa/org-plus-contrib-20150629/org-bibtex 
hides /usr/share/emacs/24.4/lisp/org/org-bibtex
/home/ryan/.emacs.d/.cask/24.4.1/elpa/org-plus-contrib-20150629/ob-haskell 
hides /usr/share/emacs/24.4/lisp/org/ob-haskell
/home/ryan/.emacs.d/.cask/24.4.1/elpa/org-plus-contrib-20150629/org-faces hides 
/usr/share/emacs/24.4/lisp/org/org-faces
/home/ryan/.emacs.d/.cask/24.4.1/elpa/org-plus-contrib-20150629/org-src 
hides /usr/share/emacs/24.4/lisp/org/org-src
/home/ryan/.emacs.d/.cask/24.4.1/elpa/org-plus-contrib-20150629/org-gnus 
hides /usr/share/emacs/24.4/lisp/org/org-gnus
/home/ryan/.emacs.d/.cask/24.4.1/elpa/org-plus-contrib-20150629/ob-sass 
hides /usr/share/emacs/24.4/lisp/org/ob-sass
/home/ryan/.emacs.d/.cask/24.4.1/elpa/org-plus-contrib-20150629/org-timer hides 
/usr/share/emacs/24.4/lisp/org/org-timer
/home/ryan/.emacs.d/.cask/24.4.1/elpa/org-plus-contrib-20150629/ob-scheme hides 
/usr/share/emacs/24.4/lisp/org/ob-scheme
/home/ryan/.emacs.d/.cask/24.4.1/elpa/org-plus-contrib-20150629/ob-ruby 
hides /usr/share/emacs/24.4/lisp/org/ob-ruby
/home/ryan/.emacs.d/.cask/24.4.1/elpa/org-plus-contrib-20150629/ox-ascii 
hides /usr/share/emacs/24.4/lisp/org/ox-ascii
/home/ryan/.emacs.d/.cask/24.4.1/elpa/org-plus-contrib-20150629/org 
hides /usr/share/emacs/24.4/lisp/org/org
/home/ryan/.emacs.d/.cask/24.4.1/elpa/org-plus-contrib-20150629/org-footnote 
hides /usr/share/emacs/24.4/lisp/org/org-footnote
/home/ryan/.emacs.d/.cask/24.4.1/elpa/org-plus-contrib-20150629/ob-scala 
hides /usr/share/emacs/24.4/lisp/org/ob-scala
/home/ryan/.emacs.d/.cask/24.4.1/elpa/org-plus-contrib-20150629/org-habit hides 
/usr/share/emacs/24.4/lisp/org/org-habit
/home/ryan/.emacs.d/.cask/24.4.1/elpa/org-plus-contrib-20150629/org-rmail hides 
/usr/share/emacs/24.4/lisp/org/org-rmail
/home/ryan/.emacs.d/.cask/24.4.1/elpa/org-plus-contrib-20150629/org-loaddefs 
hides /usr/share/emacs/24.4/lisp/org/org-loaddefs
/home/ryan/.emacs.d/.cask/24.4.1/elpa/org-plus-contrib-20150629/org-macs 
hides /usr/share/emacs/24.4/lisp/org/org-macs
/home/ryan/.emacs.d/.cask/24.4.1/elpa/org-plus-contrib-20150629/ox hides 
/usr/share/emacs/24.4/lisp/org/ox
/home/ryan/.emacs.d/.cask/24.4.1/elpa/org-plus-contrib-20150629/ob-R 
hides /usr/share/emacs/24.4/lisp/org/ob-R
/home/ryan/.emacs.d/.cask/24.4.1/elpa/org-plus-contrib-20150629/ob-maxima hides 
/usr/share/emacs/24.4/lisp/org/ob-maxima
/home/ryan/.emacs.d/.cask/24.4.1/elpa/org-plus-contrib-20150629/ox-icalendar 
hides /usr/share/emacs/24.4/lisp/org/ox-icalendar
/home/ryan/.emacs.d/.cask/24.4.1/elpa/org-plus-contrib-20150629/ob-ditaa 
hides /usr/share/emacs/24.4/lisp/org/ob-ditaa
/home/ryan/.emacs.d/.cask/24.4.1/elpa/org-plus-contrib-20150629/ob-matlab hides 
/usr/share/emacs/24.4/lisp/org/ob-matlab
/home/ryan/.emacs.d/.cask/24.4.1/elpa/org-plus-contrib-20150629/ob-octave hides 
/usr/share/emacs/24.4/lisp/org/ob-octave
/home/ryan/.emacs.d/.cask/24.4.1/elpa/org-plus-contrib-20150629/ob-makefile 
hides /usr/share/emacs/24.4/lisp/org/ob-makefile
/home/ryan/.emacs.d/.cask/24.4.1/elpa/org-plus-contrib-20150629/org-eshell 
hides /usr/share/emacs/24.4/lisp/org/org-eshell
/home/ryan/.emacs.d/.cask/24.4.1/elpa/org-plus-contrib-20150629/org-info 
hides /usr/share/emacs/24.4/lisp/org/org-info
/home/ryan/.emacs.d/.cask/24.4.1/elpa/org-plus-contrib-20150629/ob-latex 
hides /usr/share/emacs/24.4/lisp/org/ob-latex
/home/ryan/.emacs.d/.cask/24.4.1/elpa/org-plus-contrib-20150629/org-mhe 
hides /usr/share/emacs/24.4/lisp/org/org-mhe
/home/ryan/.emacs.d/.cask/24.4.1/elpa/org-plus-contrib-20150629/org-version 
hides /usr/share/emacs/24.4/lisp/org/org-version
/usr/share/emacs24/site-lisp/flim/hmac-def hides 
/usr/share/emacs/24.4/lisp/net/hmac-def
/usr/share/emacs24/site-lisp/flim/sasl-cram hides 
/usr/share/emacs/24.4/lisp/net/sasl-cram
/usr/share/emacs24/site-lisp/flim/ntlm hides 
/usr/share/emacs/24.4/lisp/net/ntlm
/usr/share/emacs24/site-lisp/flim/sasl hides 
/usr/share/emacs/24.4/lisp/net/sasl
/usr/share/emacs24/site-lisp/flim/sasl-digest hides 
/usr/share/emacs/24.4/lisp/net/sasl-digest
/usr/share/emacs24/site-lisp/flim/sasl-ntlm hides 
/usr/share/emacs/24.4/lisp/net/sasl-ntlm
/usr/share/emacs24/site-lisp/flim/hmac-md5 hides 
/usr/share/emacs/24.4/lisp/net/hmac-md5

Features:
(shadow sort mail-extr misearch multi-isearch eieio-opt speedbar
sb-image ezimage dframe ert ewoc debug tramp-cache recentf tree-widget
imenu emacsbug sendmail saveplace midnight face-remap ws-butler winner
sml-modeline savehist minibuf-eldef mb-depth ido-yes-or-no icomplete
undo-tree diff pointback assoc hl-line anzu mule-util desktop frameset
delsel auto-dim-other-buffers git-wip-mode vc vc-dispatcher
ido-complete-space-or-hyphen ido-speed-hack ido-ubiquitous
ido-completing-read+ tempbuf flymake parse-time gnutls network-stream
starttls url-http tls url-gw url-cache url-auth url url-proxy
url-privacy url-expand url-methods url-history url-cookie url-domsuf
url-util url-parse url-vars mailcap .loaddefs cus-edit cus-start
cus-load wid-edit system-specific-settings smex pretty-symbols
osx-pseudo-daemon occur-context-resize noflet cl-indent markdown-mode
warnings magit-blame magit-stash magit-bisect magit-remote magit-commit
magit-sequence magit magit-log magit-apply magit-wip magit-diff
smerge-mode diff-mode magit-core magit-process magit-popup magit-mode
magit-git crm magit-section magit-utils git-commit log-edit message
rfc822 mml mml-sec mailabbrev mail-utils gmm-utils mailheader pcvs-util
add-log with-editor tramp-sh tramp tramp-compat auth-source
password-cache tramp-loaddefs trampver server lexbind-mode
highlight-defined header2 git-gutter-fringe fringe-helper git-gutter
esup esup-child benchmark ido ess-toolbar ess-mouse mouseme thingatpt
ess-menu ess-swv ess-noweb ess-bugs-l essd-els ess-sas-d ess-sas-l
ess-sas-a shell ess-sta-d ess-sta-l cc-vars cc-defs make-regexp
ess-sp6-d ess-sp3-d ess-julia ess-r-d ess-r-completion ess-tracebug
ess-roxy hideshow ess-help ess-developer eldoc ess-s-l ess-site ess
ess-inf ess-mode ess-noweb-mode ess-utils ess-custom executable
ess-compat el-get el-get-autoloading el-get-list-packages
el-get-dependencies el-get-build el-get-status pp el-get-methods
el-get-fossil el-get-svn el-get-pacman el-get-github-zip
el-get-github-tar el-get-http-zip el-get-http-tar el-get-hg el-get-go
el-get-git-svn el-get-fink el-get-emacswiki el-get-http el-get-notify
help-mode el-get-emacsmirror el-get-github el-get-git el-get-elpa
el-get-darcs el-get-cvs el-get-bzr el-get-brew el-get-builtin
el-get-apt-get el-get-recipes el-get-byte-compile el-get-custom
el-get-core autoload keydef cperl-mode cl-lib-highlight bs browse-url
bar-cursor autopair paren auto-complete edmacro kmacro popup apache-mode
adjust-parens use-package diminish bind-key compile image-file tabify
vc-git org-element org-rmail org-mhe org-irc org-info org-gnus gnus-util
org-docview doc-view jka-compr image-mode dired org-bibtex bibtex
org-bbdb org-w3m org org-macro org-footnote org-pcomplete pcomplete
org-list org-faces org-entities noutline outline org-version
ob-emacs-lisp ob ob-tangle ob-ref ob-lob ob-table ob-exp org-src ob-keys
ob-comint comint ansi-color ring ob-core ob-eval org-compat org-macs
org-loaddefs format-spec find-func cal-menu calendar cal-loaddefs pallet
advice finder-inf eieio byte-opt bytecomp byte-compile cconv eieio-core
cl info easymenu cask cl-macs gv cask-bootstrap package-build mm-decode
mm-bodies mm-encode mail-parse rfc2231 rfc2047 rfc2045 ietf-drums
mm-util help-fns mail-prsvr json lisp-mnt shut-up epl git commander f
dash s ucs-normalize package epg-config cl-loaddefs cl-lib debian-el
debian-el-loaddefs emacs-goodies-el emacs-goodies-custom
emacs-goodies-loaddefs easy-mmode dpkg-dev-el dpkg-dev-el-loaddefs
time-date tooltip electric uniquify ediff-hook vc-hooks lisp-float-type
mwheel x-win x-dnd tool-bar dnd fontset image regexp-opt fringe
tabulated-list newcomment lisp-mode prog-mode register page menu-bar
rfn-eshadow timer select scroll-bar mouse jit-lock font-lock syntax
facemenu font-core frame cham georgian utf-8-lang misc-lang vietnamese
tibetan thai tai-viet lao korean japanese hebrew greek romanian slovak
czech european ethiopic indian cyrillic chinese case-table epa-hook
jka-cmpr-hook help simple abbrev minibuffer 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 make-network-process dbusbind gfilenotify dynamic-setting
font-render-setting x-toolkit x multi-tty emacs)

Memory information:
((conses 16 699053 98104)
(symbols 48 51690 0)
(miscs 40 1022 450)
(strings 32 184282 12134)
(string-bytes 1 4120459)
(vectors 16 78537)
(vector-slots 8 2155055 125451)
(floats 8 334 652)
(intervals 56 7498 244)
(buffers 960 48)
(heap 1024 61526 7139))