help-gnu-emacs
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: Package cl is deprecated


From: Thibaut Verron
Subject: Re: Package cl is deprecated
Date: Wed, 28 Jul 2021 15:23:10 +0200
User-agent: Mozilla/5.0 (X11; Linux x86_64; rv:78.0) Gecko/20100101 Thunderbird/78.11.0


On 28/07/2021 15:03, Hongyi Zhao wrote:
On Wed, Jul 28, 2021 at 6:04 PM Jean-Christophe Helary
<lists@traduction-libre.org> wrote:


On Jul 28, 2021, at 18:54, Thibaut Verron <thibaut.verron@gmail.com> wrote:

On 28/07/2021 11:46, Hongyi Zhao wrote:
On Wed, Jul 28, 2021 at 5:33 PM Thibaut Verron <thibaut.verron@gmail.com> wrote:
On 28/07/2021 11:23, Hongyi Zhao wrote:
When I start Emacs, I always notice the following message in *Messages* buffer:

Package cl is deprecated

Any hints for eliminating it?
If you have (require 'cl) somewhere in your init file, replace it with
(require 'cl-lib). You might need to change some macro calls to use
cl-<name> instead of <name>.
$ egrep 'require[ ]*'\''cl' .emacs.d/init.el
(require 'cl-lib)
Then it's from a package and you need to identify it.

You can try (untested):

find .emacs.d/ -name "*.el" -exec grep "(require 'cl)" {} \;
find .emacs.d/ -name "*.el" -exec grep "(require 'cl)" {} \; -print
There are so many matches:

$ find .emacs.d/ -name "*.el" -exec grep -q "(require 'cl)" {} \;
-print 2>/dev/null | sort -u | wc -l
40

So this method is basically useless for finding the problem.

I just tried it, indeed quite a few packages contain some form of (require 'cl) as a backward-compatibility tool (52 matches in my case). Most of those are test files which are never loaded in a normal emacs session.

To narrow the search, you can use egrep -q "^\(require 'cl\)" instead. In my .emacs, the matches go from 52 to 15. Interestingly enough, exactly one of them is loaded at init time (key-combo.el), without any warning.

[Btw I don't think that sort -u is useful in your command line, find should not return the same file twice. You might also want to add -type f to the find call, to avoid errors with packages with .el in the name (such as ansi.el or prescient.el).]

Good luck,

Thibaut





reply via email to

[Prev in Thread] Current Thread [Next in Thread]