bug-gnu-emacs
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

bug#11594: message-send-and-exit now fails


From: Andreas Schwab
Subject: bug#11594: message-send-and-exit now fails
Date: Thu, 31 May 2012 22:01:03 +0200
User-agent: Gnus/5.13 (Gnus v5.13) Emacs/24.0.97 (gnu/linux)

Johan Bockgård <bojohan@gnu.org> writes:

> The byte compiler seems broken:
>
>     emacs -Q
>
>     (setq m (byte-compile '(lambda () (defmacro m ()) (m))))
>
>     #[nil "\300\301\302\303B\"\210\301 \207" [defalias m macro #[nil 
> "\300\207" [nil] 1]] 4]
>
>     (funcall m)
>
>        => error: (invalid-function m)

byte code:
  args: nil
0       constant  defalias
1       constant  m
2       constant  macro
3       constant  <compiled-function>
      args: nil
    0       constant  nil
    1       return    

4       cons      
5       call      2
6       discard   
7       constant  m
8       call      0
9       return    

> In emacs-24 branch:
>
>     #[nil "\300\301\302\"\210\303\207" [defalias m (macro . #[nil "\300\207" 
> [nil] 1]) nil] 3]

byte code:
  args: nil
0       constant  defalias
1       constant  m
2       constant  <compiled macro>
      args: nil
    0       constant  nil
    1       return    

3       call      2
4       discard   
5       constant  nil
6       return    

There are two differences:

- (cons 'macro #[nil ...]) vs '(macro . #[nil ...]) (a performance
  regression)
- (m) is not macro-expanded

Andreas.

-- 
Andreas Schwab, schwab@linux-m68k.org
GPG Key fingerprint = 58CA 54C7 6D53 942B 1756  01D3 44D5 214B 8276 4ED5
"And now for something completely different."





reply via email to

[Prev in Thread] Current Thread [Next in Thread]