emacs-devel
[Top][All Lists]
Advanced

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

Re: policy, recommendations regarding `cl-*'


From: Stefan Monnier
Subject: Re: policy, recommendations regarding `cl-*'
Date: Tue, 25 Sep 2012 23:29:39 -0400
User-agent: Gnus/5.13 (Gnus v5.13) Emacs/24.2.50 (gnu/linux)

> And deprecation calls out for doc about how to move from the old to
> the new, as I mentioned.

We'll do that when we move cl.el to lisp/obsolete/, which I expect is
still several years away.

> Why on earth are you deprecating existing macros in favor of the same
> macros with a `cl-' prefix?  I haven't seen an answer to that yet.

Various reasons, tho I don't think it matters much:
- why have the old names when you have the new names?
  [I know you'll say backward compatibility, but the question is meant in
  the long term.  cl.el is still kept for compatibility for now]
- several old names are actually problematic:
  - it starts with mild problems such as mapcar*, function* and friends
    where the * was needed just to avoid conflicts, where in the new
    names you can use the natural "cl-mapcar" rather than "cl-mapcar*".
  - then gets to the actual conflicts like dolist/dotimes (luckily
    push/pop has been fixed by extending Elisp's builtin push/pop to
    cover CL's semantics) which even recently brought real problems
    where eager macroexpansion failed for some files because
    substituting subr.el's dolist with CL's dolist creates a circular
    dependency between CL macroexp and gv (IIRC).

> And I'm hoping you will change your mind about it.

Not a chance.

> But my immediate concern is maintaining code for multiple Emacs versions that
> uses cl.el macros.

You're fighting a non-problem.


        Stefan



reply via email to

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