|
From: | Eric M. Ludlam |
Subject: | bug#10781: EIEIO namespace use |
Date: | Sat, 28 Apr 2012 08:29:48 -0400 |
User-agent: | Mozilla/5.0 (X11; U; Linux x86_64; en-US; rv:1.9.3a1pre) Gecko/20091222 Shredder/3.1a1pre |
On 04/28/2012 06:28 AM, David Engster wrote:
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?
Many symbols in eieio are the names given by CLOS, like initialize-instance, make-instance, with-slots, and call-next-method. Other names like oref/oset were meant to fill gaps where Emacs couldn't do it the clos way. If Emacs is to have a good way to do some basic OO programming, it seems to me that the names would match up with other core functions that crowd the core namespace, and it would seem poor to fill your oo code with a bunch of unnecessarily long names.
That said, there are certainly plenty that could be removed, and I would not be sad to see them go... like 'this' and a few of the class-* and object-* functions. Some already have eieio-* equivalents, but I didn't finish that.
Eric
[Prev in Thread] | Current Thread | [Next in Thread] |