GNU bug report logs - #6750
Byte compiler: spurious message "cl used at runtime"

Previous Next

Package: emacs;

Reported by: Alan Mackenzie <acm <at> muc.de>

Date: Wed, 28 Jul 2010 18:05:02 UTC

Severity: minor

Tags: notabug

Done: Lars Magne Ingebrigtsen <larsi <at> gnus.org>

Bug is archived. No further changes may be made.

Full log


View this message in rfc822 format

From: Alan Mackenzie <acm <at> muc.de>
To: Stefan Monnier <monnier <at> iro.umontreal.ca>
Cc: 6750 <at> debbugs.gnu.org
Subject: bug#6750: Byte compiler: spurious message "cl used at runtime"
Date: Thu, 29 Jul 2010 19:03:06 +0000
Hi, Stefan,

On Thu, Jul 29, 2010 at 01:01:46AM +0200, Stefan Monnier wrote:
> > In this macro declaration:

> >     (defmacro c-declare-lang-variables ()
> >       `(progn
> >          ,@(mapcan (lambda (init)
> >                      `(,(if (elt init 2)
> >                             `(defvar ,(car init) nil ,(elt init 2))
> >                           `(defvar ,(car init) nil))
> >                        (make-variable-buffer-local ',(car init))))
> >                    (cdr c-lang-variable-inits))))

> > , (from cc-engine.el), the byte-compiler gives this warning:

> >     "Function `mapcan' from cl package called at runtime".

> > It is clear that the mapcan, being within a ,@ construct, does its work
> > at macro-expansion time, i.e. compile time.

> > Thus the warning message is wrong.  This is a bug.

> This macro will be in the .elc.  This means it can be called "at run
> time" (e.g. if you do M-: (c-declare-lang-variables ...) RET).

That brought a smile to my face.  It's pure sophistry. :-)  With no more
creativity than you've just shown, ANY use of mapcan could be "shown" to
be "use at runtime".  So why not shorten the warning message to

    "Function `mapcan' from cl package was used"
    
?  ;-)

Or, perhaps you could indulge me a little, and show an example of mapcan
(or some other cl function) which isn't "use at runtime".  You know as
well as I do, that there's no rigid separation of Lisp into compilation
and running phases.

I put it to you that that error message is not, in general, helpful.  I
think it should be restricted to uses of mapcan at runtime (in a defun)
or when it's in the form generated by a macro.

I'm trying to get rid of warnings messages in CC Mode.

>         Stefan

-- 
Alan Mackenzie (Nuremberg, Germany).




This bug report was last modified 13 years and 316 days ago.

Previous Next


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