unofficial mirror of bug-gnu-emacs@gnu.org 
 help / color / mirror / code / Atom feed
* bug#21724: 25.0.50; (void-function (setf epg-context-armor))
       [not found]   ` <b4mr3kzy583.fsf@jpl.org>
@ 2015-10-21  9:03     ` Katsumi Yamaoka
  2015-10-22 23:57       ` Katsumi Yamaoka
  0 siblings, 1 reply; 5+ messages in thread
From: Katsumi Yamaoka @ 2015-10-21  9:03 UTC (permalink / raw)
  To: 21724; +Cc: Nicolas Petton

References: <http://thread.gmane.org/gmane.emacs.diffs/132036>

On Tue, 13 Oct 2015 09:36:28 +0900, Katsumi Yamaoka wrote:
> On Sun, 11 Oct 2015 21:03:07 +0000, Nicolas Petton wrote:
>>     * lisp/gnus/auth-source.el (auth-source-epa-make-gpg-token): Replace an
>>       usage of `epg-context-set-armor' with `setf'.
> [...]
>> -    (epg-context-set-armor context t)
>> +    (setf (epg-context-armor context) t)

> This doesn't seem to be expanded properly when building Emacs:

> In end of data:
> gnus/auth-source.el:2145:1:Warning: the function `(setf epg-context-armor)' is
>     not known to be defined.

> How do we fix it?

I got:

Debugger entered--Lisp error: (void-function \(setf\ epg-context-armor\))

Recipe:

$ emacs -Q
load: lisp/gnus/auth-source.elc
eval: (auth-source-epa-make-gpg-token "foo" "bar")

To fix it, epg.el(c) is required when compiling auth-source.el,
I think.  Though once I merged the change to the Gnus git master,
I reverted it thereafter, since old Emacsen that Gnus supports do
not have the setf-method for epg-context-armor.

Regards,





^ permalink raw reply	[flat|nested] 5+ messages in thread

* bug#21724: 25.0.50; (void-function (setf epg-context-armor))
  2015-10-21  9:03     ` bug#21724: 25.0.50; (void-function (setf epg-context-armor)) Katsumi Yamaoka
@ 2015-10-22 23:57       ` Katsumi Yamaoka
  2015-10-23  0:27         ` Glenn Morris
  0 siblings, 1 reply; 5+ messages in thread
From: Katsumi Yamaoka @ 2015-10-22 23:57 UTC (permalink / raw)
  To: 21724-done; +Cc: Nicolas Petton

On Wed, 21 Oct 2015 18:03:38 +0900, Katsumi Yamaoka wrote:
> References: <http://thread.gmane.org/gmane.emacs.diffs/132036>

>>> -    (epg-context-set-armor context t)
>>> +    (setf (epg-context-armor context) t)

> Debugger entered--Lisp error: (void-function \(setf\ epg-context-armor\))

> To fix it, epg.el(c) is required when compiling auth-source.el,
> I think.

First I tried adding: (eval-when-compile (require 'epg))
It fixed the setf compilation problem.  However, the byte compiler
got to issue a new warning as follows:

In end of data:
auth-source.el:2145:1:Warning: the following functions might not be defined at
    runtime: epg-context-set-passphrase-callback, epg-decrypt-string,
    epg-encrypt-string

So, I'm not quite sure why it helps, but I wrapped the existing
autoload settings for those functions with `eval-and-compile':

<http://article.gmane.org/gmane.emacs.diffs/132162>





^ permalink raw reply	[flat|nested] 5+ messages in thread

* bug#21724: 25.0.50; (void-function (setf epg-context-armor))
  2015-10-22 23:57       ` Katsumi Yamaoka
@ 2015-10-23  0:27         ` Glenn Morris
  2015-10-23  2:40           ` Katsumi Yamaoka
  0 siblings, 1 reply; 5+ messages in thread
From: Glenn Morris @ 2015-10-23  0:27 UTC (permalink / raw)
  To: 21724; +Cc: yamaoka

Katsumi Yamaoka wrote:

> So, I'm not quite sure why it helps, but I wrapped the existing
> autoload settings for those functions with `eval-and-compile':

IMO it is better to move the epg autoloads after the epg eval-when-compile.





^ permalink raw reply	[flat|nested] 5+ messages in thread

* bug#21724: 25.0.50; (void-function (setf epg-context-armor))
  2015-10-23  0:27         ` Glenn Morris
@ 2015-10-23  2:40           ` Katsumi Yamaoka
  2015-10-23  4:05             ` Glenn Morris
  0 siblings, 1 reply; 5+ messages in thread
From: Katsumi Yamaoka @ 2015-10-23  2:40 UTC (permalink / raw)
  To: Glenn Morris; +Cc: 21724

On Thu, 22 Oct 2015 20:27:16 -0400, Glenn Morris wrote:
> Katsumi Yamaoka wrote:
>> So, I'm not quite sure why it helps, but I wrapped the existing
>> autoload settings for those functions with `eval-and-compile':

> IMO it is better to move the epg autoloads after the epg eval-when-compile.

Thanks.  I see why adding (eval-when-compile (require 'epg))
caused a new warning.  It marked all the epg functions including
those autoloads maybe non-existent at the run-time, didn't it?
Committed.





^ permalink raw reply	[flat|nested] 5+ messages in thread

* bug#21724: 25.0.50; (void-function (setf epg-context-armor))
  2015-10-23  2:40           ` Katsumi Yamaoka
@ 2015-10-23  4:05             ` Glenn Morris
  0 siblings, 0 replies; 5+ messages in thread
From: Glenn Morris @ 2015-10-23  4:05 UTC (permalink / raw)
  To: Katsumi Yamaoka; +Cc: 21724

Katsumi Yamaoka wrote:

> Thanks.  I see why adding (eval-when-compile (require 'epg))
> caused a new warning.  It marked all the epg functions including
> those autoloads maybe non-existent at the run-time, didn't it?

Yes. I didn't investigate, but it's probably a compiler bug.
It doesn't properly track autoloaded-but-not-actually-defun'd definitions
before eval-when-compile, so whatever statement comes last wins.





^ permalink raw reply	[flat|nested] 5+ messages in thread

end of thread, other threads:[~2015-10-23  4:05 UTC | newest]

Thread overview: 5+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
     [not found] <20151011210306.16935.15935@vcs.savannah.gnu.org>
     [not found] ` <E1ZlNlr-0004QG-3U@vcs.savannah.gnu.org>
     [not found]   ` <b4mr3kzy583.fsf@jpl.org>
2015-10-21  9:03     ` bug#21724: 25.0.50; (void-function (setf epg-context-armor)) Katsumi Yamaoka
2015-10-22 23:57       ` Katsumi Yamaoka
2015-10-23  0:27         ` Glenn Morris
2015-10-23  2:40           ` Katsumi Yamaoka
2015-10-23  4:05             ` Glenn Morris

Code repositories for project(s) associated with this public inbox

	https://git.savannah.gnu.org/cgit/emacs.git

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).