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

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

Re: Change in bytecomp.el breaks Gnus


From: Katsumi Yamaoka
Subject: Re: Change in bytecomp.el breaks Gnus
Date: Thu, 11 Nov 2004 16:40:53 +0900
User-agent: Gnus/5.110003 (No Gnus v0.3) Emacs/21.3.50 (gnu/linux)

>>>>>> In <address@hidden> Henrik Enberg wrote:

>> Version 2.157 of bytecomp.el causes Gnus to fail with the following
>> backtrace: 

>> Debugger entered--Lisp error: (void-function t)
>>   t("nnml+sent:news" (1 . 888))
>>   gnus-activate-group("nnml+sent:news" scan)
>>   gnus-get-unread-articles(nil)
>>   gnus-setup-news(nil nil nil)
> [...]
>>   gnus-1(nil nil nil)
>>   gnus()

>>>>> In <address@hidden> Katsumi Yamaoka wrote:

> I got the same error last night (in Japan) and noticed removing
> gnus-start.elc seems to help.  I don't think it's a Gnus' fault.
> Now I'm using the version 2.156 and rebuilt Emacs.

I found that the problem is caused if a Lisp source contains the
following forms:

(eval-when-compile
  (defsubst foo ()))

(defun bar () (foo))

Where `foo' is surrounded by `eval-when-compile' since there is
no necessity of using it at run-time.  In that case, the
function definition for `foo' is registered into the
`byte-compile-function-environment' variable as `(foo . t)', and
the byte compiler complains as follows:

In bar:
foobar.el:4:8:Warning: attempt to inline `t' before it was defined
foobar.el:4:8:Warning: `t' called as a function

In end of data:
foobar.el:4:1:Warning: the function `t' is not known to be defined.

I used this technique in many places of some packages including
Gnus in oder to reduce useless function symbols at run-time.  If
such a technique is forbidden, I will get into a plight.  Could
you also support the `(eval-when-compile (defsubst ...' forms?

Thanks in advance.




reply via email to

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