GNU bug report logs - #6275
23.2; warning-suppress-types is void after defadvice

Previous Next

Package: emacs;

Reported by: SAITO Takuya <tabmore <at> gmail.com>

Date: Wed, 26 May 2010 15:46:01 UTC

Severity: normal

Merged with 6373, 6682

Found in version 23.2

Done: Stefan Monnier <monnier <at> iro.umontreal.ca>

Bug is archived. No further changes may be made.

Full log


View this message in rfc822 format

From: help-debbugs <at> gnu.org (GNU bug Tracking System)
To: Stefan Monnier <monnier <at> iro.umontreal.ca>
Cc: tracker <at> debbugs.gnu.org
Subject: bug#6373: closed (23.2; advice.el unbinding warning-suppress-types)
Date: Wed, 09 Jun 2010 01:28:03 +0000
[Message part 1 (text/plain, inline)]
Your message dated Tue, 08 Jun 2010 21:22:25 -0400
with message-id <jwv631t80nv.fsf-monnier+emacs <at> gnu.org>
and subject line Re: bug#6275: 23.2; warning-suppress-types is void after defadvice
has caused the GNU bug report #6275,
regarding 23.2; advice.el unbinding warning-suppress-types
to be marked as done.

(If you believe you have received this mail in error, please contact
help-debbugs <at> gnu.org.)


-- 
6275: http://debbugs.gnu.org/cgi/bugreport.cgi?bug=6275
GNU Bug Tracking System
Contact help-debbugs <at> gnu.org with problems
[Message part 2 (message/rfc822, inline)]
From: Kevin Ryde <user42 <at> zip.com.au>
To: bug-gnu-emacs <at> gnu.org
Subject: 23.2; advice.el unbinding warning-suppress-types
Date: Tue, 08 Jun 2010 08:54:22 +1000
If advice.el byte-compiles a piece of advice which causes byte compiler
warnings, then it unbinds `warning-suppress-types'.  For example

    (defun foo ()
      (message "hi"))
    (defadvice foo (after my-advice activate compile)
      (car))
    (display-warning 'bar "some thing")
    =>
    Error void-variable warning-suppress-types

It seems ad-compile-function does a let bind of warning-suppress-types
without ensuring warnings.el has been loaded.



In GNU Emacs 23.2.1 (i486-pc-linux-gnu, GTK+ Version 2.20.0)
 of 2010-05-16 on raven, modified by Debian
configured using `configure  '--build' 'i486-linux-gnu' '--build' 'i486-linux-gnu' '--prefix=/usr' '--sharedstatedir=/var/lib' '--libexecdir=/usr/lib' '--localstatedir=/var/lib' '--infodir=/usr/share/info' '--mandir=/usr/share/man' '--with-pop=yes' '--enable-locallisppath=/etc/emacs23:/etc/emacs:/usr/local/share/emacs/23.2/site-lisp:/usr/local/share/emacs/site-lisp:/usr/share/emacs/23.2/site-lisp:/usr/share/emacs/site-lisp:/usr/share/emacs/23.2/leim' '--with-x=yes' '--with-x-toolkit=gtk' '--with-toolkit-scroll-bars' 'build_alias=i486-linux-gnu' 'CFLAGS=-DDEBIAN -g -O2' 'LDFLAGS=-g' 'CPPFLAGS=''

Important settings:
  value of $LC_ALL: nil
  value of $LC_COLLATE: nil
  value of $LC_CTYPE: nil
  value of $LC_MESSAGES: nil
  value of $LC_MONETARY: nil
  value of $LC_NUMERIC: nil
  value of $LC_TIME: nil
  value of $LANG: en_AU
  value of $XMODIFIERS: nil
  locale-coding-system: iso-latin-1-unix
  default enable-multibyte-characters: t


[Message part 3 (message/rfc822, inline)]
From: Stefan Monnier <monnier <at> iro.umontreal.ca>
To: SAITO Takuya <tabmore <at> gmail.com>
Subject: Re: bug#6275: 23.2; warning-suppress-types is void after defadvice
Date: Tue, 08 Jun 2010 21:22:25 -0400
forcemerge 6275 6373
thanks

> Debugger entered--Lisp error: (void-variable warning-suppress-types)
[...]
> ad-compile-function() binds warning-suppress-types with let.
> I guess warnings.el is loaded inside of that let-binding.

Indeed, thank you.  I've installed the patch below which should fix it.


        Stefan


=== modified file 'lisp/emacs-lisp/advice.el'
--- lisp/emacs-lisp/advice.el	2010-02-15 20:03:22 +0000
+++ lisp/emacs-lisp/advice.el	2010-06-09 01:16:08 +0000
@@ -2684,6 +2684,8 @@
       ;; because `byte-compile' uses `fset':
       (ad-with-auto-activation-disabled
        (require 'bytecomp)
+       (require 'warnings)              ;To define warning-suppress-types
+                                        ;before we let-bind it.
        (let ((symbol (make-symbol "advice-compilation"))
 	     (byte-compile-warnings byte-compile-warnings)
              ;; Don't pop up windows showing byte-compiler warnings.



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

Previous Next


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