[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."