unofficial mirror of help-gnu-emacs@gnu.org
 help / color / mirror / Atom feed
From: "Ludwig, Mark" <ludwig.mark@siemens.com>
To: "help-gnu-emacs@gnu.org" <help-gnu-emacs@gnu.org>
Subject: Compilation warnings of ELisp seem wrong and misleading
Date: Mon, 30 Mar 2015 13:47:41 +0000	[thread overview]
Message-ID: <BC5672F8AD4C054BAF167C9801500D1A0101AAF261@USSLMMBX003.net.plm.eds.com> (raw)

Greetings,

I've been using an ancient Emacs (19.29) on Solaris and finally
got around to installing a current one (24.4).

I don't normally compile my ".emacs" code, but stumbled
across a change in the compile code (compile-internal is no
longer present), and that prompted me to explicitly
byte-compile my custom Elisp code to see what other problems
that would expose, so I could take care of all of them at
the same time.

I find my custom Elisp generates warnings that seem pretty stupid.
For example:

emacs.el:255:10:Warning: reference to free variable `if'
emacs.el:219:8:Warning: reference to free variable `save-excursion'
emacs.el:331:41:Warning: reference to free variable `forward-char'
emacs.el:261:17:Warning: reference to free variable `insert'
emacs.el:261:17:Warning: reference to free variable `forward-sexp'

Those are all valid functions.  For example, here are lines 255-258:

	(if (not (= ans ?q))
	    (progn
	      (goto-char found-start)
	      (delete-region found-start found-end)))

This is inside a large-ish "let*" form (111 lines).

Most of this code is duplicated on Windows, where I'm using
Emacs 24.2 (just to give some context that my Elisp
knowledge isn't all completely ancient).

I can't see how these warnings can be correct, but there are
so many that they obscure the "meaningful" ones.  Are these
sorts of warnings known flaws in the byte compiler, do I
need to compile differently, am I doing something stupid, or
what?

BTW, I /very/ /much/ /like/ this warning:

emacs.el:1326:76:Warning: Use `with-current-buffer' rather than
    save-excursion+set-buffer

Thanks for that!

Cheers,

Mark Ludwig
Lifecycle Coll
Product Lifecycle Management

Siemens Industry Sector
Siemens Product Lifecycle Management Software Inc.
5939 Rice Creek Parkway
Shoreview, MN  55126 United States 
Tel.      :+1 (651) 855-6140
Fax      :+1 (651) 855-6280
ludwig.mark@siemens.com 
www.siemens.com/plm 





             reply	other threads:[~2015-03-30 13:47 UTC|newest]

Thread overview: 11+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2015-03-30 13:47 Ludwig, Mark [this message]
     [not found] <mailman.3018.1427724507.31049.help-gnu-emacs@gnu.org>
2015-03-30 14:39 ` Compilation warnings of ELisp seem wrong and misleading Pascal J. Bourguignon
2015-03-30 15:40   ` Ludwig, Mark
2015-03-30 16:59     ` tomas
2015-03-30 19:09       ` Ludwig, Mark
     [not found]   ` <mailman.3032.1427730039.31049.help-gnu-emacs@gnu.org>
2015-03-30 17:08     ` Pascal J. Bourguignon
2015-03-31  0:53 ` Emanuel Berg
2015-04-01 11:45   ` Ludwig, Mark
2015-04-01 12:02     ` tomas
2015-04-02 10:20     ` Philipp Stephani
     [not found]   ` <mailman.3123.1427888711.31049.help-gnu-emacs@gnu.org>
2015-04-01 23:08     ` Emanuel Berg

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

  List information: https://www.gnu.org/software/emacs/

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=BC5672F8AD4C054BAF167C9801500D1A0101AAF261@USSLMMBX003.net.plm.eds.com \
    --to=ludwig.mark@siemens.com \
    --cc=help-gnu-emacs@gnu.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).