From mboxrd@z Thu Jan 1 00:00:00 1970 Path: news.gmane.org!not-for-mail From: Katsumi Yamaoka Newsgroups: gmane.emacs.devel Subject: Re: [Emacs-diffs] /srv/bzr/emacs/trunk r111086: gmm-utils.el (gmm-flet, gmm-labels): New macros. Date: Wed, 05 Dec 2012 14:46:04 +0900 Organization: Emacsen advocacy group Message-ID: References: NNTP-Posting-Host: plane.gmane.org Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii X-Trace: ger.gmane.org 1354686361 13366 80.91.229.3 (5 Dec 2012 05:46:01 GMT) X-Complaints-To: usenet@ger.gmane.org NNTP-Posting-Date: Wed, 5 Dec 2012 05:46:01 +0000 (UTC) Cc: emacs-devel@gnu.org To: monnier@iro.umontreal.ca Original-X-From: emacs-devel-bounces+ged-emacs-devel=m.gmane.org@gnu.org Wed Dec 05 06:46:14 2012 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 1Tg7oB-0004Et-1g for ged-emacs-devel@m.gmane.org; Wed, 05 Dec 2012 06:46:11 +0100 Original-Received: from localhost ([::1]:35619 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1Tg7nz-0005qN-5I for ged-emacs-devel@m.gmane.org; Wed, 05 Dec 2012 00:45:59 -0500 Original-Received: from eggs.gnu.org ([208.118.235.92]:53069) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1Tg7nv-0005qI-JW for emacs-devel@gnu.org; Wed, 05 Dec 2012 00:45:57 -0500 Original-Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1Tg7nu-0004Qp-8l for emacs-devel@gnu.org; Wed, 05 Dec 2012 00:45:55 -0500 Original-Received: from orlando.hostforweb.net ([216.246.45.90]:58066) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1Tg7nu-0004Qj-4j for emacs-devel@gnu.org; Wed, 05 Dec 2012 00:45:54 -0500 Original-Received: from localhost ([127.0.0.1]:53231) by orlando.hostforweb.net with smtp (Exim 4.77) (envelope-from ) id 1Tg7ns-0004Ic-0H; Tue, 04 Dec 2012 23:45:52 -0600 X-Face: #kKnN,xUnmKia.'[pp`; Omh}odZK)?7wQSl"4o04=EixTF+V[""w~iNbM9ZL+.b*_CxUmFk B#Fu[*?MZZH@IkN:!"\w%I_zt>[$nm7nQosZ<3eu; B:$Q_:p!',P.c0-_Cy[dz4oIpw0ESA^D*1Lw= L&i*6&( User-Agent: Gnus/5.130006 (=?iso-2022-jp?B?GyRCPz8bKEI=?= Gnus v0.6) Emacs/24.3.50 (i686-pc-cygwin) Cancel-Lock: sha1:0slh2YpUS1Zm3cV3MafRav5B+/o= X-AntiAbuse: This header was added to track abuse, please include it with any abuse report X-AntiAbuse: Primary Hostname - orlando.hostforweb.net X-AntiAbuse: Original Domain - gnu.org X-AntiAbuse: Originator/Caller UID/GID - [47 12] / [47 12] X-AntiAbuse: Sender Address Domain - jpl.org X-Source: X-Source-Args: X-Source-Dir: X-detected-operating-system: by eggs.gnu.org: GNU/Linux 2.2.x-3.x (barebone) [generic] X-Received-From: 216.246.45.90 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:155284 Archived-At: Stefan Monnier wrote: >> Defadvice? Uhm, that defadvice code exists in an official source >> code is very ugly, I feel. :< > The problem with defadvice is that it overrides functions. The letf > cases we're talking about also override functions, so they're just as > nasty as uses of defadvice. Defadvice overrides functions lastingly but letf does it transiently. Moreover defadvice makes it slow a bit even when it is unnecessary to modify the behavior. Maybe this is another reason I don't prefer using defadvice in an official source code. I don't want to make generic functions worse by modifying only for particular users. > Worse, they don't even announce themselves in the docstring and they > often remove themselves before you get a chance to see that some > overriding is going on. > So, yes, I much prefer defadvice. I agree to conceal what it does is nasty. The best thing I think is to modify it permanently, rather than advising it, so as to be able to switch the behavior for a certain purpose (unless the change makes it regress). However, Gnus should run on many versions of Emacsen, so there is a limit on modifying things in old Emacsen. Therefore I believe using flet or cl-letf is the second best. BTW, I have a plan to implement gmm-called-interactively-p.