What did you expect to happen?
No deprecation messages.
What actually happened?
The message: Package cl is deprecated is shown in the minibuffer on startup, and can also be seen in the Messages buffer.
Additional details:
Doom loaded 142 packages across 29 modules in 0.445s Package cl is deprecated
Steps to reproduce:
emacsSystem information:
emacs 27 release branch, built from AUR's emacs-27-git
((emacs
(version . "27.0.91")
(features . "XPM JPEG TIFF GIF PNG RSVG CAIRO SOUND GPM DBUS GLIB NOTIFY INOTIFY ACL GNUTLS LIBXML2 FREETYPE HARFBUZZ LIBOTF ZLIB TOOLKIT_SCROLL_BARS GTK3 X11 XDBE XIM MODULES THREADS LIBSYSTEMD JSON PDUMPER LCMS2 GMP")
(build . "Jun 10, 2020")
(buildopts "--prefix=/usr --sysconfdir=/etc --libexecdir=/usr/lib --localstatedir=/var --mandir=/usr/share/man --with-gameuser=:games --with-sound=alsa --with-modules --without-gconf --without-gsettings --with-x-toolkit=gtk3 --without-xaw3d --without-m17n-flt --with-cairo --without-compress-install 'CFLAGS=-march=x86-64 -mtune=generic -O2 -pipe -fno-plt -g -flto -s -fuse-ld=gold' CPPFLAGS=-D_FORTIFY_SOURCE=2 LDFLAGS=-Wl,-O1,--sort-common,--as-needed,-z,relro,-z,now")
(windowsys . batch)
(daemonp))
(doom
(version . "2.0.9")
(build . "HEAD -> develop e7b7f670f 2020-06-12 17:03:19 -0400")
(dir . "~/.doom.d/"))
(system
(type . gnu/linux)
(config . "x86_64-pc-linux-gnu")
(shell . "/usr/bin/fish")
(uname . "Linux 5.7.2-arch1-1 #1 SMP PREEMPT Wed, 10 Jun 2020 20:36:24 +0000 x86_64")
(path "~/.pyenv/bin" "~/.local/bin" "~/go/bin" "/usr/local/bin" "/usr/bin" "/bin" "/usr/local/sbin" "/usr/lib/jvm/default/bin" "/usr/bin/site_perl" "/usr/bin/vendor_perl" "/usr/bin/core_perl" "~/go/bin" "~/.emacs.d/bin" "/usr/lib/emacs/27.0.91/x86_64-pc-linux-gnu"))
(config
(envfile)
(elc-files . 0)
(modules :completion company ivy :ui doom doom-dashboard doom-quit hl-todo modeline ophints (popup +defaults) vc-gutter vi-tilde-fringe workspaces :editor (evil +everywhere) file-templates fold snippets :emacs dired electric undo vc :checkers syntax :tools (eval +overlay) lookup magit :lang emacs-lisp markdown org sh :config (default +bindings +smartparens))
(packages "n/a")
(unpin "n/a")
(elpa "n/a")))
Emacs 27 and onward deprecates the built-in cl library (to be replaced with cl-lib). Emacs emits this warning whenever something, somewhere loads it at runtime. Doom does not use cl, but a number of 3rd party packages do, which is outside my control. Emacs offers no method to suppress the error and neither can Doom (trivially). Our only options are to ignore it and wait for packages upstream to catch up, or PR updates to those packages directly.
Off the top of my head, there's persp-mode (which I have a PR open to fix) and some org contrib packages (org-choose and org-invoice). You can get a list of loaded packages that depend on cl by calling the following:
(require 'loadhist)
(file-dependents (feature-file 'cl))
Or run rg "(require 'cl)" in ~/.emacs.d/.local/straight/repos.
Since there's nothing I can do about this, I'll tag this nofix and close it.
Thanks for the explanation and pointers, @hlissner!
Most helpful comment
Emacs 27 and onward deprecates the built-in
cllibrary (to be replaced withcl-lib). Emacs emits this warning whenever something, somewhere loads it at runtime. Doom does not usecl, but a number of 3rd party packages do, which is outside my control. Emacs offers no method to suppress the error and neither can Doom (trivially). Our only options are to ignore it and wait for packages upstream to catch up, or PR updates to those packages directly.Off the top of my head, there's persp-mode (which I have a PR open to fix) and some org contrib packages (org-choose and org-invoice). You can get a list of loaded packages that depend on
clby calling the following:Or run
rg "(require 'cl)"in~/.emacs.d/.local/straight/repos.Since there's nothing I can do about this, I'll tag this
nofixand close it.