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: "simplifications" Date: Mon, 19 Nov 2007 11:46:47 +0100 Message-ID: <86ejem1pig.fsf@lola.quinscape.zz> NNTP-Posting-Host: lo.gmane.org Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii X-Trace: ger.gmane.org 1195469226 17106 80.91.229.12 (19 Nov 2007 10:47:06 GMT) X-Complaints-To: usenet@ger.gmane.org NNTP-Posting-Date: Mon, 19 Nov 2007 10:47:06 +0000 (UTC) Cc: lekktu@gmail.com To: emacs-devel@gnu.org Original-X-From: emacs-devel-bounces+ged-emacs-devel=m.gmane.org@gnu.org Mon Nov 19 11:47:13 2007 Return-path: Envelope-to: ged-emacs-devel@m.gmane.org Original-Received: from lists.gnu.org ([199.232.76.165]) by lo.gmane.org with esmtp (Exim 4.50) id 1Iu49n-0001RM-Q6 for ged-emacs-devel@m.gmane.org; Mon, 19 Nov 2007 11:47:12 +0100 Original-Received: from localhost ([127.0.0.1] helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.43) id 1Iu49a-0005p9-BC for ged-emacs-devel@m.gmane.org; Mon, 19 Nov 2007 05:46:58 -0500 Original-Received: from mailman by lists.gnu.org with tmda-scanned (Exim 4.43) id 1Iu49W-0005mg-BX for emacs-devel@gnu.org; Mon, 19 Nov 2007 05:46:54 -0500 Original-Received: from exim by lists.gnu.org with spam-scanned (Exim 4.43) id 1Iu49T-0005mF-U8 for emacs-devel@gnu.org; Mon, 19 Nov 2007 05:46:54 -0500 Original-Received: from [199.232.76.173] (helo=monty-python.gnu.org) by lists.gnu.org with esmtp (Exim 4.43) id 1Iu49T-0005mC-Ok for emacs-devel@gnu.org; Mon, 19 Nov 2007 05:46:51 -0500 Original-Received: from pc3.berlin.powerweb.de ([62.67.228.11]) by monty-python.gnu.org with esmtp (Exim 4.60) (envelope-from ) id 1Iu49T-0003GY-4B for emacs-devel@gnu.org; Mon, 19 Nov 2007 05:46:51 -0500 Original-Received: from quinscape.de (mail.quinscape.de [212.29.44.217]) by pc3.berlin.powerweb.de (8.9.3p3/8.9.3) with ESMTP id LAA07720 for ; Mon, 19 Nov 2007 11:46:47 +0100 X-Delivered-To: Original-Received: (qmail-ldap/ctrl 32613 invoked from network); 19 Nov 2007 10:46:48 -0000 Original-Received: from unknown (HELO lola.quinscape.zz) ([10.0.3.43]) (envelope-sender ) by ns.quinscape.de (qmail-ldap-1.03) with SMTP for ; 19 Nov 2007 10:46:48 -0000 Original-Received: by lola.quinscape.zz (Postfix, from userid 1001) id 4E9FF8F231; Mon, 19 Nov 2007 11:46:47 +0100 (CET) User-Agent: Gnus/5.11 (Gnus v5.11) Emacs/23.0.50 (gnu/linux) X-AntiVirus: checked by AntiVir MailGate (version: 2.1.3-2; AVE: 7.6.0.34; VDF: 7.0.0.230; host: quinx) X-detected-kernel: by monty-python.gnu.org: Linux 2.4-2.6 X-BeenThere: emacs-devel@gnu.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: "Emacs development discussions." List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Original-Sender: emacs-devel-bounces+ged-emacs-devel=m.gmane.org@gnu.org Errors-To: emacs-devel-bounces+ged-emacs-devel=m.gmane.org@gnu.org Xref: news.gmane.org gmane.emacs.devel:83630 Archived-At: Hi, I've seen the following: Author: Juanma Barranquero 2007-11-17 03:50:37 Committer: Juanma Barranquero 2007-11-17 03:50:37 Parent: 1797ed583c1d6224dbe93db681b112a9b0278358 ((backquote): Improve argument/docstring consistency.) Child: 034e6631c9aab6db046645510214df80e67c29d4 (*** empty log message ***) Branches: master, remotes/origin/master, remotes/origin/origin Follows: merge-multi-tty-to-trunk Precedes: (ring-size, ring-p, ring-insert, ring-length, ring-empty-p): Use c[ad]dr. (ring-plus1): Use `1+'. (ring-minus1): Use `zerop'. (ring-remove): Use c[ad]dr. Use `when'. (ring-copy): Use c[ad]dr. Use `let', not `let*'. (ring-ref): Use `let', not `let*'. (ring-insert-at-beginning): Use c[ad]dr. Doc fix. (ring-insert+extend): Use c[ad]dr. Fix typo in docstring. (ring-member): Simplify. Doc fix. (ring-convert-sequence-to-ring): Simplify. Could people, before introducing such "optimizations", check the bytecode? (defun xxx (x) (cadr x)) generates byte code for xxx: args: (x) 0 varref x 1 dup 2 varbind x 3 cdr 4 car 5 unbind 1 6 return while (defun xxx (x) (car (cdr x))) generates byte code for xxx: args: (x) 0 varref x 1 cdr 2 car 3 return The former is _quite_ less efficient, so it is not a hot idea to use it for data access primitives like the ring functions. Personally, I think that we should make the byte compiler optimize the unnecessary binding away. But until that is the case, please don't gratuitously replace (car (cdr ...)) with (cadr ...). -- David Kastrup