From mboxrd@z Thu Jan 1 00:00:00 1970 Path: news.gmane.org!not-for-mail From: Eric Abrahamsen Newsgroups: gmane.emacs.devel Subject: Re: Shrinking EIEIO objects Date: Fri, 09 Jan 2015 13:44:59 +0800 Message-ID: <87r3v4ld7o.fsf@ericabrahamsen.net> References: <54A6053B.5060001@siege-engine.com> <87h9w9whp2.fsf@engster.org> NNTP-Posting-Host: plane.gmane.org Mime-Version: 1.0 Content-Type: text/plain X-Trace: ger.gmane.org 1420782028 24443 80.91.229.3 (9 Jan 2015 05:40:28 GMT) X-Complaints-To: usenet@ger.gmane.org NNTP-Posting-Date: Fri, 9 Jan 2015 05:40:28 +0000 (UTC) To: emacs-devel@gnu.org Original-X-From: emacs-devel-bounces+ged-emacs-devel=m.gmane.org@gnu.org Fri Jan 09 06:40:22 2015 Return-path: Envelope-to: ged-emacs-devel@m.gmane.org Original-Received: from lists.gnu.org ([208.118.235.17]) by plane.gmane.org with esmtp (Exim 4.69) (envelope-from ) id 1Y9SIX-0004uo-PO for ged-emacs-devel@m.gmane.org; Fri, 09 Jan 2015 06:39:49 +0100 Original-Received: from localhost ([::1]:49147 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1Y9SIX-0000ri-4D for ged-emacs-devel@m.gmane.org; Fri, 09 Jan 2015 00:39:49 -0500 Original-Received: from eggs.gnu.org ([2001:4830:134:3::10]:43780) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1Y9SIJ-0000rd-Go for emacs-devel@gnu.org; Fri, 09 Jan 2015 00:39:36 -0500 Original-Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1Y9SIE-0004Dm-HC for emacs-devel@gnu.org; Fri, 09 Jan 2015 00:39:35 -0500 Original-Received: from plane.gmane.org ([80.91.229.3]:54356) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1Y9SIE-0004Cv-AH for emacs-devel@gnu.org; Fri, 09 Jan 2015 00:39:30 -0500 Original-Received: from list by plane.gmane.org with local (Exim 4.69) (envelope-from ) id 1Y9SHy-0001tS-KF for emacs-devel@gnu.org; Fri, 09 Jan 2015 06:39:14 +0100 Original-Received: from 111.197.154.230 ([111.197.154.230]) by main.gmane.org with esmtp (Gmexim 0.1 (Debian)) id 1AlnuQ-0007hv-00 for ; Fri, 09 Jan 2015 06:39:14 +0100 Original-Received: from eric by 111.197.154.230 with local (Gmexim 0.1 (Debian)) id 1AlnuQ-0007hv-00 for ; Fri, 09 Jan 2015 06:39:14 +0100 X-Injected-Via-Gmane: http://gmane.org/ Original-Lines: 37 Original-X-Complaints-To: usenet@ger.gmane.org X-Gmane-NNTP-Posting-Host: 111.197.154.230 User-Agent: Gnus/5.130012 (Ma Gnus v0.12) Emacs/24.4 (gnu/linux) Cancel-Lock: sha1:uts1wjaRk1xQ4skengo4gGZmrwg= X-detected-operating-system: by eggs.gnu.org: Genre and OS details not recognized. X-Received-From: 80.91.229.3 X-BeenThere: emacs-devel@gnu.org X-Mailman-Version: 2.1.14 Precedence: list List-Id: "Emacs development discussions." List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: emacs-devel-bounces+ged-emacs-devel=m.gmane.org@gnu.org Original-Sender: emacs-devel-bounces+ged-emacs-devel=m.gmane.org@gnu.org Xref: news.gmane.org gmane.emacs.devel:181090 Archived-At: David Engster writes: > Eric Ludlam writes: >> On 12/30/2014 12:59 PM, Stefan Monnier wrote: >>> Hi Eric, >>> >>> I'd like to install something like the patch below into Emacs's master. >>> What it does (along with various other side changes) is shorten the >>> object header from 3 fields (the constant `object', the class name, and >>> an object "name" field) to just one (an interned symbol with an "eieio-" >>> prefix, referring to the class object). >> >> This seems like a fine idea. A side effect is that the 'name' slot is >> gone. There have received a questions about why there is a 'name' for >> objects, and really the main thing was debugging. When you have piles >> of objects around, naming them makes it much easier to see what is >> going on. EIEIO objects have a short hand using a # >> format, and when the various prin1 tools are enabled for edebug, that >> short hand is used in place of the vector. This is critical when >> debugging semantic databases where the vectors contain thousands of >> symbols. >> >> Your proposed solution will enable the current source forge hosted >> version of CEDET to keep going, just with warning messages, which >> seems fine. >> >> I can convert the sourceforge version CEDET to use make-instance >> instead, which should be compatible before and after your change. > > I'm a bit confused. Why would we need to change how we construct our > objects? Most of these changes seem to be purely internal. The only API > change I see (aside from the added eieio-- prefixes) is that NAME is now > optional (but not obsolete), which is certainly a good thing. Hey wasn't this change supposed to be backwards-compatible? I just updated emacs git, and every single package that uses eieio is now giving me "too many arguments to `defclass'". Is this the same issue?