From mboxrd@z Thu Jan 1 00:00:00 1970 Path: main.gmane.org!not-for-mail From: Luc Teirlinck Newsgroups: gmane.emacs.devel Subject: Re: defconst in lao.el Date: Wed, 17 Nov 2004 12:35:47 -0600 (CST) Message-ID: <200411171835.iAHIZls25178@raven.dms.auburn.edu> References: <200411141856.iAEIuEM24284@raven.dms.auburn.edu> <200411170141.KAA24828@etlken.m17n.org> NNTP-Posting-Host: deer.gmane.org X-Trace: sea.gmane.org 1100716634 16711 80.91.229.6 (17 Nov 2004 18:37:14 GMT) X-Complaints-To: usenet@sea.gmane.org NNTP-Posting-Date: Wed, 17 Nov 2004 18:37:14 +0000 (UTC) Cc: emacs-devel@gnu.org, handa@m17n.org Original-X-From: emacs-devel-bounces+ged-emacs-devel=m.gmane.org@gnu.org Wed Nov 17 19:37:01 2004 Return-path: Original-Received: from lists.gnu.org ([199.232.76.165]) by deer.gmane.org with esmtp (Exim 3.35 #1 (Debian)) id 1CUUft-0003Mb-00 for ; Wed, 17 Nov 2004 19:37:01 +0100 Original-Received: from localhost ([127.0.0.1] helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.33) id 1CUUoh-0002Ag-Jn for ged-emacs-devel@m.gmane.org; Wed, 17 Nov 2004 13:46:07 -0500 Original-Received: from mailman by lists.gnu.org with tmda-scanned (Exim 4.33) id 1CUUoW-00027x-Er for emacs-devel@gnu.org; Wed, 17 Nov 2004 13:45:56 -0500 Original-Received: from exim by lists.gnu.org with spam-scanned (Exim 4.33) id 1CUUoU-000277-8d for emacs-devel@gnu.org; Wed, 17 Nov 2004 13:45:54 -0500 Original-Received: from [199.232.76.173] (helo=monty-python.gnu.org) by lists.gnu.org with esmtp (Exim 4.33) id 1CUUoU-00026x-4H for emacs-devel@gnu.org; Wed, 17 Nov 2004 13:45:54 -0500 Original-Received: from [131.204.53.104] (helo=manatee.dms.auburn.edu) by monty-python.gnu.org with esmtp (Exim 4.34) id 1CUUfc-0001Te-Hj for emacs-devel@gnu.org; Wed, 17 Nov 2004 13:36:44 -0500 Original-Received: from raven.dms.auburn.edu (raven.dms.auburn.edu [131.204.53.29]) by manatee.dms.auburn.edu (8.12.10/8.12.10) with ESMTP id iAHIahFu006409; Wed, 17 Nov 2004 12:36:43 -0600 (CST) Original-Received: (from teirllm@localhost) by raven.dms.auburn.edu (8.11.7p1+Sun/8.11.7) id iAHIZls25178; Wed, 17 Nov 2004 12:35:47 -0600 (CST) X-Authentication-Warning: raven.dms.auburn.edu: teirllm set sender to teirllm@dms.auburn.edu using -f Original-To: monnier@iro.umontreal.ca In-reply-to: (message from Stefan Monnier on Wed, 17 Nov 2004 09:17:49 -0500) 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: main.gmane.org gmane.emacs.devel:29982 X-Report-Spam: http://spam.gmane.org/gmane.emacs.devel:29982 Stefan Monnier wrote: The "right" answer is to put the defconst in the body of the let. I do believe that it is better to put a defconst at top level. Putting it elsewhere is probably going to give worse problems than just compiler warnings, anyway. One can always do that as follows (without compiler warnings): (defvar temp-my-const temp-value) ;; we need to re-initialize temp-my-const when this file is re-loaded. (setq temp-my-const temp-value) ... initializing code.... (defconst my-const temp-my-const) Note that the defvar-setq pair is necessary because, unlike CL, Elisp has no defparameter. In the case of lao.el however, I believe that using no defconst's at all is better, because Handa has indicated that it actually might make sense for a user to change `lao-key-alist' in his .emacs, in which case defconst could lead to trouble. Sincerely, Luc.