From mboxrd@z Thu Jan 1 00:00:00 1970 Path: news.gmane.org!not-for-mail From: "Pascal J. Bourguignon" Newsgroups: gmane.emacs.help Subject: Re: understanding backquote Date: Wed, 03 Jun 2015 01:07:19 +0200 Organization: Informatimago Message-ID: <87k2vl4sm0.fsf@kuiper.lan.informatimago.com> References: <87vbf65jem.fsf@free.fr> NNTP-Posting-Host: plane.gmane.org Mime-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Trace: ger.gmane.org 1433286632 29211 80.91.229.3 (2 Jun 2015 23:10:32 GMT) X-Complaints-To: usenet@ger.gmane.org NNTP-Posting-Date: Tue, 2 Jun 2015 23:10:32 +0000 (UTC) To: help-gnu-emacs@gnu.org Original-X-From: help-gnu-emacs-bounces+geh-help-gnu-emacs=m.gmane.org@gnu.org Wed Jun 03 01:10:32 2015 Return-path: Envelope-to: geh-help-gnu-emacs@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 1YzvK7-0001v0-6C for geh-help-gnu-emacs@m.gmane.org; Wed, 03 Jun 2015 01:10:19 +0200 Original-Received: from localhost ([::1]:32967 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1YzvK6-0000WQ-AY for geh-help-gnu-emacs@m.gmane.org; Tue, 02 Jun 2015 19:10:18 -0400 X-Received: by 10.112.84.104 with SMTP id x8mr27613263lby.23.1433286440144; Tue, 02 Jun 2015 16:07:20 -0700 (PDT) Original-Path: usenet.stanford.edu!u14no9112196lbd.0!news-out.google.com!rq4ni229081lbb.1!nntp.google.com!fu-berlin.de!uni-berlin.de!individual.net!not-for-mail Original-Newsgroups: gnu.emacs.help Original-Lines: 32 Original-X-Trace: individual.net +V9jTougI4cfUW2vMXeX+wkDFygHJQBsO17o2ChydjQNR8zVVp Cancel-Lock: sha1:NDM5YzY1YjFjYTBmODNmZGY2YjE4ZTNlMjhlOWIxNWRiMzUzN2NhZg== sha1:401xHn/738AJ138ywEywSeircMA= Face: iVBORw0KGgoAAAANSUhEUgAAADAAAAAwAQMAAABtzGvEAAAABlBMVEUAAAD///+l2Z/dAAAA oElEQVR4nK3OsRHCMAwF0O8YQufUNIQRGIAja9CxSA55AxZgFO4coMgYrEDDQZWPIlNAjwq9 033pbOBPtbXuB6PKNBn5gZkhGa86Z4x2wE67O+06WxGD/HCOGR0deY3f9Ijwwt7rNGNf6Oac l/GuZTF1wFGKiYYHKSFAkjIo1b6sCYS1sVmFhhhahKQssRjRT90ITWUk6vvK3RsPGs+M1RuR mV+hO/VvFAAAAABJRU5ErkJggg== X-Accept-Language: fr, es, en User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/24.3 (gnu/linux) Original-Xref: usenet.stanford.edu gnu.emacs.help:212440 X-BeenThere: help-gnu-emacs@gnu.org X-Mailman-Version: 2.1.14 Precedence: list List-Id: Users list for the GNU Emacs text editor List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: help-gnu-emacs-bounces+geh-help-gnu-emacs=m.gmane.org@gnu.org Original-Sender: help-gnu-emacs-bounces+geh-help-gnu-emacs=m.gmane.org@gnu.org Xref: news.gmane.org gmane.emacs.help:104724 Archived-At: Olaf Rogalsky writes: > Is there a way to evaluate parts of a defun during read-time or > byte-compile-time? In emacs lisp, there's no way to evaluate anything at read-time. In Common Lisp, you can use the #. dispatching reader macro. In both emacs lisp and Common Lisp, you can use a toplevel eval-when form to choose when to evaluate something only at compilation time, but this doesn't work for subforms. Notice that some operators have an "evaluate at compilation-time" rule, but again, this is more clearly defined for Common Lisp than emacs lisp. For example CL defconstant says: If a defconstant form appears as a top level form, the compiler must recognize that name names a constant variable. An implementation may choose to evaluate the value-form at compile time, load time, or both. Therefore, users must ensure that the initial-value can be evaluated at compile time (regardless of whether or not references to name appear in the file) and that it always evaluates to the same value. while the documentation for defconst doesn't say anything about this. -- __Pascal Bourguignon__ http://www.informatimago.com/ “The factory of the future will have only two employees, a man and a dog. The man will be there to feed the dog. The dog will be there to keep the man from touching the equipment.” -- Carl Bass CEO Autodesk