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: Lexical byte-compilation warnings cleanup Date: Tue, 20 Aug 2013 01:47:21 -0400 Message-ID: References: NNTP-Posting-Host: plane.gmane.org Mime-Version: 1.0 Content-Type: text/plain X-Trace: ger.gmane.org 1376977666 19500 80.91.229.3 (20 Aug 2013 05:47:46 GMT) X-Complaints-To: usenet@ger.gmane.org NNTP-Posting-Date: Tue, 20 Aug 2013 05:47:46 +0000 (UTC) Cc: Emacs development discussions To: Daniel Hackney Original-X-From: emacs-devel-bounces+ged-emacs-devel=m.gmane.org@gnu.org Tue Aug 20 07:47:47 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 1VBenD-0004yo-LT for ged-emacs-devel@m.gmane.org; Tue, 20 Aug 2013 07:47:47 +0200 Original-Received: from localhost ([::1]:46039 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1VBenD-0000dg-BA for ged-emacs-devel@m.gmane.org; Tue, 20 Aug 2013 01:47:47 -0400 Original-Received: from eggs.gnu.org ([2001:4830:134:3::10]:51927) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1VBen3-0000HP-Et for emacs-devel@gnu.org; Tue, 20 Aug 2013 01:47:44 -0400 Original-Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1VBemw-00084S-5V for emacs-devel@gnu.org; Tue, 20 Aug 2013 01:47:37 -0400 Original-Received: from ironport2-out.teksavvy.com ([206.248.154.182]:30600) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1VBemw-00084E-1p for emacs-devel@gnu.org; Tue, 20 Aug 2013 01:47:30 -0400 X-IronPort-Anti-Spam-Filtered: true X-IronPort-Anti-Spam-Result: Av4EABK/CFHO+LNT/2dsb2JhbABEvw4Xc4IeAQEEAVYjBQsLDiYSFBgNJIgeBrEfkA6RCgOkeoFegxM X-IPAS-Result: Av4EABK/CFHO+LNT/2dsb2JhbABEvw4Xc4IeAQEEAVYjBQsLDiYSFBgNJIgeBrEfkA6RCgOkeoFegxM X-IronPort-AV: E=Sophos;i="4.84,565,1355115600"; d="scan'208";a="22578952" Original-Received: from 206-248-179-83.dsl.teksavvy.com (HELO fmsmemgm.homelinux.net) ([206.248.179.83]) by ironport2-out.teksavvy.com with ESMTP/TLS/ADH-AES256-SHA; 20 Aug 2013 01:47:19 -0400 Original-Received: by fmsmemgm.homelinux.net (Postfix, from userid 20848) id DC509AE0CA; Tue, 20 Aug 2013 01:47:21 -0400 (EDT) In-Reply-To: (Daniel Hackney's message of "Mon, 19 Aug 2013 19:33:00 -0400") User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/24.3.50 (gnu/linux) X-detected-operating-system: by eggs.gnu.org: Genre and OS details not recognized. X-Received-From: 206.248.154.182 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:162905 Archived-At: > - I'm seeing a lot of "Argument foo is not a lexical variable", such as > in vc/ediff-diff.el:532:56. What does this mean and is this something > I should "fix"? It means that the function uses an argument whose name refers to a dynamically-scoped variable. This is not allowed in lexically-scoped code, so you need to rename either the dynbind var or the function's argument. > Note that `emerge-exit-func' is a `defvar'ed variable. Should it be > replaced with something like this: > #+BEGIN_SRC emacs-lisp > (defun emerge-remote-exit (file-out exit-func) > (let ((emerge-exit-func exit-func)) > (emerge-write-and-delete file-out) > (kill-buffer emerge-merge-buffer) > (funcall emerge-exit-func (if emerge-prefix-argument 1 0)))) > #+END_SRC Yes. > - In `emerge-revisions-with-ancestor', the variable `cmd' is let-bound, > but does not appear to be used. Could it be safely removed? Depends on the rest of the code. Usually, if there's no assignment or reference to a free variable named "cmd" elsewhere, there's a good chance that such variables that are "let-bound but not used locally" are indeed just unused and can be removed. Stefan