From mboxrd@z Thu Jan 1 00:00:00 1970 Path: news.gmane.org!not-for-mail From: Stefan Monnier Newsgroups: gmane.emacs.devel Subject: Re: Noisy byte compilation on master Date: Wed, 04 Feb 2015 10:45:27 -0500 Message-ID: References: <83egq9ipkn.fsf@gnu.org> <858uggchvx.fsf@stephe-leake.org> <87twz379z2.fsf@engster.org> NNTP-Posting-Host: plane.gmane.org Mime-Version: 1.0 Content-Type: multipart/mixed; boundary="=-=-=" X-Trace: ger.gmane.org 1423064898 6976 80.91.229.3 (4 Feb 2015 15:48:18 GMT) X-Complaints-To: usenet@ger.gmane.org NNTP-Posting-Date: Wed, 4 Feb 2015 15:48:18 +0000 (UTC) Cc: "Eric M. Ludlam" , Stephen Leake , emacs-devel@gnu.org To: David Engster Original-X-From: emacs-devel-bounces+ged-emacs-devel=m.gmane.org@gnu.org Wed Feb 04 16:48:12 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 1YJ2BX-0000dk-NZ for ged-emacs-devel@m.gmane.org; Wed, 04 Feb 2015 16:48:11 +0100 Original-Received: from localhost ([::1]:37028 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1YJ2BX-0000Dn-5z for ged-emacs-devel@m.gmane.org; Wed, 04 Feb 2015 10:48:11 -0500 Original-Received: from eggs.gnu.org ([2001:4830:134:3::10]:45288) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1YJ296-0004pk-BD for emacs-devel@gnu.org; Wed, 04 Feb 2015 10:45:50 -0500 Original-Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1YJ295-00052i-4Q for emacs-devel@gnu.org; Wed, 04 Feb 2015 10:45:40 -0500 Original-Received: from chene.dit.umontreal.ca ([132.204.246.20]:43265) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1YJ28w-00050v-GY; Wed, 04 Feb 2015 10:45:30 -0500 Original-Received: from pastel.home (lechon.iro.umontreal.ca [132.204.27.242]) by chene.dit.umontreal.ca (8.14.1/8.14.1) with ESMTP id t14FjRWe014191; Wed, 4 Feb 2015 10:45:28 -0500 Original-Received: by pastel.home (Postfix, from userid 20848) id C24911758; Wed, 4 Feb 2015 10:45:27 -0500 (EST) In-Reply-To: <87twz379z2.fsf@engster.org> (David Engster's message of "Tue, 03 Feb 2015 08:03:29 +0100") User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/25.0.50 (gnu/linux) X-NAI-Spam-Flag: NO X-NAI-Spam-Threshold: 5 X-NAI-Spam-Score: 0 X-NAI-Spam-Rules: 1 Rules triggered RV5207=0 X-NAI-Spam-Version: 2.3.0.9393 : core <5207> : inlines <2031> : streams <1384672> : uri <1846259> X-detected-operating-system: by eggs.gnu.org: Genre and OS details not recognized. X-Received-From: 132.204.246.20 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:182378 Archived-At: --=-=-= Content-Type: text/plain >>> Alternately, non-core CEDET can provide a compatibility file that >>> defines cl-defmethod etc in terms of defmethod for older emacsen. >> Hmm... that's an idea. >> I could provide a cl-generic.el on GNU ELPA to provide cl-defmethod via >> EIEIO, and then CEDET could make use of the new macros. >> WDYT? > Fine with me. We could also put it in CEDET upstream so people don't > have to install it. I have now added a cl-generic forward compatibility package to GNU ELPA. It should hopefully work for any Emacs with EIEIO. > Note that I currently have no way of syncing CEDET with Emacs. Is there something we can do about that? > So if you have a script or similar to change the calling convention, > please tell me and I run it over the upstream code. I used the sed script below along with: for f in $(grep -l '(defmethod' lisp/cedet/**/*.el); do echo $f (rm $f; ./_cl-generic-rewrite.sed >$f) <$f done -- Stefan --=-=-= Content-Type: text/plain Content-Disposition: attachment; filename=_cl-generic-rewrite.sed #!/bin/sed -f /^(require 'eieio)/a \ (require 'cl-generic) /^(defmethod.*[^ ] *:[sS][tT][aA][tT][iI][cC] *$/{ s/^(defmethod/(cl-defmethod/ s/ *:[sS][tT][aA][tT][iI][cC] *// n s/^\([ ]*(([^ ][^ ]* *\)\([^ ][^ ]*\)/\1(subclass \2)/ } s/^(\(defmethod.*[^ ] *\):[sS][tT][aA][tT][iI][cC] *\((([^ ][^ ]* *\)\([^ ][^ ]*\)/(cl-\1\2(subclass \3)/ s/^(\(defmethod.*[^ ] *\):BEFORE/(cl-\1:before/ s/^(\(defmethod.*[^ ] *\):AFTER/(cl-\1:after/ s/^(defmethod/(cl-defmethod/ s/^(defgeneric/(cl-defgeneric/ s/(call-next-method/(cl-call-next-method/ s/(next-method-p/(cl-next-method-p/ --=-=-=--