From mboxrd@z Thu Jan 1 00:00:00 1970 Path: news.gmane.org!not-for-mail From: Kazu Yamamoto (=?iso-2022-jp?B?GyRCOzNLXE9CSScbKEI=?=) Newsgroups: gmane.emacs.devel Subject: Re: unused local variables Date: Mon, 03 Dec 2007 11:30:54 +0900 (JST) Message-ID: <20071203.113054.70904887.kazu@iij.ad.jp> References: <20071130.193454.200119602.kazu@iij.ad.jp> NNTP-Posting-Host: lo.gmane.org Mime-Version: 1.0 Content-Type: Text/Plain; charset=us-ascii Content-Transfer-Encoding: 7bit X-Trace: ger.gmane.org 1196649080 26584 80.91.229.12 (3 Dec 2007 02:31:20 GMT) X-Complaints-To: usenet@ger.gmane.org NNTP-Posting-Date: Mon, 3 Dec 2007 02:31:20 +0000 (UTC) To: emacs-devel@gnu.org Original-X-From: emacs-devel-bounces+ged-emacs-devel=m.gmane.org@gnu.org Mon Dec 03 03:31:28 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 1Iz15i-0001RM-6v for ged-emacs-devel@m.gmane.org; Mon, 03 Dec 2007 03:31:26 +0100 Original-Received: from localhost ([127.0.0.1] helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.43) id 1Iz15R-0003qV-Ng for ged-emacs-devel@m.gmane.org; Sun, 02 Dec 2007 21:31:09 -0500 Original-Received: from mailman by lists.gnu.org with tmda-scanned (Exim 4.43) id 1Iz15N-0003ns-1a for emacs-devel@gnu.org; Sun, 02 Dec 2007 21:31:05 -0500 Original-Received: from exim by lists.gnu.org with spam-scanned (Exim 4.43) id 1Iz15L-0003nJ-TS for emacs-devel@gnu.org; Sun, 02 Dec 2007 21:31:04 -0500 Original-Received: from [199.232.76.173] (helo=monty-python.gnu.org) by lists.gnu.org with esmtp (Exim 4.43) id 1Iz15L-0003nG-Qd for emacs-devel@gnu.org; Sun, 02 Dec 2007 21:31:03 -0500 Original-Received: from otm-mgo00.iij.ad.jp ([210.138.20.174]) by monty-python.gnu.org with esmtps (TLS-1.0:DHE_RSA_AES_256_CBC_SHA1:32) (Exim 4.60) (envelope-from ) id 1Iz15L-0006fn-7b for emacs-devel@gnu.org; Sun, 02 Dec 2007 21:31:03 -0500 DKIM-Signature: v=1;a=rsa-sha256;c=relaxed/simple;d=iij.ad.jp;h=Date: Message-Id:To:Subject:From:In-Reply-To:References:Mime-Version:Content-Type: Content-Transfer-Encoding; i=kazu@iij.ad.jp; s=omgo0; t=1196649055; x=1197858655; bh=HlJYJu2yVu/yq81R2qtjh1qbfBiqBvvMTQuwMCTw/Ww=; b=E6Fz8BBEoCBWG2ufqjsjNY3e/R5 Gh192FbYhg3cdHdyV/IlW1gCExCsBz4hPVrhOyTEo7Mxm8A84CIiZk3jN9J0EL0n+7qGeN89uy6BB I6OMCiDo70jSCQeO+qxeQW+b8hh49vH1oIpfpu/zpAP3pIZVbOTWqmNT9N8844ETQ9Y=; Original-Received: OTM-MO(otm-mgo00) id lB32UtrP095542; Mon, 3 Dec 2007 11:30:55 +0900 (JST) Original-Received: OTM-MIX(otm-mix00) id lB32Ut1r069343; Mon, 3 Dec 2007 11:30:55 +0900 (JST) Original-Received: from localhost (jc-ssh00.iij.ad.jp [192.168.174.22]) by rsmtp.iij.ad.jp (OTM-MR/rsmtp01) id lB32Us2x009570 (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-SHA bits=256 verify=NOT) for ; Mon, 3 Dec 2007 11:30:54 +0900 (JST) In-Reply-To: X-Mailer: Mew version 5.2.51 on Emacs 22.1 / Mule 5.0 (SAKAKI) X-detected-kernel: by monty-python.gnu.org: FreeBSD 4.6-4.9 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:84526 Archived-At: Hello, > What I want to say is that case-fold-search in the following example > > is not warned with XEmacs because it is defined with 'defvar'. > > So, yes: what you propose is forcing `defvar' for dynamic variables > used across function boundaries. Probaby you misunderstood. I did not use the word "force". Let me explain the whole story: ---- (defvar my-global-var nil) (defun my-func1 () (setq my-local-inherit-var (1+ my-local-inherit-var))) (defun my-func() (let ((my-global-var t) ;; <1> (my-local-var 1) ;; <2> (my-local-inherit-var 2)) ;; <3> ;; code which does not refer these three variabls above (my-func1) )) ---- My purpose is to detect <2>. XEmacs warns both <2> and <3>. I said this is good enough because I can find <2>. To suppress warnings of <3>, there would be two options: (1) Provide a option to suppress unused local variables (both <2> and <3>). It means that this option does not change Emacs's current behavior. (2) Prepare a *temporary* defvar for <3> when byte-compiling only for detection purpose. After removing <2>, you can byte-compile without the temporary defvar (and ignoring a warning) and install the elc file. --Kazu