From: <tomas@tuxteam.de>
To: "Ludwig, Mark" <ludwig.mark@siemens.com>
Cc: "Pascal J. Bourguignon" <pjb@informatimago.com>,
"help-gnu-emacs@gnu.org" <help-gnu-emacs@gnu.org>
Subject: Re: Compilation warnings of ELisp seem wrong and misleading
Date: Mon, 30 Mar 2015 18:59:36 +0200 [thread overview]
Message-ID: <20150330165935.GA11134@tuxteam.de> (raw)
In-Reply-To: <BC5672F8AD4C054BAF167C9801500D1A0101AAF4E1@USSLMMBX003.net.plm.eds.com>
-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1
On Mon, Mar 30, 2015 at 03:40:21PM +0000, Ludwig, Mark wrote:
> "Pascal J. Bourguignon" wrote:
>
> > "Ludwig, Mark" <ludwig.mark@siemens.com> writes:
> >
> > > Greetings,
> > >
> > > I've been using an ancient Emacs (19.29) on Solaris and finally
> > > got around to installing a current one (24.4).
> > >
> > > I find my custom Elisp generates warnings that seem pretty stupid.
> > > For example:
> > >
> > > emacs.el:255:10:Warning: reference to free variable `if'
Bizarre.
> For context, the "let*" is on line 239; the warning
> (mentioned above as being on line 255 column 10) is
> referring to the form after the comment "Make the
> substitution." If you read the warnings carefully, you'll
> note that it warns about two different things on line 261,
> column 17. That line is the one with the comment, 'Now it's
> "strlcpy" or whatever.' Clearly, the byte-compiler is
> pretty confused....
At first blush, to me the following looks fishy:
> (let* ((c1 (string-to-char to1))
> (c2 (string-to-char to2))
> (ans 0))
[...]
> (cond ((= ans ?d)
> ;; Skip over: "if" "(DSOK)" "dstat" "= ..." "()"
> (forward-sexp 5)
> )
>
> ((= ans ?e)
> ;; Skip over:
> ;; "if" "(dstat = ...)" "goto" "EXIT"
> (forward-sexp 4)
> )
>
> (if (not (looking-at ";"))
> (error "First expected ';' not: \"%s\"" (buffer-substring (point)
Here: you're in the middle of a `cond' and the clause reads "(if ...)". I'd
expect `cond' to try to interpret "if" as a naked variable (granted, the error
message points at another place).
> (progn (end-of-line 1)
> (point)))))
> (save-excursion
> (goto-char if-pos) ; Go back to where we inserted "if"
> (insert "{
...likewise the `save-excursion' here.
And so on.
HTH
- -- tomás
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.4.12 (GNU/Linux)
iEYEARECAAYFAlUZgPcACgkQBcgs9XrR2kYznQCfa2FWYAipjWHgTbfS0lR4BV2L
TKAAniQtR5ddvmg1extvIKl5ZnkOeF1C
=KuKr
-----END PGP SIGNATURE-----
next prev parent reply other threads:[~2015-03-30 16:59 UTC|newest]
Thread overview: 11+ messages / expand[flat|nested] mbox.gz Atom feed top
[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 [this message]
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
2015-03-30 13:47 Ludwig, Mark
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=20150330165935.GA11134@tuxteam.de \
--to=tomas@tuxteam.de \
--cc=help-gnu-emacs@gnu.org \
--cc=ludwig.mark@siemens.com \
--cc=pjb@informatimago.com \
/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).