GNU bug report logs - #11938
24.1.50; Some not so useful CL related byte compiler warnings

Previous Next

Package: emacs;

Reported by: michael_heerdegen <at> web.de

Date: Fri, 13 Jul 2012 18:06:02 UTC

Severity: normal

Found in version 24.1.50

Done: Stefan Monnier <monnier <at> IRO.UMontreal.CA>

Bug is archived. No further changes may be made.

Full log


View this message in rfc822 format

From: Michael Heerdegen <michael_heerdegen <at> web.de>
To: 11938 <at> debbugs.gnu.org
Subject: bug#11938: 24.1.50; Some not so useful CL related byte compiler warnings
Date: Fri, 13 Jul 2012 20:00:23 +0200
Hi,

I create an example file with the following content:

(eval-when-compile
  (require 'cl))

(defvar my-holiday-alist
      '((2012 . ((( 1  1) . "New Year")))))

(defun* my-holidayp (&optional date no-warn-if-no-info)
  (save-excursion
    (progv '(a b year) date
      (cdr (assoc (list a b)
                  (cdr (or (assoc year my-holiday-alist)
                           (prog1 nil   ;always return nil
                             (push (cons year ()) my-holiday-alist) ;; --> Warn only one time
                             (unless no-warn-if-no-info
                               (ding)
                               (message "Note: No holiday info for %s in `my-holiday-alist'." year)
                               (sit-for 3))))))))))

(labels ((fac (x) (if (< x 2) 1 (* x (fac (1- x))))))
  (defun test () (fac 5)))


If I byte compile it, I get the following warnings:

progv-bug.el:7:37:Warning: global/dynamic var `body' lacks a prefix
progv-bug.el:10:25:Warning: reference to free variable `a'
progv-bug.el:10:27:Warning: reference to free variable `b'
progv-bug.el:11:35:Warning: reference to free variable `year'
progv-bug.el:19:1:Warning: `labels' is an obsolete function (as of 24.2); use
    `(quote cl-labels)' instead.


In detail:

  progv-bug.el:7:37:Warning: global/dynamic var `body' lacks a prefix

Dunno what that means, the code doesn't include such a variable.

  progv-bug.el:10:25:Warning: reference to free variable `a'
  progv-bug.el:10:27:Warning: reference to free variable `b'
  progv-bug.el:11:35:Warning: reference to free variable `year'

Not very useful, since the variables' values are never looked up
before they are bound, but ok, I can live with it.

  progv-bug.el:19:1:Warning: `labels' is an obsolete function (as of 24.2); use
      `(quote cl-labels)' instead.

What does `(quote cl-labels)' mean?  I guess this should be just
`cl-labels'.


Thanks,

Michael.




In GNU Emacs 24.1.50.1 (i486-pc-linux-gnu, GTK+ Version 3.4.2)
 of 2012-07-12 on keller, modified by Debian
 (emacs-snapshot package, version 2:20120712-1)
Windowing system distributor `The X.Org Foundation', version 11.0.11201902
Configured using:
 `configure '--build' 'i486-linux-gnu' '--host' 'i486-linux-gnu'
 '--prefix=/usr' '--sharedstatedir=/var/lib' '--libexecdir=/usr/lib'
 '--localstatedir=/var' '--infodir=/usr/share/info'
 '--mandir=/usr/share/man' '--with-pop=yes'
 '--enable-locallisppath=/etc/emacs-snapshot:/etc/emacs:/usr/local/share/emacs/24.1.50/site-lisp:/usr/local/share/emacs/site-lisp:/usr/share/emacs/24.1.50/site-lisp:/usr/share/emacs/site-lisp'
 '--without-compress-info' '--with-crt-dir=/usr/lib/i386-linux-gnu/'
 '--with-x=yes' '--with-x-toolkit=gtk3' '--with-imagemagick=yes'
 'build_alias=i486-linux-gnu' 'host_alias=i486-linux-gnu'
 'CFLAGS=-DDEBIAN -DSITELOAD_PURESIZE_EXTRA=5000 -g -O2' 'LDFLAGS=-g
 -Wl,--as-needed -znocombreloc' 'CPPFLAGS=-D_FORTIFY_SOURCE=2''





This bug report was last modified 12 years and 364 days ago.

Previous Next


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