Subject: bug#6275: closed (Re: bug#6275: 23.2; warning-suppress-types is void after defadvice)

From: [email-masked] (GNU bug Tracking System)
Date: Wed, 09 Jun 2010 01:28:03 +0000

Your bug report

#6275: 23.2; warning-suppress-types is void after defadvice

which was filed against the emacs package, has been closed.

The explanation is attached below, along with your original report.
If you require more details, please reply to [email-masked].

-- 
6275: http://debbugs.gnu.org/cgi/bugreport.cgi?bug=6275
GNU Bug Tracking System
Contact [email-masked] with problems

Subject: Re: bug#6275: 23.2; warning-suppress-types is void after defadvice
From: Stefan Monnier <[email-masked]>
To: SAITO Takuya <[email-masked]>
Date: Tue, 08 Jun 2010 21:22:25 -0400
List-Id: <debbugs-submit.debbugs.gnu.org>

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.

Subject: 23.2; warning-suppress-types is void after defadvice
From: SAITO Takuya <[email-masked]>
To: [email-masked]
Date: Wed, 26 May 2010 23:28:50 +0900 (JST)
List-Id: <debbugs-submit.debbugs.gnu.org>

Start Emacs-23.2 with "emacs -Q" and evaluate below
with \C-x\C-e in *scratch* buffer:

(defadvice forward-line (before sample activate compile) (setq xxx zzz))

(byte-compile (lambda () (setq xxx zzz)))

then, *Backtrace* buffer is displayed

Debugger entered--Lisp error: (void-variable warning-suppress-types)
  display-warning(bytecomp "Symbol's value as variable is void: warning-suppress-types" :error "*Compile-Log*")
  byte-compile-log-warning("Symbol's value as variable is void: warning-suppress-types" nil :error)
  byte-compile-report-error((void-variable warning-suppress-types))
  byte-compile((lambda nil (setq xxx zzz)))
  eval((byte-compile (lambda nil (setq xxx zzz))))
  eval-last-sexp-1(nil)
  eval-last-sexp(nil)
  call-interactively(eval-last-sexp nil nil)

ad-compile-function() binds warning-suppress-types with let.
I guess warnings.el is loaded inside of that let-binding.

In GNU Emacs 23.2.1 (i386-mingw-nt6.0.6002)
 of 2010-05-08 on G41R2F1
Windowing system distributor `Microsoft Corp.', version 6.0.6002
configured using `configure --with-gcc (3.4) --no-opt --cflags -Ic:/xpm/include'

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: JPN
  value of $XMODIFIERS: nil
  locale-coding-system: cp932
  default enable-multibyte-characters: t

Major mode: Lisp Interaction

Minor modes in effect:
  tooltip-mode: t
  mouse-wheel-mode: t
  tool-bar-mode: t
  menu-bar-mode: t
  file-name-shadow-mode: t
  global-font-lock-mode: t
  font-lock-mode: t
  blink-cursor-mode: t
  auto-encryption-mode: t
  auto-compression-mode: t
  line-number-mode: t
  transient-mark-mode: t

Recent input:
<help-echo> <help-echo> <down-mouse-1> <mouse-1> C-y 
C-p C-p C-e C-x C-e C-n C-x C-e q M-x r e p o <tab> 
r <tab> <return>

Recent messages:
For information about GNU Emacs and the GNU system, type C-h C-a.
Mark set
forward-line
Entering debugger...
Back to top level.
Making completion list...

Load-path shadows:
None found.

Features:
(shadow sort mail-extr message ecomplete rfc822 mml mml-sec
password-cache mm-decode mm-bodies mm-encode mailcap mail-parse rfc2231
rfc2047 rfc2045 qp ietf-drums mailabbrev nnheader gnus-util netrc
time-date mm-util mail-prsvr gmm-utils wid-edit mailheader canlock sha1
hex-util hashcash mail-utils emacsbug help-mode easymenu view debug
warnings byte-opt bytecomp byte-compile advice help-fns advice-preload
japan-util tooltip ediff-hook vc-hooks lisp-float-type mwheel dos-w32
disp-table ls-lisp w32-win w32-vars tool-bar dnd fontset image fringe
lisp-mode register page menu-bar rfn-eshadow timer select scroll-bar
mldrag mouse jit-lock font-lock syntax facemenu font-core frame cham
georgian utf-8-lang misc-lang vietnamese tibetan thai tai-viet lao
korean japanese hebrew greek romanian slovak czech european ethiopic
indian cyrillic chinese case-table epa-hook jka-cmpr-hook help simple
abbrev loaddefs button minibuffer faces cus-face files text-properties
overlay md5 base64 format env code-pages mule custom widget
hashtable-print-readable backquote make-network-process multi-tty emacs)