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: Upcoming loss of usability of Emacs source files and Emacs. Date: Thu, 25 Jun 2015 11:45:12 -0400 Message-ID: References: <5580D356.4050708@cs.ucla.edu> <87si9qonxb.fsf@gnu.org> <5581C29E.1030101@yandex.ru> <87r3p9fxm2.fsf@uwakimon.sk.tsukuba.ac.jp> <87k2v0fiji.fsf@uwakimon.sk.tsukuba.ac.jp> <20150619090225.GA2743@acm.fritz.box> <87fv5kfrfa.fsf@uwakimon.sk.tsukuba.ac.jp> <83twtzhi9g.fsf@gnu.org> <877fqvfvby.fsf@uwakimon.sk.tsukuba.ac.jp> <83fv5jh8ls.fsf@gnu.org> <874mlzf71d.fsf@uwakimon.sk.tsukuba.ac.jp> <558945C2.2010203@yandex.ru> <5589E2DB.1060207@yandex.ru> <558AD06F.6080200@yandex.ru> NNTP-Posting-Host: plane.gmane.org Mime-Version: 1.0 Content-Type: text/plain X-Trace: ger.gmane.org 1435247163 24183 80.91.229.3 (25 Jun 2015 15:46:03 GMT) X-Complaints-To: usenet@ger.gmane.org NNTP-Posting-Date: Thu, 25 Jun 2015 15:46:03 +0000 (UTC) Cc: eggert@cs.ucla.edu, emacs-devel@gnu.org, Dmitry Gutov , acm@muc.de, stephen@xemacs.org, eliz@gnu.org To: Richard Stallman Original-X-From: emacs-devel-bounces+ged-emacs-devel=m.gmane.org@gnu.org Thu Jun 25 17:45:48 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 1Z89LS-0001Zl-3x for ged-emacs-devel@m.gmane.org; Thu, 25 Jun 2015 17:45:42 +0200 Original-Received: from localhost ([::1]:56268 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1Z89LR-000780-FG for ged-emacs-devel@m.gmane.org; Thu, 25 Jun 2015 11:45:41 -0400 Original-Received: from eggs.gnu.org ([2001:4830:134:3::10]:56317) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1Z89L7-0006TY-Hn for emacs-devel@gnu.org; Thu, 25 Jun 2015 11:45:22 -0400 Original-Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1Z89L6-0004hq-Pu for emacs-devel@gnu.org; Thu, 25 Jun 2015 11:45:21 -0400 Original-Received: from ironport2-out.teksavvy.com ([206.248.154.181]:27833) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1Z89L1-0004bO-3A; Thu, 25 Jun 2015 11:45:15 -0400 X-IronPort-Anti-Spam-Filtered: true X-IronPort-Anti-Spam-Result: A0CVDQA731xV/3+MCkxcgxCEAsEVh0sEAgKBPDsSAQEBAQEBAYEKQQWDXQEBAwFWIwULCw4mEhQYDSSINwjPIwEBCAIBH4s6hQUHhC0BBItEp3uBRSOEFCKCeAEBAQ X-IPAS-Result: A0CVDQA731xV/3+MCkxcgxCEAsEVh0sEAgKBPDsSAQEBAQEBAYEKQQWDXQEBAwFWIwULCw4mEhQYDSSINwjPIwEBCAIBH4s6hQUHhC0BBItEp3uBRSOEFCKCeAEBAQ X-IronPort-AV: E=Sophos;i="5.13,465,1427774400"; d="scan'208";a="128336185" Original-Received: from 76-10-140-127.dsl.teksavvy.com (HELO fmsmemgm.homelinux.net) ([76.10.140.127]) by ironport2-out.teksavvy.com with ESMTP/TLS/DHE-RSA-AES256-SHA; 25 Jun 2015 11:45:12 -0400 Original-Received: by fmsmemgm.homelinux.net (Postfix, from userid 20848) id 7E103AE182; Thu, 25 Jun 2015 11:45:12 -0400 (EDT) In-Reply-To: (Richard Stallman's message of "Thu, 25 Jun 2015 03:49:23 -0400") User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/25.0.50 (gnu/linux) X-detected-operating-system: by eggs.gnu.org: Genre and OS details not recognized. X-Received-From: 206.248.154.181 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:187523 Archived-At: > I can't understand the doc string for macroexp-let2. > Can anyone explain to me what this macro is supposed > to do, and offer a concrete example of its use? It abstracts the form: (let ((sym (make-symbol))) `(let ((,sym ,exp)) ... ,sym ... ,sym ...)) used in macros to make sure that EXP is executed exactly one (and at a known place with the right variables in scope), instead of the naive `(... ,exp ... ,exp ...)) which risks running EXP too many times, or at the wrong time, or the other naive `(let ((val ,exp)) ... val ... val ...)) which risks name capture if the `val' variable appears elsewhere. > At this point, all I can say is that V is a metasyntactic variable, > not literal Lisp code. So it should be capitalized, not quoted. That's right, Stefan