[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
bug#4845: 23.1.50; Uninterned symbols in .elc files
From: |
Michael Heerdegen |
Subject: |
bug#4845: 23.1.50; Uninterned symbols in .elc files |
Date: |
Tue, 19 Jan 2016 20:15:25 +0100 |
User-agent: |
Gnus/5.13 (Gnus v5.13) Emacs/25.0.50 (gnu/linux) |
John Wiegley <jwiegley@gmail.com> writes:
> 3. We then try to print and call the uninterned symbol directly. So what we
> are calling, and what defun defined, are not the same symbol.
But theoretically, the byte compiler could do it correctly.
This is how the compiled code looks like currently:
(defalias '#1=#:bar #[0 "[bytes...]" [message "function %s called" #1#] 3])
(#:bar)
If the second line would be
(#1#)
(as the compiler already correctly prints in the function body)
the thing would work AFAIU. I guess it doesn't because it is a
different expression printed separately.
> I recommend closure of this bug as expected behavior,
I think it's quite unexpected, unless you know about how byte
compilation to files works, and even then...
> unless there are further concerns.
I think this is quite a limitation worth to be fixed, if it is possible
with little effort.
If not, we should at least make the compiler raise an error when it
generates function calls like
(#:bar)
something like that is not very useful, in no situation.
Michael.