From mboxrd@z Thu Jan 1 00:00:00 1970 Path: news.gmane.io!.POSTED.blaine.gmane.org!not-for-mail From: Pierre Rouleau Newsgroups: gmane.emacs.bugs Subject: bug#49749: 26.3; 26.3 & 27.2: invalid byte compiler warning in short-circuited or form Date: Tue, 27 Jul 2021 14:54:14 -0400 Message-ID: <1B5C81C0-5D9A-4ED5-B56A-FC6AAA1A8A87@gmail.com> Mime-Version: 1.0 (Mac OS X Mail 12.4 \(3445.104.21\)) Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: quoted-printable Injection-Info: ciao.gmane.io; posting-host="blaine.gmane.org:116.202.254.214"; logging-data="19327"; mail-complaints-to="usenet@ciao.gmane.io" To: 49749@debbugs.gnu.org Original-X-From: bug-gnu-emacs-bounces+geb-bug-gnu-emacs=m.gmane-mx.org@gnu.org Tue Jul 27 20:55:19 2021 Return-path: Envelope-to: geb-bug-gnu-emacs@m.gmane-mx.org Original-Received: from lists.gnu.org ([209.51.188.17]) by ciao.gmane.io with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.92) (envelope-from ) id 1m8SEY-0004qW-OD for geb-bug-gnu-emacs@m.gmane-mx.org; Tue, 27 Jul 2021 20:55:18 +0200 Original-Received: from localhost ([::1]:41658 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1m8SEX-0004Kq-KC for geb-bug-gnu-emacs@m.gmane-mx.org; Tue, 27 Jul 2021 14:55:17 -0400 Original-Received: from eggs.gnu.org ([2001:470:142:3::10]:55050) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1m8SEJ-0004Kc-4H for bug-gnu-emacs@gnu.org; Tue, 27 Jul 2021 14:55:03 -0400 Original-Received: from debbugs.gnu.org ([209.51.188.43]:42350) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1m8SEI-0008Mn-SB for bug-gnu-emacs@gnu.org; Tue, 27 Jul 2021 14:55:02 -0400 Original-Received: from Debian-debbugs by debbugs.gnu.org with local (Exim 4.84_2) (envelope-from ) id 1m8SEI-00016S-Mr for bug-gnu-emacs@gnu.org; Tue, 27 Jul 2021 14:55:02 -0400 X-Loop: help-debbugs@gnu.org Resent-From: Pierre Rouleau Original-Sender: "Debbugs-submit" Resent-CC: bug-gnu-emacs@gnu.org Resent-Date: Tue, 27 Jul 2021 18:55:02 +0000 Resent-Message-ID: Resent-Sender: help-debbugs@gnu.org X-GNU-PR-Message: report 49749 X-GNU-PR-Package: emacs X-Debbugs-Original-To: bug-gnu-emacs@gnu.org Original-Received: via spool by submit@debbugs.gnu.org id=B.16274120634189 (code B ref -1); Tue, 27 Jul 2021 18:55:02 +0000 Original-Received: (at submit) by debbugs.gnu.org; 27 Jul 2021 18:54:23 +0000 Original-Received: from localhost ([127.0.0.1]:53896 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1m8SDf-00015U-55 for submit@debbugs.gnu.org; Tue, 27 Jul 2021 14:54:23 -0400 Original-Received: from lists.gnu.org ([209.51.188.17]:57350) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1m8SDc-00015L-4R for submit@debbugs.gnu.org; Tue, 27 Jul 2021 14:54:22 -0400 Original-Received: from eggs.gnu.org ([2001:470:142:3::10]:54864) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1m8SDb-0004GP-RV for bug-gnu-emacs@gnu.org; Tue, 27 Jul 2021 14:54:19 -0400 Original-Received: from mail-qk1-x736.google.com ([2607:f8b0:4864:20::736]:36769) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1m8SDZ-0007tC-VN for bug-gnu-emacs@gnu.org; Tue, 27 Jul 2021 14:54:19 -0400 Original-Received: by mail-qk1-x736.google.com with SMTP id b20so13384230qkj.3 for ; Tue, 27 Jul 2021 11:54:16 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=from:content-transfer-encoding:mime-version:subject:message-id:date :to; bh=DTtA6YGq3rt/sSHUrhWuSkRmR+ewRhxKkQtA6S/UDPk=; b=lBNRv74UfxbVfOHZc0OgVinq5YC4t0XpU8aApGyzjLLU8I9ALgPWPEamNRRQ5hfdKK VBavxO5sU7rLotcP7YJS/tpMM0c9rNSPpAo+KVGsGKMiDSzlHVQViIeiO/EYqHpTQx9h DopTsMJJneiD/aPtWCZCA7H8xStv2yKfMuxAzwIHsIaAODFl97yX8l6jjaS9TYhPEszo 5GgAHEZsgMY1Mih8aBtwKBjxU8Jdj5nLkZjDjiJEBkP1lsnZTJfFJzFSvs4BCjCp+85M BMNqG7f61fiBr8DenfZhXSOv36vmfuq2ssoY/G9Qu+Id5xotuB3A1dSqYs/fum73yPxv Z/xQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:content-transfer-encoding:mime-version :subject:message-id:date:to; bh=DTtA6YGq3rt/sSHUrhWuSkRmR+ewRhxKkQtA6S/UDPk=; b=Gkah/oUwSGUGHPbiEaduCidTTYWIjBYRQ3e7FULW2Wx5/bTGffNgPKxeoM88wb2SXE 6P6tp/k33k0M94Y3zhUSUOy0HlWyKVhQOakCQRvBo90Ax50Os9VP1Lt/IUij5uONX0iV HKpJPB7RPHcJT216qfb7UmJfecl0RBjbWh/QAjWHXdPuyxjBMHh/2inRDWH2HXc+/eHu cj+YESjyeYWhabmlNz/JudJhCI+vZtnzpOgYcbM2IJfXtZa86JBgs9BmXTM61d0XXo6t df7MiPWwmmSfwB3l23mhOV6WhNADPClOiz9Hzv7Wc1GIRls0FN5VlkjmIJTFA8NdqyD5 N9PA== X-Gm-Message-State: AOAM533Tn2iyJqyjFZO1k6PPSvO8RUi6iIRpnTrBrNTDk3WZMfHyp8tK Xuijp3+1siCz0CamPpafd8hKylJ/IbA= X-Google-Smtp-Source: ABdhPJxLgUJdphXJmxmUqX2DJNR94tld8TLJyWAo44gF+rUl/t/NR43pUas2JhAQlglrrkb8DHfJWw== X-Received: by 2002:a37:487:: with SMTP id 129mr23078431qke.154.1627412055961; Tue, 27 Jul 2021 11:54:15 -0700 (PDT) Original-Received: from [192.168.0.187] (modemcable082.211-161-184.mc.videotron.ca. [184.161.211.82]) by smtp.gmail.com with ESMTPSA id c197sm2090633qke.33.2021.07.27.11.54.14 for (version=TLS1_2 cipher=ECDHE-ECDSA-AES128-GCM-SHA256 bits=128/128); Tue, 27 Jul 2021 11:54:15 -0700 (PDT) X-Mailer: Apple Mail (2.3445.104.21) Received-SPF: pass client-ip=2607:f8b0:4864:20::736; envelope-from=prouleau001@gmail.com; helo=mail-qk1-x736.google.com X-Spam_score_int: -17 X-Spam_score: -1.8 X-Spam_bar: - X-Spam_report: (-1.8 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, FREEMAIL_ENVFROM_END_DIGIT=0.25, FREEMAIL_FROM=0.001, RCVD_IN_DNSWL_NONE=-0.0001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=ham autolearn_force=no X-Spam_action: no action X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list X-BeenThere: bug-gnu-emacs@gnu.org List-Id: "Bug reports for GNU Emacs, the Swiss army knife of text editors" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: bug-gnu-emacs-bounces+geb-bug-gnu-emacs=m.gmane-mx.org@gnu.org Original-Sender: "bug-gnu-emacs" Xref: news.gmane.io gmane.emacs.bugs:210805 Archived-At: Paste the following code inside the scratch buffer (nothing else): (defun f-and () "Use and." (when (null (and (boundp 'foo) foo)) ; no warning here, as expected. = =20 (message "foo is not set"))) (defun f-or () "Use or." (when (or (null (boundp 'foo)) (null foo)) ;=3D> ``Warning: reference to free variable = =E2=80=98foo=E2=80=99`` =20 (message "foo is not set"))) Then do: - ``M-x compile-defun`` with point over f-and. No warning is reported as expected. - ``M-x compile-defun`` with point over f-or. This time the byte compiler (of both Emacs 26.3 and 27.2) reports a "Warning: reference to free variable =E2=80=98foo=E2=80=99" on the = line identified in the code. I believe the byte compiler warning to be invalid. The symbol `foo' is not bound but the code checks if it is bound first with the line just above. The ``or`` form is short-circuiting and will not eval the (null foo) at that point. Furthermore the code in `f-or' is a De Morgan equivalent boolean expression of the one inside the `f-and' function. Both functions `f-and' and `f-or' will run to completion when called and both issue the "foo is not set" message. In GNU Emacs 26.3 (build 1, x86_64-apple-darwin18.6.0) of 2019-08-30 built on Mojave.local Recent messages: Contacting host: debbugs.gnu.org:443 Opening nndoc server on = /var/folders/xb/xffhmkvs3ssfdqd4xk7lftsr0000gn/T/gnus-temp-group-6iUAmw-ep= hemeral...done Contacting host: debbugs.gnu.org:443 Opening nndoc server on = /var/folders/xb/xffhmkvs3ssfdqd4xk7lftsr0000gn/T/gnus-temp-group-Y4gIQl-ep= hemeral...done Contacting host: debbugs.gnu.org:443 Opening nndoc server on = /var/folders/xb/xffhmkvs3ssfdqd4xk7lftsr0000gn/T/gnus-temp-group-87ADIS-ep= hemeral...done Contacting host: debbugs.gnu.org:443 Opening nndoc server on = /var/folders/xb/xffhmkvs3ssfdqd4xk7lftsr0000gn/T/gnus-temp-group-MiDCIW-ep= hemeral...done Contacting host: debbugs.gnu.org:443 Opening nndoc server on = /var/folders/xb/xffhmkvs3ssfdqd4xk7lftsr0000gn/T/gnus-temp-group-puQ3A6-ep= hemeral...done Configured using: 'configure --disable-dependency-tracking --disable-silent-rules --enable-locallisppath=3D/usr/local/share/emacs/site-lisp --infodir=3D/usr/local/Cellar/emacs/26.3/share/info/emacs --prefix=3D/usr/local/Cellar/emacs/26.3 --with-gnutls --without-x --with-xml2 --without-dbus --with-modules --without-ns --without-imagemagick' Configured features: NOTIFY ACL GNUTLS LIBXML2 ZLIB MODULES THREADS Important settings: value of $LANG: en_CA.UTF-8 locale-coding-system: utf-8-unix Major mode: Debbugs Minor modes in effect: eros-mode: t global-undo-tree-mode: t undo-tree-mode: t ido-everywhere: t which-key-mode: t winner-mode: t key-chord-mode: t global-anzu-mode: t anzu-mode: t show-paren-mode: t recentf-mode: t tooltip-mode: t global-eldoc-mode: t electric-indent-mode: t menu-bar-mode: t file-name-shadow-mode: t global-font-lock-mode: t font-lock-mode: t auto-composition-mode: t auto-encryption-mode: t auto-compression-mode: t buffer-read-only: t column-number-mode: t line-number-mode: t transient-mark-mode: t Load-path shadows: /Users/roup/.emacs.d/utils/benchmark-init hides = /Users/roup/.emacs.d/elpa/benchmark-init-20150905.938/benchmark-init /Users/roup/.emacs.d/utils/benchmark-init-modes hides = /Users/roup/.emacs.d/elpa/benchmark-init-20150905.938/benchmark-init-modes= /Users/roup/.emacs.d/utils/sr-speedbar hides = /Users/roup/.emacs.d/elpa/sr-speedbar-20161025.831/sr-speedbar /Users/roup/.emacs.d/elpa/lispy-20210121.926/elpa hides = /Users/roup/.emacs.d/elpa/ivy-20210311.1638/elpa /Users/roup/.emacs.d/elpa/lfe-mode-20201007.2214/lfe-indent hides = /usr/local/share/emacs/site-lisp/lfe/lfe-indent /Users/roup/.emacs.d/elpa/lfe-mode-20201007.2214/lfe-mode hides = /usr/local/share/emacs/site-lisp/lfe/lfe-mode /Users/roup/.emacs.d/elpa/lfe-mode-20201007.2214/inferior-lfe hides = /usr/local/share/emacs/site-lisp/lfe/inferior-lfe /Users/roup/.emacs.d/elpa/soap-client-3.2.0/soap-client hides = /usr/local/Cellar/emacs/26.3/share/emacs/26.3/lisp/net/soap-client /Users/roup/.emacs.d/elpa/soap-client-3.2.0/soap-inspect hides = /usr/local/Cellar/emacs/26.3/share/emacs/26.3/lisp/net/soap-inspect /Users/roup/.emacs.d/elpa/let-alist-1.0.6/let-alist hides = /usr/local/Cellar/emacs/26.3/share/emacs/26.3/lisp/emacs-lisp/let-alist /Users/roup/.emacs.d/elpa/seq-2.22/seq hides = /usr/local/Cellar/emacs/26.3/share/emacs/26.3/lisp/emacs-lisp/seq /Users/roup/.emacs.d/elpa/nadvice-0.3/nadvice hides = /usr/local/Cellar/emacs/26.3/share/emacs/26.3/lisp/emacs-lisp/nadvice Features: (shadow emacsbug sendmail eieio-opt eros smex pel-numkpad pel-ccp ibuf-ext ibuffer ibuffer-loaddefs windmove shr-color shr svg dom browse-url flow-fill sort gnus-cite mail-extr gnus-async gnus-bcklg qp gnus-agent gnus-srvr gnus-score score-mode nnvirtual nntp gnus-ml gnus-msg disp-table nndoc gnus-cache gnus-dup gnus-art mm-uu mml2015 mm-view mml-smime smime dig pel-undo undo-tree diff misearch multi-isearch mm-archive network-stream starttls url-cache org-rmail org-mhe org-irc org-info org-gnus nnir gnus-sum gnus-group gnus-undo gnus-start gnus-cloud nnimap nnmail mail-source utf7 netrc nnoo parse-time gnus-spec gnus-int gnus-range message rfc822 mml mml-sec epa derived epg mailabbrev gmm-utils mailheader gnus-win gnus nnheader gnus-util rmail rmail-loaddefs mail-utils org-docview doc-view jka-compr image-mode org-bibtex bibtex org-bbdb org-w3m crm ido-completing-read+ memoize cus-edit cus-start cus-load minibuf-eldef debbugs-org org-element avl-tree generator org org-macro org-footnote org-pcomplete pcomplete org-list org-faces org-entities org-version ob-emacs-lisp ob ob-tangle org-src ob-ref ob-lob ob-table ob-keys ob-exp ob-comint ob-core ob-eval org-compat org-macs org-loaddefs format-spec cal-menu calendar cal-loaddefs debbugs-gnu add-log debbugs soap-client mm-decode mm-bodies mm-encode url-http tls gnutls url-auth mail-parse rfc2231 rfc2047 rfc2045 mm-util ietf-drums mail-prsvr url-gw nsm rmc puny url url-proxy url-privacy url-expand url-methods url-history url-cookie url-domsuf url-util mailcap warnings rng-xsd rng-dt rng-util xsd-regexp xml ace-link pel-skels-generic counsel xdg dired-x dired dired-loaddefs compile comint ansi-color ido-grid ido pel-completion pel-seq which-key indent-tools yafolding indent-tools-indentation-of winner pel-xref pel-text-transform pel-read pel-navigate pel-scroll key-seq pel-key-chord key-chord anzu term/xterm xterm paren tempo pel-skels-elisp pel-text-insert pel-window pel-tempo pel-skels pel-prompt lispy pcase swiper cl-extra ivy flx ivy-faces ivy-overlay colir color delsel lispy-inline subr-x thingatpt avy noutline outline easy-mmode etags xref project edebug lispy-tags mode-local find-func pel__hydra hydra lv pel-lispy regexp-opt flyspell pel-spell ispell cap-words superword subword imenu+ pel-imenu imenu elec-pair pel_keys recentf tree-widget wid-edit speedbar sb-image ezimage image dframe ls-lisp time-date delight pel-autoload pel--keys-macros pel--options pel--macros pel--base pel finder-inf geiser-impl help-fns radix-tree help-mode geiser-custom geiser-base ring info tool-bar edmacro kmacro package easymenu epg-config url-handlers url-parse auth-source cl-seq eieio eieio-core cl-macs eieio-loaddefs password-cache url-vars seq byte-opt gv bytecomp byte-compile cconv benchmark-init advice cl-loaddefs cl-lib mule-util tooltip eldoc electric uniquify ediff-hook vc-hooks lisp-float-type tabulated-list replace newcomment text-mode elisp-mode lisp-mode prog-mode register page menu-bar rfn-eshadow isearch timer select mouse jit-lock font-lock syntax facemenu font-core term/tty-colors frame cl-generic cham georgian utf-8-lang misc-lang vietnamese tibetan thai tai-viet lao korean japanese eucjp-ms cp51932 hebrew greek romanian slovak czech european ethiopic indian cyrillic chinese composite charscript charprop case-table epa-hook jka-cmpr-hook help simple abbrev obarray minibuffer cl-preloaded nadvice loaddefs button faces cus-face macroexp files text-properties overlay sha1 md5 base64 format env code-pages mule custom widget hashtable-print-readable backquote threads kqueue multi-tty make-network-process emacs) Memory information: ((conses 16 840205 372854) (symbols 48 54699 97) (miscs 40 697 2352) (strings 32 229530 157598) (string-bytes 1 6394735) (vectors 16 59391) (vector-slots 8 1074310 78064) (floats 8 3460 2680) (intervals 56 15506 2187) (buffers 992 50))