emacs-devel
[Top][All Lists]
Advanced

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

Re: [cedet-eieio] Cleaning up the EIEIO namespace


From: Eric M. Ludlam
Subject: Re: [cedet-eieio] Cleaning up the EIEIO namespace
Date: Wed, 20 Feb 2013 18:41:35 -0500
User-agent: Mozilla/5.0 (X11; U; Linux x86_64; en-US; rv:1.9.3a1pre) Gecko/20091222 Shredder/3.1a1pre

On 02/19/2013 02:49 PM, David Engster wrote:
Stefan Monnier writes:
For the CL package we solved this problem by leaving the "cl.el" package
as a "compatibility package" only required by the packages that haven't
been updated to use the new names.  CL was so widely used that it will
take a *long* time to get rid of all uses of the old names, whereas
EIEIO's use is not as pervasive, so we don't necessarily have to do the
same for it.
This said, maybe it would make sense to move "eieio.el" to "cl-eieio.el"
(with clean names, autoloaded from cl-lib) and then make eieio.el
into a simple compatibility package full of aliases.

What to do with the other files like eieio-base then? We cannot rename
it to cl-eieio-base.el because of name clashes, but it also provides
part of the public, CLOS-like functions.

There is nothing in eieio-base from CLOS. Those are all just handy base-classes / concepts that I used elsewhere in CEDET.

To summarize the options so far:

1) Prefix everything with eieio- and be done with it. Create obsolete
    aliases for the old names and get rid of them "soon" (Emacs
    25?). Alternatively, create an eieio-compat package with aliases for
    the old names.

2) Prefix everything with eieio- and create cl- aliases for the
    CLOS-like functionality. Those aliases may be defined in

    2a) the eieio* files itself, or
    2b) in a separate cl-whatever.el file.

    As in 1), define obsolete aliases for the old names or use a compat
    package.

3) Rename eieio to cl-eieio with clean names (i.e., eieio- and
    cl-prefixes), autoloaded from cl-lib, and make eieio.el a simple
    compatibility package full of aliases.

I'm currently pretty much tied on "2b)+compat package" and 3).

I am fine with most of these ideas, but agree with David that option 3 is pretty good.

Eric



reply via email to

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