GNU bug report logs -
#6750
Byte compiler: spurious message "cl used at runtime"
Previous Next
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
Message #11 received at 6750 <at> debbugs.gnu.org (full text, mbox):
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 14 years and 6 days ago.
Previous Next
GNU bug tracking system
Copyright (C) 1999 Darren O. Benham,
1997,2003 nCipher Corporation Ltd,
1994-97 Ian Jackson.