unofficial mirror of emacs-devel@gnu.org 
 help / color / mirror / code / Atom feed
From: "Drew Adams" <drew.adams@oracle.com>
Subject: RE: [drew.adams@oracle.com: RE: weird defadvice bugwithbyte-compilation]
Date: Sun, 11 Dec 2005 22:11:45 -0800	[thread overview]
Message-ID: <DNEMKBNJBGPAOPIJOOICIEBGDAAA.drew.adams@oracle.com> (raw)
In-Reply-To: <upso2aml1.fsf@gnu.org>

    > It does, as far as I can tell. I don't understand all of it,
    > however, I admit. I still don't understand, for instance:
    >
    > 1. why byte-compiling the defadvice in bar.el would eval
    >    my-mode (my-mode does not even appear in bar.el)

    I think it doesn't eval it, it just sees that my-mode is not bound.
    The warning says "reference to free variable `my-mode'", see the
    backtrace.  This is a standard warning from the byte compiler, it is
    meant to help you detect typos in variable names.

OK. I was confused because it was the byte-compilation that led ultimately
to x-create-frame raising an unbound var error.

    > 2. why evaling the defadvice in foo.el would eval my-mode (the BODY of
    >    defadvice is not supposed to be quoted)

    Because defadvice byte-compiles the function it creates on the fly, I
    guess.

But it is only the defadvice in bar.el, not the defadvice in foo.el, that
has the keyword `compile'.

And even if it does byte-compile foo.el on the fly (for whatever reason),
why would it eval my-mode - the body of a defadvice is not supposed to need
to be quoted (it is not evaled by defadvice).

That is, I don't understand why a byte-compiler warning of a potentially
unbound variable would lead to a *Backtrace* being created - a warning is
not an error, and even byte-compiler errors (as opposed to warnings) do not
result in a *Backtrace*.

    > 5. why selecting (require 'foo) and doing eval-region does
    >    not manifest the bug, but putting the cursor after
    >   (require 'foo) and doing `C-x C-e' does manifest the bug.

    Because, by default, eval-expression-debug-on-error is t, and it
    affects C-x C-e.  If I set eval-expression-debug-on-error to nil,
    Emacs behaves with C-x C-e like it does with eval-region: it doesn't
    pop up the *Backtrace* buffer in a separate frame, and the bug doesn't
    happen.

Ah - thanks. That makes sense, given your explanation of the bug being
manifested in x-create-frame.

I don't understand, however, your statement that when the byte compiler
tries to display special-buffer *Compile Log* in a separate frame "it hits
the problem with the void variable again". What is the "problem with the
void variable"? For the byte-compiler it was only a question of displaying a
warning, there was no error to be raised. Why would display of *Compile Log*
in a separate frame raise an unbound-variable error?

  reply	other threads:[~2005-12-12  6:11 UTC|newest]

Thread overview: 45+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2005-12-05  2:36 [drew.adams@oracle.com: RE: weird defadvice bug with byte-compilation] Richard Stallman
2005-12-07 18:55 ` Chong Yidong
2005-12-08  4:53   ` Richard M. Stallman
2005-12-08 16:14     ` Drew Adams
2005-12-09 13:17       ` Eli Zaretskii
2005-12-09 14:07         ` Chong Yidong
2005-12-09 18:37         ` [drew.adams@oracle.com: RE: weird defadvice bug withbyte-compilation] Drew Adams
2005-12-10  4:14         ` [drew.adams@oracle.com: RE: weird defadvice bug with byte-compilation] Richard M. Stallman
2005-12-11 18:17           ` [drew.adams@oracle.com: RE: weird defadvice bug withbyte-compilation] Drew Adams
2005-12-12  5:23             ` Richard M. Stallman
2005-12-12  5:40               ` [drew.adams@oracle.com: RE: weird defadvice bugwithbyte-compilation] Drew Adams
2005-12-13  3:14                 ` Richard M. Stallman
2005-12-13  3:52                   ` [drew.adams@oracle.com: RE: weird defadvicebugwithbyte-compilation] Drew Adams
2005-12-13 23:33                     ` Richard M. Stallman
2005-12-14  1:05                       ` [drew.adams@oracle.com: RE: weirddefadvicebugwithbyte-compilation] Drew Adams
2005-12-14  1:24                         ` Johan Bockgård
2005-12-14  3:41                           ` [drew.adams@oracle.com: Drew Adams
2005-12-14  3:45                             ` [drew.adams@oracle.com:RE:weirddefadvicebugwithbyte-compilation] Drew Adams
2005-12-14 17:17                             ` [drew.adams@oracle.com: Johan Bockgård
2005-12-14 21:29                               ` [drew.adams@oracle.com:RE:weirddefadvicebugwithbyte-compilation] Drew Adams
2005-12-14 23:43                                 ` [drew.adams@oracle.com:RE:weirddefadvicebugwithbyte-compilation] Johan Bockgård
2005-12-15  1:46                                   ` [drew.adams@oracle.com:RE:weirddefadvicebugwithbyte-compilation] Drew Adams
2005-12-11 20:21         ` [drew.adams@oracle.com: RE: weird defadvice bug with byte-compilation] Eli Zaretskii
2005-12-11 21:35           ` [drew.adams@oracle.com: RE: weird defadvice bug withbyte-compilation] Drew Adams
2005-12-12  5:52             ` Eli Zaretskii
2005-12-12  6:11               ` Drew Adams [this message]
2005-12-12  6:44                 ` [drew.adams@oracle.com: RE: weird defadvicebugwithbyte-compilation] Drew Adams
2005-12-12 21:22                   ` Eli Zaretskii
2005-12-12 21:53                     ` [drew.adams@oracle.com: RE: weirddefadvicebugwithbyte-compilation] Drew Adams
2005-12-13  4:30                       ` Eli Zaretskii
2005-12-13  4:59                         ` [drew.adams@oracle.com: Drew Adams
2005-12-12  5:23           ` [drew.adams@oracle.com: RE: weird defadvice bug with byte-compilation] Richard M. Stallman
2005-12-12  6:11             ` Eli Zaretskii
2005-12-13  3:14               ` Richard M. Stallman
2005-12-13  4:39                 ` Eli Zaretskii
2005-12-13 23:33                   ` Richard M. Stallman
2005-12-14 19:38                     ` Eli Zaretskii
2005-12-15  2:09                       ` Richard M. Stallman
2005-12-15  4:46                         ` Eli Zaretskii
2005-12-16  1:51                           ` Richard M. Stallman
2005-12-16 19:48                             ` Eli Zaretskii
2005-12-16 20:14                             ` Eli Zaretskii
2005-12-17  1:05                               ` Richard M. Stallman
2005-12-17  8:29                                 ` Eli Zaretskii
2005-12-17 23:59                                   ` Richard M. Stallman

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=DNEMKBNJBGPAOPIJOOICIEBGDAAA.drew.adams@oracle.com \
    --to=drew.adams@oracle.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.
Code repositories for project(s) associated with this public inbox

	https://git.savannah.gnu.org/cgit/emacs.git

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).