Subject: Re: bug#10781: EIEIO namespace use

From: David Engster <[email-masked]>
Date: Sat, 28 Apr 2012 17:55:07 +0200

Stefan Monnier writes:
>>> EIEIO needs to be cleaned up so it doesn't intrude all over
>>> the namespace.
>>> The worst offenders include:
>
>>> - `this'.
>>> - `slot-*'.
>>> - `constructor', `destructor'.
>>> - `delete-instance'.
>>> - `initialize-instance'.
>>> - `clone'.
>>> - `data-debug*'.
>>> - `make-instance'.
>>> - `oref'.
>>> - `oset'.
>>> - `with-slots'.
>>> - `object-*'.
>>> - `class-*'.
>>> - `next-method-p'.
>>> - `call-next-method'.
>>> - error symbols (like no-next-method).
>>> - ... probably `defmethod', `defclass', and `defgeneric'.
>
>> I think this should be a goal for the next merge, but I'm at a loss
>> regarding how this should be tackled without, you know, breaking
>> practically every bit of code in CEDET and probably others.  Do you
>> have a suggestion? Maybe even creating EIEIOv2 and slowly porting
>> CEDET to that?
>
> We'll hopefully be moving the CL library to a new `cl-lib' which uses
> the "cl-" prefix consistently.  Maybe EIEIO can use the same prefix for
> those cases where "eieio-" would be inconvenient?
> This said, the most pressing issue is `this'.

Yes, I think 'this' should indeed become 'eieio-this'. It will also be
the most work, since at least in CEDET you *very* often have

(defmethod foo ((this someclass) ...)
 ...)

so a 'this' in such a method is perfectly fine.

-David