Subject: 24.3.50; Incorrect output from `list-load-path-shadows'

From: Nathan Trapuzzano <[email-masked]>
Date: Sun, 23 Feb 2014 19:50:18 -0500

I'm seeing incorrect behavior from `list-load-path-shadows'.  I just
installed Slime from the github master branch.  Since it relies on
cl-lib, it comes with its own copy so it will work on older versions of
Emacs.  Now, when I do `list-load-path-shadows', here's what it shows:

  /home/nathan/opt/elisp/js2-mode-20131118.1516/.dir-locals hides /opt/emacs-trunk/share/emacs/24.3.50/lisp/gnus/.dir-locals
  /opt/emacs-trunk/share/emacs/24.3.50/lisp/emacs-lisp/cl-lib hides /home/nathan/opt/elisp/slime/lib/cl-lib
  /opt/emacs-trunk/share/emacs/24.3.50/lisp/emacs-lisp/ert hides /home/nathan/opt/elisp/slime/lib/ert
  /opt/emacs-trunk/share/emacs/24.3.50/lisp/emacs-lisp/ert-x hides /home/nathan/opt/elisp/slime/lib/ert-x
  
  4 Emacs Lisp load-path shadowings were found

It says that the version of cl-lib that comes with Emacs shadows Slime's
copy.  In fact, it's the other way around.  I know this is the case
because:

  1. Slime's directory comes first in `load-path'.
  2. I get warning messages on startup about Emacs' cl-lib being
     shadowed ("Real cl-lib shadowed by compatibility cl-lib?
     (/home/nathan/opt/elisp/slime/lib/cl-lib.elc)").
  3. After removing Slime's copy, Slime no longer exceeds
     max-list-eval-depth and max-specpdl-size.

Moreover, when I remove Slime's copy of cl-lib and restart Emacs, here's
what `list-load-path-shadows' prints:

  /home/nathan/opt/elisp/js2-mode-20131118.1516/.dir-locals hides /opt/emacs-trunk/share/emacs/24.3.50/lisp/gnus/.dir-locals
  /home/nathan/opt/elisp/slime/lib/ert-x hides /opt/emacs-trunk/share/emacs/24.3.50/lisp/emacs-lisp/ert-x
  /home/nathan/opt/elisp/slime/lib/ert hides /opt/emacs-trunk/share/emacs/24.3.50/lisp/emacs-lisp/ert
  
  3 Emacs Lisp load-path shadowings were found

For some reason, it now gets the "what shadows what" correct.