From mboxrd@z Thu Jan 1 00:00:00 1970 Path: news.gmane.org!not-for-mail From: Dmitry Gutov Newsgroups: gmane.emacs.devel Subject: Re: /srv/bzr/emacs/trunk r112347: * doc/lispintro/emacs-lisp-intro.texi (defcustom, defun, simplified-beginning-of-buffer, defvar, Building Robots, Review, save-excursion): `defun' and `defcustom' are now macros rather than special forms. (Bug#13853) Date: Sun, 21 Apr 2013 18:00:30 +0400 Message-ID: <87obd8rnk1.fsf@yandex.ru> References: NNTP-Posting-Host: plane.gmane.org Mime-Version: 1.0 Content-Type: text/plain X-Trace: ger.gmane.org 1366552850 32511 80.91.229.3 (21 Apr 2013 14:00:50 GMT) X-Complaints-To: usenet@ger.gmane.org NNTP-Posting-Date: Sun, 21 Apr 2013 14:00:50 +0000 (UTC) Cc: emacs-devel@gnu.org To: xfq Original-X-From: emacs-devel-bounces+ged-emacs-devel=m.gmane.org@gnu.org Sun Apr 21 16:00:54 2013 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 1UTup3-0003Eb-NR for ged-emacs-devel@m.gmane.org; Sun, 21 Apr 2013 16:00:53 +0200 Original-Received: from localhost ([::1]:45010 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1UTup3-0006cL-Bw for ged-emacs-devel@m.gmane.org; Sun, 21 Apr 2013 10:00:53 -0400 Original-Received: from eggs.gnu.org ([208.118.235.92]:40259) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1UTuox-0006aD-4n for emacs-devel@gnu.org; Sun, 21 Apr 2013 10:00:50 -0400 Original-Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1UTuos-0003RW-AZ for emacs-devel@gnu.org; Sun, 21 Apr 2013 10:00:47 -0400 Original-Received: from mail-la0-x236.google.com ([2a00:1450:4010:c03::236]:53211) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1UTuos-0003R4-37 for emacs-devel@gnu.org; Sun, 21 Apr 2013 10:00:42 -0400 Original-Received: by mail-la0-f54.google.com with SMTP id es20so877753lab.41 for ; Sun, 21 Apr 2013 07:00:41 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113; h=x-received:sender:from:to:cc:subject:references:date:in-reply-to :message-id:user-agent:mime-version:content-type:x-antivirus :x-antivirus-status; bh=Z6FsvgFTVkM04JtvodK7JdvshM1YGlER2OoAQlks6G4=; b=I/cRxvzwjTEihs+8djj6um3RGNMu23T6a7ZNHUQwzwuKA1A1sC9MJmoVfKTG7Ywuoa lvlUCbHeCMUkikKScHZSNxBVti28wTAtWkZualYkHFmnbQWojD4C1GbBIr9RN1T7Pun0 pLo3op3b4kG/20iZymfGwHKoXs5WouoTVDZe/vJznve7q5bOLX6ld3LbdEnb9lMUp1tU Jz7H3nVVGheOJoGA9uB7x2tVmwSk1Ux3iFPtCYqp42U2m/O0gtXnPRJBLYQIprkzz3r3 oONmkkWcvI1EGy8Rzm13a89rRg8tnKh9NsGUsfrDF0ATggC+nP42QflzXEa8uTr9mxh0 +g0Q== X-Received: by 10.152.30.106 with SMTP id r10mr11625386lah.28.1366552840944; Sun, 21 Apr 2013 07:00:40 -0700 (PDT) Original-Received: from SOL ([178.252.98.87]) by mx.google.com with ESMTPS id w6sm9305699law.8.2013.04.21.07.00.39 (version=TLSv1 cipher=ECDHE-RSA-RC4-SHA bits=128/128); Sun, 21 Apr 2013 07:00:40 -0700 (PDT) In-Reply-To: (xfq's message of "Sun, 21 Apr 2013 21:00:06 +0800") User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/24.3.50 (windows-nt) X-Antivirus: avast! (VPS 130421-0, 21.04.2013), Outbound message X-Antivirus-Status: Clean X-detected-operating-system: by eggs.gnu.org: Error: Malformed IPv6 address (bad octet value). X-Received-From: 2a00:1450:4010:c03::236 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:159077 Archived-At: xfq writes: > On Sun, Apr 21, 2013 at 8:39 PM, Leo Liu wrote: >> On 2013-04-21 20:01 +0800, Xue Fuqiao wrote: >>> * doc/lispintro/emacs-lisp-intro.texi (defcustom, defun, >>> simplified-beginning-of-buffer, defvar, Building Robots, Review, >>> save-excursion): `defun' and `defcustom' are now macros rather than >>> special forms. (Bug#13853) >> >> "special form" is a better term than "macro". It signals the reader that >> the form has special evaluation rule. How the special form is >> implemented is details readers need not care about. Please don't change >> a clearly written text to worse. > > Thanks for your attention. A "special form" is a primitive function, > and a "macro" is a construct defined in Lisp. Both of them are > mentioned in this manual (or tutorial): > > (info "(eintr) Lisp macro") > (info "(eintr) Complications") Indeed, there is some confusion in terminology there. (info "(eintr) Complications") says: The second complication occurs because some functions are unusual and do not work in the usual manner. Those that don't are called "special forms". That means, any "unusual" function is a special form, including macros. This page, however (I couldn't find it through the Info interface), http://www.gnu.org/software/emacs/manual/html_node/elisp/Special-Forms.html says that only primitive functions can be called special forms. I believe that this conflict should be resolved in favor of the former, and this opinion is supported by this sentence, removed in r112347: Because @code{defun} does not evaluate its arguments in the usual way, it is called a @dfn{special form}. > I think cross reference(s) to the `Lisp macro' node is a better than > revert this change. IOW, the change should be reverted, and the manual should be updated not to state that special forms are necessarily primitive functions. --Dmitry