GNU bug report logs - #36445
Byte-compilation does not warn about runtime use of variables defined only at compile time

Please note: This is a static page, with minimal formatting, updated once a day.
Click here to see this page with the latest information and nicer formatting.

Package: emacs; Severity: minor; Reported by: Wilfred Hughes <me@HIDDEN>; Keywords: confirmed; dated Sun, 30 Jun 2019 13:21:02 UTC; Maintainer for emacs is bug-gnu-emacs@HIDDEN.
Added tag(s) confirmed. Request was from Noam Postavsky <npostavs@HIDDEN> to control <at> debbugs.gnu.org. Full text available.
Severity set to 'minor' from 'normal' Request was from Noam Postavsky <npostavs@HIDDEN> to control <at> debbugs.gnu.org. Full text available.
Changed bug title to 'Byte-compilation does not warn about runtime use of variables defined only at compile time' from 'Byte-compilation does not warn about variables undefined at runtime' Request was from Noam Postavsky <npostavs@HIDDEN> to control <at> debbugs.gnu.org. Full text available.

Message received at submit <at> debbugs.gnu.org:


Received: (at submit) by debbugs.gnu.org; 30 Jun 2019 13:20:34 +0000
From debbugs-submit-bounces <at> debbugs.gnu.org Sun Jun 30 09:20:34 2019
Received: from localhost ([127.0.0.1]:45490 helo=debbugs.gnu.org)
	by debbugs.gnu.org with esmtp (Exim 4.84_2)
	(envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>)
	id 1hhZkw-0002iy-Hw
	for submit <at> debbugs.gnu.org; Sun, 30 Jun 2019 09:20:34 -0400
Received: from lists.gnu.org ([209.51.188.17]:35551)
 by debbugs.gnu.org with esmtp (Exim 4.84_2)
 (envelope-from <me@HIDDEN>) id 1hhZku-0002io-BV
 for submit <at> debbugs.gnu.org; Sun, 30 Jun 2019 09:20:33 -0400
Received: from eggs.gnu.org ([2001:470:142:3::10]:44624)
 by lists.gnu.org with esmtp (Exim 4.86_2)
 (envelope-from <me@HIDDEN>) id 1hhZkt-0007Ui-CN
 for bug-gnu-emacs@HIDDEN; Sun, 30 Jun 2019 09:20:32 -0400
X-Spam-Checker-Version: SpamAssassin 3.3.2 (2011-06-06) on eggs.gnu.org
X-Spam-Level: 
X-Spam-Status: No, score=0.8 required=5.0 tests=BAYES_50,URIBL_BLOCKED
 autolearn=disabled version=3.3.2
Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71)
 (envelope-from <me@HIDDEN>) id 1hhZks-0001GO-9X
 for bug-gnu-emacs@HIDDEN; Sun, 30 Jun 2019 09:20:31 -0400
Received: from mail-wr1-x429.google.com ([2a00:1450:4864:20::429]:41358)
 by eggs.gnu.org with esmtps (TLS1.0:RSA_AES_128_CBC_SHA1:16)
 (Exim 4.71) (envelope-from <me@HIDDEN>) id 1hhZkr-0001EE-Pr
 for bug-gnu-emacs@HIDDEN; Sun, 30 Jun 2019 09:20:30 -0400
Received: by mail-wr1-x429.google.com with SMTP id c2so10870601wrm.8
 for <bug-gnu-emacs@HIDDEN>; Sun, 30 Jun 2019 06:20:28 -0700 (PDT)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
 d=wilfred-me-uk.20150623.gappssmtp.com; s=20150623;
 h=mime-version:from:date:message-id:subject:to;
 bh=zipdb+41KL1J6TcVFuMrqU9hDo9wyK01NQexs0YXdow=;
 b=waIVdctL9gYVMNutDp9AkCYM9sopaXWra+xu/Q0UbNgHqNkf+8yXLIdLqWuvS5qcsd
 yv9dTVfvSw8KND3mY0faUOcdkyrSpToQzFYXQ/j5Zz3az8uB1FHKszcvl6qIeH2oSbbY
 czEIog9QZ/6coeaeHVqT9+aNtBxWDgkrdl1u+GeLRTNywDZxSrF4F81eIVOyoEC+FLTy
 kUGuQHgA8oN/GmXdEYd9BwdL9HWQ1jQ4KRobOv2rDf6jqC0aczkzu4L9EeGk2ARTb0e+
 1oQ/UscqpWjl5ElOhns0YzSLJDHeAOslCbNsdZkHw8VtZd7VIcejnbAYjJ9pBIzTSYja
 DO6A==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
 d=1e100.net; s=20161025;
 h=x-gm-message-state:mime-version:from:date:message-id:subject:to;
 bh=zipdb+41KL1J6TcVFuMrqU9hDo9wyK01NQexs0YXdow=;
 b=OzE7ozGMbfVHB1O1aY3Nr9/2G4hP6n0F89qvsLmf/h3uGS3110a4wp6cwS1RZU8P+Z
 uulezakfGhjMLM3uveDFfXRMhM7j2APNnD3+n2qW5f+M1kFII3bmp0vbspkt5HPGfzd2
 70z8ihw1UQuV+PNdNVmVDaatbFNkW5n3Ge+wOYlJYcbKO7h7V+QNIplMpcE3U58LnoqB
 m76vBS/P3NX83V7ptKefMmUkNkQhcSsWjBSHl6NRfWxBAdYMOY+NrWEAyy/v+gj2ABfs
 pcNzFvnhmVEymcz1xi/kNRneoMYNW6/YM3NTKLd3NdyGlnzqI6RCmqefU5m6s39zzdhQ
 gplg==
X-Gm-Message-State: APjAAAWBZpprwf7ci5+PCFe3sOhwj2Xx9vwqL5RB+YHIrsa0t0PasUM4
 oeJ2kAMU/x6zkE0n57Zc5MsIXGpNCIycEmgQfa62BZmKd5Y=
X-Google-Smtp-Source: APXvYqyM3CpY9FWDKqixhwpEDLdnCFYk7AFYIrEcsPCBqgL8Wb7fqM6JOg0e6ChcEcMZ1hwVpvzi4jpybTszIZC6Gto=
X-Received: by 2002:a5d:55c2:: with SMTP id i2mr2965601wrw.113.1561900827547; 
 Sun, 30 Jun 2019 06:20:27 -0700 (PDT)
MIME-Version: 1.0
From: Wilfred Hughes <me@HIDDEN>
Date: Sun, 30 Jun 2019 14:20:16 +0100
Message-ID: <CAFXAjY4GUfJjHmbZdh2KFsxRPbpi8yXxOaZHnzDm8+R8EE=MRw@HIDDEN>
Subject: Byte-compilation does not warn about variables undefined at runtime
To: bug-gnu-emacs@HIDDEN
Content-Type: text/plain; charset="UTF-8"
X-detected-operating-system: by eggs.gnu.org: Genre and OS details not
 recognized.
X-Received-From: 2a00:1450:4864:20::429
X-Spam-Score: -1.3 (-)
X-Debbugs-Envelope-To: submit
X-BeenThere: debbugs-submit <at> debbugs.gnu.org
X-Mailman-Version: 2.1.18
Precedence: list
List-Id: <debbugs-submit.debbugs.gnu.org>
List-Unsubscribe: <https://debbugs.gnu.org/cgi-bin/mailman/options/debbugs-submit>, 
 <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=unsubscribe>
List-Archive: <https://debbugs.gnu.org/cgi-bin/mailman/private/debbugs-submit/>
List-Post: <mailto:debbugs-submit <at> debbugs.gnu.org>
List-Help: <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=help>
List-Subscribe: <https://debbugs.gnu.org/cgi-bin/mailman/listinfo/debbugs-submit>, 
 <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=subscribe>
Errors-To: debbugs-submit-bounces <at> debbugs.gnu.org
Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org>
X-Spam-Score: -2.3 (--)

The byte-compiler warns about functions that are defined at
compile-time but not at runtime. However, it doesn't warn about
variables that are only defined at compile-time.

As a result, this program produces incorrect bytecode without any warnings:

(eval-when-compile
  (defconst demo-one 1))

(defvar demo-some-var
  `(foo bar ,demo-one))

Produces the following .elc file:

;ELC
;;; Compiled
;;; in Emacs version 26.1
;;; with all optimizations.

;;; This file uses dynamic docstrings, first added in Emacs 19.29.

;;; This file does not contain utf-8 non-ASCII characters,
;;; and so can be loaded in Emacs versions earlier than 23.

;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;


(defvar demo-some-var (list 'foo 'bar demo-one))

Could Emacs warn about variables in this situation, to match the logic
with functions?

Originally discussed in
https://emacs.stackexchange.com/questions/51075/how-do-i-get-byte-compilation-warnings-about-undefined-variables/51127




Acknowledgement sent to Wilfred Hughes <me@HIDDEN>:
New bug report received and forwarded. Copy sent to bug-gnu-emacs@HIDDEN. Full text available.
Report forwarded to bug-gnu-emacs@HIDDEN:
bug#36445; Package emacs. Full text available.
Please note: This is a static page, with minimal formatting, updated once a day.
Click here to see this page with the latest information and nicer formatting.
Last modified: Mon, 25 Nov 2019 12:00:02 UTC

GNU bug tracking system
Copyright (C) 1999 Darren O. Benham, 1997 nCipher Corporation Ltd, 1994-97 Ian Jackson.