From mboxrd@z Thu Jan 1 00:00:00 1970 Path: news.gmane.org!not-for-mail From: David Kastrup Newsgroups: gmane.emacs.devel Subject: Re: [elpa] master 68bcf86 2/4: package/names: :group can be given a list Date: Mon, 12 Jan 2015 22:41:25 +0100 Message-ID: <87iogbismy.fsf@fencepost.gnu.org> References: <20150112112953.11913.47601@vcs.savannah.gnu.org> <871tn0yo6j.fsf@uwakimon.sk.tsukuba.ac.jp> <87a91om0dv.fsf@yahoo.fr> <87zj9nykjk.fsf@uwakimon.sk.tsukuba.ac.jp> <87ppajj29a.fsf@fencepost.gnu.org> NNTP-Posting-Host: plane.gmane.org Mime-Version: 1.0 Content-Type: text/plain X-Trace: ger.gmane.org 1421098928 1185 80.91.229.3 (12 Jan 2015 21:42:08 GMT) X-Complaints-To: usenet@ger.gmane.org NNTP-Posting-Date: Mon, 12 Jan 2015 21:42:08 +0000 (UTC) Cc: Nicolas Richard , "Stephen J. Turnbull" , Stefan Monnier , emacs-devel@gnu.org To: Artur Malabarba Original-X-From: emacs-devel-bounces+ged-emacs-devel=m.gmane.org@gnu.org Mon Jan 12 22:42:03 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 1YAmkM-0001wI-AH for ged-emacs-devel@m.gmane.org; Mon, 12 Jan 2015 22:42:02 +0100 Original-Received: from localhost ([::1]:36396 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1YAmkL-0006cX-Gt for ged-emacs-devel@m.gmane.org; Mon, 12 Jan 2015 16:42:01 -0500 Original-Received: from eggs.gnu.org ([2001:4830:134:3::10]:44731) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1YAmk8-0006cG-1b for emacs-devel@gnu.org; Mon, 12 Jan 2015 16:41:48 -0500 Original-Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1YAmk7-0004t0-5I for emacs-devel@gnu.org; Mon, 12 Jan 2015 16:41:48 -0500 Original-Received: from fencepost.gnu.org ([2001:4830:134:3::e]:50267) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1YAmk7-0004sv-1y for emacs-devel@gnu.org; Mon, 12 Jan 2015 16:41:47 -0500 Original-Received: from localhost ([127.0.0.1]:57442 helo=lola) by fencepost.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1YAmk6-00077b-2e; Mon, 12 Jan 2015 16:41:46 -0500 Original-Received: by lola (Postfix, from userid 1000) id 60690E0692; Mon, 12 Jan 2015 22:41:25 +0100 (CET) In-Reply-To: (Artur Malabarba's message of "Mon, 12 Jan 2015 18:30:42 -0200") User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/25.0.50 (gnu/linux) X-detected-operating-system: by eggs.gnu.org: Error: Malformed IPv6 address (bad octet value). X-Received-From: 2001:4830:134:3::e 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:181196 Archived-At: Artur Malabarba writes: > I'll use the backquoted version. But I'm at a place of spotty internet > at the moment, so it may take me a few days. Many versions of quoted lambda functions may these days be _so_ much better written using lexical binding instead that I think XEmacs should really try catching up here. Otherwise the amount of code that cannot be easily brought to run on XEmacs will likely become much larger. I'm currently writing some package, and there are things like (defun lily-pitch-insert-for (note) "Calculate a pitch insertion routine for Midi note NOTE. This takes a look at `lily-midi-keysig' and determines the proper enharmonic variant to insert." (lambda () (interactive) (lily-note-insert (apply #'lily-notename (lily-midi-to-note note))))) or (defun midikbd-filter-create () "Create one Midi process filter keeping state across calls." (let ((state (make-vector 9 nil))) (lambda (_process string) (setq unread-command-events (append unread-command-events (mapcar (lambda (x) (aref midikbd-keys x)) (ccl-execute-on-string 'midikbd-decoder state string t t))))))) and other stuff. That's quite nicer and more efficient than the awkward (defun midikbd-filter-create () "Create one Midi process filter keeping state across calls." (let ((state (make-vector 9 nil))) `(lambda (_process string) (setq unread-command-events (append unread-command-events (mapcar (lambda (x) (aref midikbd-keys x)) (ccl-execute-on-string 'midikbd-decoder ,state string t t))))))) or similar. -- David Kastrup