Subject: Re: bug#22291: 25.1.50; REGRESSION: Emacs 24.3 breaks loading cl-macs to get macro `case'

From: Eli Zaretskii <[email-masked]>
Date: Sat, 02 Jan 2016 10:37:21 +0200

> Date: Fri, 1 Jan 2016 19:23:03 -0800 (PST)
> From: Drew Adams <[email-masked]>
> 
> This regression was introduced in Emacs 24.3.  Prior to that, code could
> use (require 'cl-macs) to have macros such as `case' provided at
> runtime.
> 
> (eval-when-compile (require 'cl)) still works, of course.  But neither
> (eval-when-compile (require 'cl-macs)) nor (require 'cl-macs) defines
> macro `case', starting with Emacs 24.3.
> 
> This gratuitously breaks any existing code that loads cl-macs expecting
> to get the definition of `case'.  This breakage should not be necessary.

>From NEWS.24, under "Changes in Specialized Modes and Packages in
Emacs 24.3":

  *** CL's main entry is now (require 'cl-lib).
  `cl-lib' is like the old `cl' except that it uses the namespace cleanly;
  i.e., all its definitions have the "cl-" prefix (and internal definitions
  use the "cl--" prefix).

  If `cl' provided a feature under the name `foo', then `cl-lib'
  provides it under the name `cl-foo' instead; with the exceptions of the
  few `cl' definitions that had to use `foo*' to avoid conflicts with
  pre-existing Elisp entities.  These have been renamed to `cl-foo'
  rather than `cl-foo*'.

IOW, this was a deliberate change, and you should either use 'cl-case'
with Emacs versions since 24.3, or use 'cl' instead of 'cl-macs'.

OK?