Gnus development mailing list
 help / color / mirror / Atom feed
* declare-function in files from Gnus (hashcash.el, imap.el)
@ 2007-11-30 22:56 Reiner Steib
  2007-11-30 23:27 ` Glenn Morris
                   ` (2 more replies)
  0 siblings, 3 replies; 22+ messages in thread
From: Reiner Steib @ 2007-11-30 22:56 UTC (permalink / raw)
  To: ding, emacs-devel

Hi,

I think the following changes...

2007-11-27  Dan Nicolaescu  <dann@ics.uci.edu>
[...]
	* mail/hashcash.el (message-narrow-to-headers-or-head)
	(message-fetch-field, message-goto-eoh)
	(message-narrow-to-headers):
	[...] Declare as functions.

2007-11-29  Glenn Morris  <rgm@gnu.org>
[...]
	* net/imap.el (sasl-find-mechanism, sasl-mechanism-name)
	(sasl-make-client, sasl-next-step, sasl-step-data)
	(sasl-step-set-data)
	[...] Declare as functions.

... will break compatibility of Gnus with Emacs 21, Emacs 22.1 and
XEmacs when synced to Gnus repository (doesn't happen immediately,
because Miles is on a trip).  

The files came from Gnus and are only used by Gnus, AFAIK.  We could
probably skip these changes when syncing, keeping the files identical
simplifies maintenance.

Maybe we could add (defalias 'declare-function 'ignore ...) (like in
Emacs 22.2) to `gnus/lisp/dgnushack.el' (in Gnus).

Ideas?

Bye, Reiner.
-- 
       ,,,
      (o o)
---ooO-(_)-Ooo---  |  PGP key available  |  http://rsteib.home.pages.de/

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

* Re: declare-function in files from Gnus (hashcash.el, imap.el)
  2007-11-30 22:56 declare-function in files from Gnus (hashcash.el, imap.el) Reiner Steib
@ 2007-11-30 23:27 ` Glenn Morris
  2007-12-01 18:35   ` Reiner Steib
  2007-12-01 21:42 ` syncing from Emacs to Gnus [was Re: declare-function in files from Gnus (hashcash.el, imap.el)] Glenn Morris
       [not found] ` <fir8np$3br$1@ger.gmane.org>
  2 siblings, 1 reply; 22+ messages in thread
From: Glenn Morris @ 2007-11-30 23:27 UTC (permalink / raw)
  To: ding; +Cc: emacs-devel

Reiner Steib wrote:

> Maybe we could add (defalias 'declare-function 'ignore ...) (like in
> Emacs 22.2) to `gnus/lisp/dgnushack.el' (in Gnus).

I think that's the best idea. This would let us add similar statements
to files in gnus/. (I just posted to ding suggesting this; may as well
use this thread to discuss it rather than that one.)

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

* Re: declare-function in files from Gnus (hashcash.el, imap.el)
  2007-11-30 23:27 ` Glenn Morris
@ 2007-12-01 18:35   ` Reiner Steib
  2007-12-01 18:54     ` Dan Nicolaescu
  2007-12-01 21:50     ` Glenn Morris
  0 siblings, 2 replies; 22+ messages in thread
From: Reiner Steib @ 2007-12-01 18:35 UTC (permalink / raw)
  To: Glenn Morris; +Cc: ding, emacs-devel

On Sat, Dec 01 2007, Glenn Morris wrote:

> Reiner Steib wrote:
>
>> Maybe we could add (defalias 'declare-function 'ignore ...) (like in
>> Emacs 22.2) to `gnus/lisp/dgnushack.el' (in Gnus).
>
> I think that's the best idea. 

I'm not so sure.  Several problems come to my mind:

- `dgnushack.el' itself is considered harmful by some people.  Instead
  of compiling all lisp files at once, the make procedure should maybe
  call "emacs ... -f batch-byte-compile FILE.el" for each file as the
  Makefile in Emacs does.

- When compiling with Emacs 22.1 (or Emacs 21) even with `ignore', I
  get additional bogus warnings:

  /usr/bin/emacs-22.1 -Q -batch --eval \
  "(unless (fboundp 'declare-function) (defalias 'declare-function 'ignore))" \
  -f batch-byte-compile emacs/lisp/net/imap.el 

  In toplevel form:
  imap.el:969:19:Warning: reference to free variable `sasl-find-mechanism'
  imap.el:970:19:Warning: reference to free variable `sasl-mechanism-name'
  imap.el:971:19:Warning: reference to free variable `sasl-make-client'
  imap.el:971:57:Warning: reference to free variable `name'
  imap.el:971:62:Warning: reference to free variable `service'
  imap.el:971:70:Warning: reference to free variable `server'
  imap.el:972:19:Warning: reference to free variable `sasl-next-step'
  imap.el:972:54:Warning: reference to free variable `step'
  imap.el:973:19:Warning: reference to free variable `sasl-step-data'
  imap.el:974:19:Warning: reference to free variable `sasl-step-set-data'
  imap.el:974:52:Warning: reference to free variable `data'
  
  In end of data:
  imap.el:2969:1:Warning: the following functions are not known to be defined:
      mechanism, client, step, sasl-mechanism-name, sasl-make-client,
      sasl-next-step, sasl-step-data, sasl-step-set-data
  Wrote [...]/emacs/lisp/net/imap.elc

- When loading `*.el' or evaluating the buffer (sometimes necessary to
  get a better backtrace or for testing), you get:

  eval-buffer: Symbol's function definition is void: declare-function

- Doesn't it work for XEmacs?  When building an XEmacs package,
  `dgnushack.el' isn't used, I'd guess.

> This would let us add similar statements to files in gnus/. 

Please don't do this yet.  Let's wait until we come to a good solution
in this thread and until Miles has synched the current
declare-function changes to Gnus and we see which (other) problems it
may cause for the stand-alone Gnus.

> (I just posted to ding suggesting this; may as well use this thread
> to discuss it rather than that one.)

Yes.  I hadn't seen your message when writing/sending mine.

Bye, Reiner.
-- 
       ,,,
      (o o)
---ooO-(_)-Ooo---  |  PGP key available  |  http://rsteib.home.pages.de/

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

* Re: declare-function in files from Gnus (hashcash.el, imap.el)
  2007-12-01 18:35   ` Reiner Steib
@ 2007-12-01 18:54     ` Dan Nicolaescu
  2007-12-01 20:35       ` Glenn Morris
  2007-12-01 21:50     ` Glenn Morris
  1 sibling, 1 reply; 22+ messages in thread
From: Dan Nicolaescu @ 2007-12-01 18:54 UTC (permalink / raw)
  To: Glenn Morris; +Cc: ding, emacs-devel

Reiner Steib <reinersteib+gmane@imap.cc> writes:

  > On Sat, Dec 01 2007, Glenn Morris wrote:
  > 
  > > Reiner Steib wrote:
  > >
  > >> Maybe we could add (defalias 'declare-function 'ignore ...) (like in
  > >> Emacs 22.2) to `gnus/lisp/dgnushack.el' (in Gnus).
  > >
  > > I think that's the best idea. 
  > 
  > I'm not so sure.  Several problems come to my mind:
  > 
  > - `dgnushack.el' itself is considered harmful by some people.  Instead
  >   of compiling all lisp files at once, the make procedure should maybe
  >   call "emacs ... -f batch-byte-compile FILE.el" for each file as the
  >   Makefile in Emacs does.
  > 
  > - When compiling with Emacs 22.1 (or Emacs 21) even with `ignore', I
  >   get additional bogus warnings:
  > 
  >   /usr/bin/emacs-22.1 -Q -batch --eval \
  >   "(unless (fboundp 'declare-function) (defalias 'declare-function 'ignore))" \

(unless (fboundp 'declare-function) (defmacro declare-function (&rest args)))

should work better.

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

* Re: declare-function in files from Gnus (hashcash.el, imap.el)
  2007-12-01 18:54     ` Dan Nicolaescu
@ 2007-12-01 20:35       ` Glenn Morris
  2007-12-01 20:40         ` Dan Nicolaescu
  0 siblings, 1 reply; 22+ messages in thread
From: Glenn Morris @ 2007-12-01 20:35 UTC (permalink / raw)
  To: Dan Nicolaescu; +Cc: ding, emacs-devel

Dan Nicolaescu wrote:

> (unless (fboundp 'declare-function) (defmacro declare-function (&rest args)))

Should we be using `(defmacro declare-function (&rest args)))' in
byte-run.el in EMACS_22_BASE, then?

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

* Re: declare-function in files from Gnus (hashcash.el, imap.el)
  2007-12-01 20:35       ` Glenn Morris
@ 2007-12-01 20:40         ` Dan Nicolaescu
  0 siblings, 0 replies; 22+ messages in thread
From: Dan Nicolaescu @ 2007-12-01 20:40 UTC (permalink / raw)
  To: Glenn Morris; +Cc: ding, emacs-devel

Glenn Morris <rgm@gnu.org> writes:

  > Dan Nicolaescu wrote:
  > 
  > > (unless (fboundp 'declare-function) (defmacro declare-function (&rest args)))
  > 
  > Should we be using `(defmacro declare-function (&rest args)))' in
  > byte-run.el in EMACS_22_BASE, then?

I think so.

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

* syncing from Emacs to Gnus [was Re: declare-function in files from Gnus (hashcash.el, imap.el)]
  2007-11-30 22:56 declare-function in files from Gnus (hashcash.el, imap.el) Reiner Steib
  2007-11-30 23:27 ` Glenn Morris
@ 2007-12-01 21:42 ` Glenn Morris
  2007-12-01 23:22   ` syncing from Emacs to Gnus Reiner Steib
       [not found] ` <fir8np$3br$1@ger.gmane.org>
  2 siblings, 1 reply; 22+ messages in thread
From: Glenn Morris @ 2007-12-01 21:42 UTC (permalink / raw)
  To: ding; +Cc: emacs-devel

Reiner Steib wrote:

> I think the following changes...
>
> 	* mail/hashcash.el (message-narrow-to-headers-or-head)
> 	* net/imap.el (sasl-find-mechanism, sasl-mechanism-name)
[...]
> ... will break compatibility of Gnus with Emacs 21, Emacs 22.1 and
> XEmacs when synced to Gnus repository (doesn't happen immediately,
> because Miles is on a trip).  

Perhaps you only want to sync the files from the lisp/gnus directory
in Emacs to Gnus? In other words, stop syncing files once they get
moved out of the gnus/ directory? Have a static "contrib" directory in
Gnus, or something, that provides the files if they are not already in
the Emacs distribution... Just an idea.

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

* Re: declare-function in files from Gnus (hashcash.el, imap.el)
  2007-12-01 18:35   ` Reiner Steib
  2007-12-01 18:54     ` Dan Nicolaescu
@ 2007-12-01 21:50     ` Glenn Morris
  1 sibling, 0 replies; 22+ messages in thread
From: Glenn Morris @ 2007-12-01 21:50 UTC (permalink / raw)
  To: ding; +Cc: emacs-devel

Reiner Steib wrote:

> - `dgnushack.el' itself is considered harmful by some people.

I don't know anything about the Gnus build process.

> - Doesn't it work for XEmacs?  When building an XEmacs package,
>   `dgnushack.el' isn't used, I'd guess.

Ditto.

> Please don't do this yet.  Let's wait until we come to a good solution
> in this thread and until Miles has synched the current
> declare-function changes to Gnus and we see which (other) problems it
> may cause for the stand-alone Gnus.

OK.

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

* Re: syncing from Emacs to Gnus
  2007-12-01 21:42 ` syncing from Emacs to Gnus [was Re: declare-function in files from Gnus (hashcash.el, imap.el)] Glenn Morris
@ 2007-12-01 23:22   ` Reiner Steib
  2007-12-02 14:56     ` Stefan Monnier
  2007-12-02 18:39     ` Richard Stallman
  0 siblings, 2 replies; 22+ messages in thread
From: Reiner Steib @ 2007-12-01 23:22 UTC (permalink / raw)
  To: Glenn Morris; +Cc: ding, emacs-devel

On Sat, Dec 01 2007, Glenn Morris wrote:

> Perhaps you only want to sync the files from the lisp/gnus directory
> in Emacs to Gnus? In other words, stop syncing files once they get
> moved out of the gnus/ directory? Have a static "contrib" directory
> in Gnus, or something, that provides the files if they are not
> already in the Emacs distribution... Just an idea.

I don't think that will work out in the long run.

(1) When enhancing some Gnus functionality, we often need to modify
    Gnus files as well as library files.  Example: Some change in
    nnimap.el might need a change in imap.el as well (e.g. adding a
    new optional argument).  Even if imap.el would not be in the main
    Gnus lisp directory, we'd need to modify it.  This would lead to
    diverging versions of the same file and thus it would defeat the
    purpose of the sync.  Integrating new Gnus versions in Emacs would
    become very painful again.

(2) If bug fixes are applied in Emacs CVS, they should be synched to
    Gnus as well.

(3) Which files are already in Emacs depends on the Emacs version
    (Emacs 21, 22, 23).  So figuring out which additional files are
    required is not straight forward.

For me, keeping the bi-directional sync intact was a premise to
support moving files out of lisp/gnus.

Bye, Reiner.
-- 
       ,,,
      (o o)
---ooO-(_)-Ooo---  |  PGP key available  |  http://rsteib.home.pages.de/



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

* Re: syncing from Emacs to Gnus
  2007-12-01 23:22   ` syncing from Emacs to Gnus Reiner Steib
@ 2007-12-02 14:56     ` Stefan Monnier
  2007-12-02 18:39     ` Richard Stallman
  1 sibling, 0 replies; 22+ messages in thread
From: Stefan Monnier @ 2007-12-02 14:56 UTC (permalink / raw)
  To: Glenn Morris; +Cc: ding, emacs-devel

>> Perhaps you only want to sync the files from the lisp/gnus directory
>> in Emacs to Gnus? In other words, stop syncing files once they get
>> moved out of the gnus/ directory? Have a static "contrib" directory
>> in Gnus, or something, that provides the files if they are not
>> already in the Emacs distribution... Just an idea.

> I don't think that will work out in the long run.

Agreed,


        Stefan

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

* Re: syncing from Emacs to Gnus
  2007-12-01 23:22   ` syncing from Emacs to Gnus Reiner Steib
  2007-12-02 14:56     ` Stefan Monnier
@ 2007-12-02 18:39     ` Richard Stallman
  2007-12-03  2:25       ` Stefan Monnier
  1 sibling, 1 reply; 22+ messages in thread
From: Richard Stallman @ 2007-12-02 18:39 UTC (permalink / raw)
  To: Reiner Steib; +Cc: rgm, ding, emacs-devel

    (1) When enhancing some Gnus functionality, we often need to modify
	Gnus files as well as library files.  Example: Some change in
	nnimap.el might need a change in imap.el as well (e.g. adding a
	new optional argument).

Gnus depends on lots of files in Emacs.  These are just like the
others -- general purpose facilities (we moved them BECAUSE they are
general purpose) which Gnus happens to use.  They should NEVER have
been included in Gnus.

You can propose a change in these files, or any other files in Emacs.
Please propose it here, and we may agree to it.  But that is not a
forgone conclusion, and if we decide not to make the change, please do
not put a divergent version of that function into Gnus.

Meanwhile, if Gnus wants to support versions of Emacs before the next
one, it will need some compatibility code.

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

* Re: syncing from Emacs to Gnus
  2007-12-02 18:39     ` Richard Stallman
@ 2007-12-03  2:25       ` Stefan Monnier
  2007-12-03 18:43         ` Richard Stallman
  0 siblings, 1 reply; 22+ messages in thread
From: Stefan Monnier @ 2007-12-03  2:25 UTC (permalink / raw)
  To: rms; +Cc: rgm, ding, Reiner Steib, emacs-devel

>     (1) When enhancing some Gnus functionality, we often need to modify
> 	Gnus files as well as library files.  Example: Some change in
> 	nnimap.el might need a change in imap.el as well (e.g. adding a
> 	new optional argument).

> Gnus depends on lots of files in Emacs.  These are just like the
> others -- general purpose facilities (we moved them BECAUSE they are
> general purpose) which Gnus happens to use.  They should NEVER have
> been included in Gnus.

In many/most cases they were written specifically for Gnus, so I cannot
agree with the above.


        Stefan

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

* Re: syncing from Emacs to Gnus
  2007-12-03  2:25       ` Stefan Monnier
@ 2007-12-03 18:43         ` Richard Stallman
  2007-12-03 18:59           ` Stefan Monnier
  0 siblings, 1 reply; 22+ messages in thread
From: Richard Stallman @ 2007-12-03 18:43 UTC (permalink / raw)
  To: Stefan Monnier; +Cc: rgm, ding, Reiner.Steib, emacs-devel

    > Gnus depends on lots of files in Emacs.  These are just like the
    > others -- general purpose facilities (we moved them BECAUSE they are
    > general purpose) which Gnus happens to use.  They should NEVER have
    > been included in Gnus.

    In many/most cases they were written specifically for Gnus, so I cannot
    agree with the above.

Perhaps a few of them seemed to be special-purpose for Gnus when first
installed.  But some of them were clearly always general-purpose
facilities.  Those should be installed in Emacs as ordinary parts of
Emacs, after a suitable discussion here.  We should discuss the
right design for them, just as we would if some other part of Emacs
had been the motive for writing them.




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

* Re: syncing from Emacs to Gnus
  2007-12-03 18:43         ` Richard Stallman
@ 2007-12-03 18:59           ` Stefan Monnier
  2007-12-06  2:12             ` Richard Stallman
  0 siblings, 1 reply; 22+ messages in thread
From: Stefan Monnier @ 2007-12-03 18:59 UTC (permalink / raw)
  To: rms; +Cc: rgm, ding, Reiner.Steib, emacs-devel

>> Gnus depends on lots of files in Emacs.  These are just like the
>> others -- general purpose facilities (we moved them BECAUSE they are
>> general purpose) which Gnus happens to use.  They should NEVER have
>> been included in Gnus.

>     In many/most cases they were written specifically for Gnus, so I cannot
>     agree with the above.

> Perhaps a few of them seemed to be special-purpose for Gnus when first
> installed.  But some of them were clearly always general-purpose
> facilities.  Those should be installed in Emacs as ordinary parts of
> Emacs, after a suitable discussion here.  We should discuss the
> right design for them, just as we would if some other part of Emacs
> had been the motive for writing them.

As I said, many/most of those packages were written specifically for
Gnus.  I.e. if it weren't for Gnus they wouldn't exist.  The fact that
the author was careful to try and make it generic, expecting potential
uses in other packages, doesn't change anything to it.

If we force those packages to first be put into acceptable shape for
Gnus, then people may prefer to just make those packages Gnus-specific
(even artificially so, if needed), so they don't have to satisfy the
Emacs community but only the Gnus maintainers.

Over time, those packages may/will find uses in other packages and will
start to take a life or their own, and separate from Gnus, but we should
let this process take its time, rather than force it.


        Stefan



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

* Re: declare-function in files from Gnus (hashcash.el, imap.el)
       [not found]                   ` <200712032340.lB3Ne3Vt009200@oogie-boogie.ics.uci.edu>
@ 2007-12-05 20:35                     ` Reiner Steib
  2007-12-05 21:01                       ` Glenn Morris
  0 siblings, 1 reply; 22+ messages in thread
From: Reiner Steib @ 2007-12-05 20:35 UTC (permalink / raw)
  To: emacs-devel, ding

On Tue, Dec 04 2007, Dan Nicolaescu wrote:

> Reiner Steib <reinersteib+gmane@imap.cc> writes:
>
>   > On Sun, Dec 02 2007, Dan Nicolaescu wrote:
>   > 
>   > > Such files can just add a 1 line compatibility code:
>   > >
>   > > (unless (fboundp 'declare-function) (defmacro declare-function (&rest r)))

That still gives compiler warnings:

$ grep declare-function emacs/lisp/net/imap.el
(unless (fboundp 'declare-function) (defmacro declare-function (&rest r)))
(declare-function sasl-find-mechanism "sasl" (mechanism))
[...]
(declare-function sasl-step-set-data  "sasl" (step data))
$ /usr/bin/emacs -Q -batch -f batch-byte-compile emacs/lisp/net/imap.el 

In toplevel form:
imap.el:970:19:Warning: reference to free variable `sasl-find-mechanism'
[...]
imap.el:975:52:Warning: reference to free variable `data'

In end of data:
imap.el:2970:1:Warning: the following functions are not known to be defined:
    declare-function, mechanism, client, step, sasl-mechanism-name,
    sasl-make-client, sasl-next-step, sasl-step-data, sasl-step-set-data
Wrote .../emacs/lisp/net/imap.elc
 
>   > I think this is not a good idea...
>   > 
>   > ,----[ (info "(elisp)Coding Conventions") ]
[...]
> This situation is not similar, declare-function does not perform any
> active action. Why do you think it would matter? 

If some code test (fboundp 'declare-function) it probably expects that
`declare-function' exists an DTRT.  And it might be confusing if the
availability of `declare-function' depends on whether or not the user
has loaded such a package.

Bye, Reiner.
-- 
       ,,,
      (o o)
---ooO-(_)-Ooo---  |  PGP key available  |  http://rsteib.home.pages.de/



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

* Re: declare-function in files from Gnus (hashcash.el, imap.el)
  2007-12-05 20:35                     ` declare-function in files from Gnus (hashcash.el, imap.el) Reiner Steib
@ 2007-12-05 21:01                       ` Glenn Morris
  2007-12-08 19:42                         ` Reiner Steib
  0 siblings, 1 reply; 22+ messages in thread
From: Glenn Morris @ 2007-12-05 21:01 UTC (permalink / raw)
  To: emacs-devel; +Cc: ding

Reiner Steib wrote:

> $ grep declare-function emacs/lisp/net/imap.el
> (unless (fboundp 'declare-function) (defmacro declare-function (&rest r)))

You need to wrap that in an (eval-and-compile), or use the --eval route.

> If some code test (fboundp 'declare-function) it probably expects that
> `declare-function' exists an DTRT.  And it might be confusing if the
> availability of `declare-function' depends on whether or not the user
> has loaded such a package.

declare-function does nothing. It will always do nothing. It exists
solely for the benefit of the byte-compiler. Without the supporting
code in bytecomp.el, it doesn't matter what defines it or where. It
makes no sense to test (fboundp 'declare-function).



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

* Re: syncing from Emacs to Gnus
  2007-12-03 18:59           ` Stefan Monnier
@ 2007-12-06  2:12             ` Richard Stallman
  0 siblings, 0 replies; 22+ messages in thread
From: Richard Stallman @ 2007-12-06  2:12 UTC (permalink / raw)
  To: Stefan Monnier; +Cc: rgm, Reiner.Steib, ding, emacs-devel

    As I said, many/most of those packages were written specifically for
    Gnus.  I.e. if it weren't for Gnus they wouldn't exist.  The fact that
    the author was careful to try and make it generic, expecting potential
    uses in other packages, doesn't change anything to it.

What thus changes is the right way to install the file:
in Emacs, outside of Gnus.

    Over time, those packages may/will find uses in other packages and will
    start to take a life or their own, and separate from Gnus,

That's a misleading description of what has happened.  These packages
were general in nature from the very start.  It is not chance or
coincidence that they "found uses" outside of Gnus.  That was
inevitable in their design purpose.

When people write these packages, even if the motive for writing them
is about Gnus, the right way to install them is as general packages in
Emacs.



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

* Re: declare-function in files from Gnus (hashcash.el, imap.el)
  2007-12-05 21:01                       ` Glenn Morris
@ 2007-12-08 19:42                         ` Reiner Steib
  2007-12-08 22:58                           ` Dan Nicolaescu
  0 siblings, 1 reply; 22+ messages in thread
From: Reiner Steib @ 2007-12-08 19:42 UTC (permalink / raw)
  To: Glenn Morris; +Cc: emacs-devel, ding

On Wed, Dec 05 2007, Glenn Morris wrote:

> Reiner Steib wrote:
>> $ grep declare-function emacs/lisp/net/imap.el
>> (unless (fboundp 'declare-function) (defmacro declare-function (&rest r)))
>
> You need to wrap that in an (eval-and-compile), or use the --eval route.

Okay.  So can we please agree to add...

(eval-and-compile
  (unless (fboundp 'declare-function) (defmacro declare-function (&rest r))))

... in the files that are synced to Gnus (like imap.el)?

Bye, Reiner.
-- 
       ,,,
      (o o)
---ooO-(_)-Ooo---  |  PGP key available  |  http://rsteib.home.pages.de/



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

* Re: declare-function in files from Gnus (hashcash.el, imap.el)
  2007-12-08 19:42                         ` Reiner Steib
@ 2007-12-08 22:58                           ` Dan Nicolaescu
  2007-12-09  2:20                             ` Glenn Morris
  0 siblings, 1 reply; 22+ messages in thread
From: Dan Nicolaescu @ 2007-12-08 22:58 UTC (permalink / raw)
  To: Glenn Morris; +Cc: ding, emacs-devel

Reiner Steib <reinersteib+gmane@imap.cc> writes:

  > On Wed, Dec 05 2007, Glenn Morris wrote:
  > 
  > > Reiner Steib wrote:
  > >> $ grep declare-function emacs/lisp/net/imap.el
  > >> (unless (fboundp 'declare-function) (defmacro declare-function (&rest r)))
  > >
  > > You need to wrap that in an (eval-and-compile), or use the --eval route.
  > 
  > Okay.  So can we please agree to add...
  > 
  > (eval-and-compile
  >   (unless (fboundp 'declare-function) (defmacro declare-function (&rest r))))
  > 
  > ... in the files that are synced to Gnus (like imap.el)?

Sure, I added it to imap.el and hashcash.el. Is there anything else that
needs this?

A few more files are going to need it as soon as Glenn checks in his
patch to add declare-function for the files in lisp/gnus.

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

* Re: declare-function in files from Gnus (hashcash.el, imap.el)
  2007-12-08 22:58                           ` Dan Nicolaescu
@ 2007-12-09  2:20                             ` Glenn Morris
  2007-12-09 20:10                               ` Austin Frank
  0 siblings, 1 reply; 22+ messages in thread
From: Glenn Morris @ 2007-12-09  2:20 UTC (permalink / raw)
  To: Dan Nicolaescu; +Cc: ding, emacs-devel

Dan Nicolaescu wrote:

> A few more files are going to need it as soon as Glenn checks in his
> patch to add declare-function for the files in lisp/gnus.

I installed all I had to install. It's by no means complete.

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

* Re: declare-function in files from Gnus (hashcash.el, imap.el)
  2007-12-09  2:20                             ` Glenn Morris
@ 2007-12-09 20:10                               ` Austin Frank
  2007-12-09 21:22                                 ` Reiner Steib
  0 siblings, 1 reply; 22+ messages in thread
From: Austin Frank @ 2007-12-09 20:10 UTC (permalink / raw)
  To: emacs-devel; +Cc: ding

[-- Attachment #1: Type: text/plain, Size: 924 bytes --]

On Sat, Dec 08 2007, Glenn Morris wrote:

> Dan Nicolaescu wrote:
>
>> A few more files are going to need it as soon as Glenn checks in his
>> patch to add declare-function for the files in lisp/gnus.
>
> I installed all I had to install. It's by no means complete.

Hello!

I believe that this update has broken my ability to build gnus from cvs
with emacs 22.

I am running GNU Emacs 22.1.2 (powerpc-apple-darwin8.11.0, Carbon
Version 1.6.0) of 2007-12-09.  After doing a fresh checkout of gnus from
cvs, I

    ./configure && make

and then start emacs.  During the build process, I get several errors
like:

    In toplevel form:
    gnus-uu.el:34:1:Error: Symbol's function definition is void: declare-function

    In toplevel form:
    spam-wash.el:34:1:Error: Symbol's value as variable is void: message-narrow-to-headers-or-head

I've attached a text file containing the rest entire output from make.

Thanks,
/au


[-- Attachment #2: make.log --]
[-- Type: text/plain, Size: 31632 bytes --]

cd lisp && make EMACS="emacs" lispdir="/usr/local/share/emacs/site-lisp/gnus" all
rm -f *.elc gnus-load.el auto-autoloads.* custom-load.*
URLDIR=/usr/local/share/emacs/22.1/lisp/url/ W3DIR=no lispdir=/usr/local/share/emacs/site-lisp/gnus srcdir=. emacs -batch -q -no-site-file -l ./dgnushack.el -f dgnushack-make-cus-load .
Loading cus-dep...
Directory .
Generating cus-load.el...
Loading vc-cvs...
Wrote /Users/aufrank/projects/gnus/lisp/cus-load.el
Generating cus-load.el...done
URLDIR=/usr/local/share/emacs/22.1/lisp/url/ W3DIR=no lispdir=/usr/local/share/emacs/site-lisp/gnus srcdir=. emacs -batch -q -no-site-file -l ./dgnushack.el -f dgnushack-make-auto-load .
Loading vc-cvs...
Generating autoloads for assistant.el...
Generating autoloads for assistant.el...done
Generating autoloads for binhex.el...
Generating autoloads for binhex.el...done
Generating autoloads for canlock.el...
Generating autoloads for canlock.el...done
Generating autoloads for compface.el...
Generating autoloads for compface.el...done
Generating autoloads for deuglify.el...
Generating autoloads for deuglify.el...done
Generating autoloads for dgnushack.el...
Generating autoloads for dgnushack.el...done
Generating autoloads for dig.el...
Generating autoloads for dig.el...done
Generating autoloads for dns-mode.el...
Generating autoloads for dns-mode.el...done
Generating autoloads for dns.el...
Generating autoloads for dns.el...done
Generating autoloads for earcon.el...
Generating autoloads for earcon.el...done
Generating autoloads for ecomplete.el...
Generating autoloads for ecomplete.el...done
Generating autoloads for encrypt.el...
Generating autoloads for encrypt.el...done
Generating autoloads for flow-fill.el...
Generating autoloads for flow-fill.el...done
Generating autoloads for format-spec.el...
Generating autoloads for format-spec.el...done
Generating autoloads for gmm-utils.el...
Generating autoloads for gmm-utils.el...done
Generating autoloads for gnus-agent.el...
Generating autoloads for gnus-agent.el...done
Generating autoloads for gnus-art.el...
Generating autoloads for gnus-art.el...done
Generating autoloads for gnus-async.el...
Generating autoloads for gnus-async.el...done
Generating autoloads for gnus-audio.el...
Generating autoloads for gnus-audio.el...done
Generating autoloads for gnus-bcklg.el...
Generating autoloads for gnus-bcklg.el...done
Generating autoloads for gnus-bookmark.el...
Generating autoloads for gnus-bookmark.el...done
Generating autoloads for gnus-cache.el...
Generating autoloads for gnus-cache.el...done
Generating autoloads for gnus-cite.el...
Generating autoloads for gnus-cite.el...done
Generating autoloads for gnus-cus.el...
Generating autoloads for gnus-cus.el...done
Generating autoloads for gnus-delay.el...
Generating autoloads for gnus-delay.el...done
Generating autoloads for gnus-demon.el...
Generating autoloads for gnus-demon.el...done
Generating autoloads for gnus-diary.el...
Generating autoloads for gnus-diary.el...done
Generating autoloads for gnus-dired.el...
Generating autoloads for gnus-dired.el...done
Generating autoloads for gnus-draft.el...
Generating autoloads for gnus-draft.el...done
Generating autoloads for gnus-dup.el...
Generating autoloads for gnus-dup.el...done
Generating autoloads for gnus-eform.el...
Generating autoloads for gnus-eform.el...done
Generating autoloads for gnus-ems.el...
Generating autoloads for gnus-ems.el...done
Generating autoloads for gnus-fun.el...
Generating autoloads for gnus-fun.el...done
Generating autoloads for gnus-group.el...
Generating autoloads for gnus-group.el...done
Generating autoloads for gnus-int.el...
Generating autoloads for gnus-int.el...done
Generating autoloads for gnus-kill.el...
Generating autoloads for gnus-kill.el...done
Generating autoloads for gnus-logic.el...
Generating autoloads for gnus-logic.el...done
Generating autoloads for gnus-mh.el...
Generating autoloads for gnus-mh.el...done
Generating autoloads for gnus-ml.el...
Generating autoloads for gnus-ml.el...done
Generating autoloads for gnus-mlspl.el...
Generating autoloads for gnus-mlspl.el...done
Generating autoloads for gnus-move.el...
Generating autoloads for gnus-move.el...done
Generating autoloads for gnus-msg.el...
Generating autoloads for gnus-msg.el...done
Generating autoloads for gnus-nocem.el...
Generating autoloads for gnus-nocem.el...done
Generating autoloads for gnus-picon.el...
Generating autoloads for gnus-picon.el...done
Generating autoloads for gnus-range.el...
Generating autoloads for gnus-range.el...done
Generating autoloads for gnus-registry.el...
Generating autoloads for gnus-registry.el...done
Generating autoloads for gnus-salt.el...
Generating autoloads for gnus-salt.el...done
Generating autoloads for gnus-score.el...
Generating autoloads for gnus-score.el...done
Generating autoloads for gnus-setup.el...
Generating autoloads for gnus-setup.el...done
Generating autoloads for gnus-sieve.el...
Generating autoloads for gnus-sieve.el...done
Generating autoloads for gnus-soup.el...
Generating autoloads for gnus-soup.el...done
Generating autoloads for gnus-spec.el...
Generating autoloads for gnus-spec.el...done
Generating autoloads for gnus-srvr.el...
Generating autoloads for gnus-srvr.el...done
Generating autoloads for gnus-start.el...
Generating autoloads for gnus-start.el...done
Generating autoloads for gnus-sum.el...
Generating autoloads for gnus-sum.el...done
Generating autoloads for gnus-topic.el...
Generating autoloads for gnus-topic.el...done
Generating autoloads for gnus-undo.el...
Generating autoloads for gnus-undo.el...done
Generating autoloads for gnus-util.el...
Generating autoloads for gnus-util.el...done
Generating autoloads for gnus-uu.el...
Generating autoloads for gnus-uu.el...done
Generating autoloads for gnus-vm.el...
Generating autoloads for gnus-vm.el...done
Generating autoloads for gnus-win.el...
Generating autoloads for gnus-win.el...done
Generating autoloads for gnus-xmas.el...
Generating autoloads for gnus-xmas.el...done
Generating autoloads for gnus.el...
Generating autoloads for gnus.el...done
Generating autoloads for hashcash.el...
Generating autoloads for hashcash.el...done
Generating autoloads for hex-util.el...
Generating autoloads for hex-util.el...done
Generating autoloads for hmac-def.el...
Generating autoloads for hmac-def.el...done
Generating autoloads for hmac-md5.el...
Generating autoloads for hmac-md5.el...done
Generating autoloads for html2text.el...
Generating autoloads for html2text.el...done
Generating autoloads for ietf-drums.el...
Generating autoloads for ietf-drums.el...done
Generating autoloads for imap.el...
Generating autoloads for imap.el...done
Generating autoloads for legacy-gnus-agent.el...
Generating autoloads for legacy-gnus-agent.el...done
Generating autoloads for lpath.el...
Generating autoloads for lpath.el...done
Generating autoloads for mail-parse.el...
Generating autoloads for mail-parse.el...done
Generating autoloads for mail-prsvr.el...
Generating autoloads for mail-prsvr.el...done
Generating autoloads for mail-source.el...
Generating autoloads for mail-source.el...done
Generating autoloads for mailcap.el...
Generating autoloads for mailcap.el...done
Generating autoloads for md4.el...
Generating autoloads for md4.el...done
Generating autoloads for message.el...
Generating autoloads for message.el...done
Generating autoloads for messagexmas.el...
Generating autoloads for messagexmas.el...done
Generating autoloads for messcompat.el...
Generating autoloads for messcompat.el...done
Generating autoloads for mm-bodies.el...
Generating autoloads for mm-bodies.el...done
Generating autoloads for mm-decode.el...
Generating autoloads for mm-decode.el...done
Generating autoloads for mm-encode.el...
Generating autoloads for mm-encode.el...done
Generating autoloads for mm-extern.el...
Generating autoloads for mm-extern.el...done
Generating autoloads for mm-partial.el...
Generating autoloads for mm-partial.el...done
Generating autoloads for mm-url.el...
Generating autoloads for mm-url.el...done
Generating autoloads for mm-util.el...
Generating autoloads for mm-util.el...done
Generating autoloads for mm-uu.el...
Generating autoloads for mm-uu.el...done
Generating autoloads for mm-view.el...
Generating autoloads for mm-view.el...done
Generating autoloads for mml-sec.el...
Generating autoloads for mml-sec.el...done
Generating autoloads for mml-smime.el...
Generating autoloads for mml-smime.el...done
Generating autoloads for mml.el...
Generating autoloads for mml.el...done
Generating autoloads for mml1991.el...
Generating autoloads for mml1991.el...done
Generating autoloads for mml2015.el...
Generating autoloads for mml2015.el...done
Generating autoloads for netrc.el...
Generating autoloads for netrc.el...done
Generating autoloads for nnagent.el...
Generating autoloads for nnagent.el...done
Generating autoloads for nnbabyl.el...
Generating autoloads for nnbabyl.el...done
Generating autoloads for nndb.el...
Generating autoloads for nndb.el...done
Generating autoloads for nndiary.el...
Generating autoloads for nndiary.el...done
Generating autoloads for nndir.el...
Generating autoloads for nndir.el...done
Generating autoloads for nndoc.el...
Generating autoloads for nndoc.el...done
Generating autoloads for nndraft.el...
Generating autoloads for nndraft.el...done
Generating autoloads for nneething.el...
Generating autoloads for nneething.el...done
Generating autoloads for nnfolder.el...
Generating autoloads for nnfolder.el...done
Generating autoloads for nngateway.el...
Generating autoloads for nngateway.el...done
Generating autoloads for nnheader.el...
Generating autoloads for nnheader.el...done
Generating autoloads for nnheaderxm.el...
Generating autoloads for nnheaderxm.el...done
Generating autoloads for nnimap.el...
Generating autoloads for nnimap.el...done
Generating autoloads for nnkiboze.el...
Generating autoloads for nnkiboze.el...done
Generating autoloads for nnlistserv.el...
Generating autoloads for nnlistserv.el...done
Generating autoloads for nnmail.el...
Generating autoloads for nnmail.el...done
Generating autoloads for nnmaildir.el...
Generating autoloads for nnmaildir.el...done
Generating autoloads for nnmbox.el...
Generating autoloads for nnmbox.el...done
Generating autoloads for nnmh.el...
Generating autoloads for nnmh.el...done
Generating autoloads for nnml.el...
Generating autoloads for nnml.el...done
Generating autoloads for nnnil.el...
Generating autoloads for nnnil.el...done
Generating autoloads for nnoo.el...
Generating autoloads for nnoo.el...done
Generating autoloads for nnrss.el...
Generating autoloads for nnrss.el...done
Generating autoloads for nnslashdot.el...
Generating autoloads for nnslashdot.el...done
Generating autoloads for nnsoup.el...
Generating autoloads for nnsoup.el...done
Generating autoloads for nnspool.el...
Generating autoloads for nnspool.el...done
Generating autoloads for nntp.el...
Generating autoloads for nntp.el...done
Generating autoloads for nnultimate.el...
Generating autoloads for nnultimate.el...done
Generating autoloads for nnvirtual.el...
Generating autoloads for nnvirtual.el...done
Generating autoloads for nnwarchive.el...
Generating autoloads for nnwarchive.el...done
Generating autoloads for nnweb.el...
Generating autoloads for nnweb.el...done
Generating autoloads for nnwfm.el...
Generating autoloads for nnwfm.el...done
Generating autoloads for ntlm.el...
Generating autoloads for ntlm.el...done
Generating autoloads for parse-time.el...
Generating autoloads for parse-time.el...done
Generating autoloads for password-cache.el...
Generating autoloads for password-cache.el...done
Generating autoloads for pgg-def.el...
Generating autoloads for pgg-def.el...done
Generating autoloads for pgg-gpg.el...
Generating autoloads for pgg-gpg.el...done
Generating autoloads for pgg-parse.el...
Generating autoloads for pgg-parse.el...done
Generating autoloads for pgg-pgp.el...
Generating autoloads for pgg-pgp.el...done
Generating autoloads for pgg-pgp5.el...
Generating autoloads for pgg-pgp5.el...done
Generating autoloads for pgg.el...
Generating autoloads for pgg.el...done
Generating autoloads for pop3.el...
Generating autoloads for pop3.el...done
Generating autoloads for qp.el...
Generating autoloads for qp.el...done
Generating autoloads for rfc1843.el...
Generating autoloads for rfc1843.el...done
Generating autoloads for rfc2045.el...
Generating autoloads for rfc2045.el...done
Generating autoloads for rfc2047.el...
Generating autoloads for rfc2047.el...done
Generating autoloads for rfc2104.el...
Generating autoloads for rfc2104.el...done
Generating autoloads for rfc2231.el...
Generating autoloads for rfc2231.el...done
Generating autoloads for sasl-cram.el...
Generating autoloads for sasl-cram.el...done
Generating autoloads for sasl-digest.el...
Generating autoloads for sasl-digest.el...done
Generating autoloads for sasl-ntlm.el...
Generating autoloads for sasl-ntlm.el...done
Generating autoloads for sasl.el...
Generating autoloads for sasl.el...done
Generating autoloads for score-mode.el...
Generating autoloads for score-mode.el...done
Generating autoloads for sha1.el...
Generating autoloads for sha1.el...done
Generating autoloads for sieve-manage.el...
Generating autoloads for sieve-manage.el...done
Generating autoloads for sieve-mode.el...
Generating autoloads for sieve-mode.el...done
Generating autoloads for sieve.el...
Generating autoloads for sieve.el...done
Generating autoloads for smiley.el...
Generating autoloads for smiley.el...done
Generating autoloads for smime-ldap.el...
Generating autoloads for smime-ldap.el...done
Generating autoloads for smime.el...
Generating autoloads for smime.el...done
Generating autoloads for spam-report.el...
Generating autoloads for spam-report.el...done
Generating autoloads for spam-stat.el...
Generating autoloads for spam-stat.el...done
Generating autoloads for spam-wash.el...
Generating autoloads for spam-wash.el...done
Generating autoloads for spam.el...
Generating autoloads for spam.el...done
Generating autoloads for starttls.el...
Generating autoloads for starttls.el...done
Generating autoloads for time-date.el...
Generating autoloads for time-date.el...done
Generating autoloads for tls.el...
Generating autoloads for tls.el...done
Generating autoloads for utf7.el...
Generating autoloads for utf7.el...done
Generating autoloads for uudecode.el...
Generating autoloads for uudecode.el...done
Generating autoloads for webmail.el...
Generating autoloads for webmail.el...done
Generating autoloads for yenc.el...
Generating autoloads for yenc.el...done
Saving file /Users/aufrank/projects/gnus/lisp/gnus-load.el...
Wrote /Users/aufrank/projects/gnus/lisp/gnus-load.el
URLDIR=/usr/local/share/emacs/22.1/lisp/url/ W3DIR=no lispdir=/usr/local/share/emacs/site-lisp/gnus srcdir=. emacs -batch -q -no-site-file -l ./dgnushack.el -f dgnushack-make-load
Generating /Users/aufrank/projects/gnus/lisp/gnus-load.el...
Compiling /Users/aufrank/projects/gnus/lisp/gnus-load.el...
URLDIR=/usr/local/share/emacs/22.1/lisp/url/ W3DIR=no lispdir=/usr/local/share/emacs/site-lisp/gnus srcdir=. emacs -batch -q -no-site-file -l ./dgnushack.el -f dgnushack-compile
No w3: Cannot open load file 
No MH variant found on the system
Loading subst-ksc...
Loading subst-gb2312...
Loading subst-big5...
Loading subst-jis...
Wrote /Users/aufrank/projects/gnus/lisp/assistant.elc
Wrote /Users/aufrank/projects/gnus/lisp/binhex.elc
Wrote /Users/aufrank/projects/gnus/lisp/canlock.elc
Wrote /Users/aufrank/projects/gnus/lisp/compface.elc

In toplevel form:
deuglify.el:224:1:Error: Symbol's function definition is void: declare-function
Wrote /Users/aufrank/projects/gnus/lisp/dig.elc
Wrote /Users/aufrank/projects/gnus/lisp/dns-mode.elc
Wrote /Users/aufrank/projects/gnus/lisp/dns.elc

In toplevel form:
earcon.el:33:1:Error: Symbol's function definition is void: declare-function
Wrote /Users/aufrank/projects/gnus/lisp/ecomplete.elc

In end of data:
encrypt.el:297:1:Warning: the following functions are not known to be defined:
    password-read-and-add, password-cache-remove
Wrote /Users/aufrank/projects/gnus/lisp/encrypt.elc
Wrote /Users/aufrank/projects/gnus/lisp/flow-fill.elc
Wrote /Users/aufrank/projects/gnus/lisp/format-spec.elc
Wrote /Users/aufrank/projects/gnus/lisp/gmm-utils.elc

In toplevel form:
gnus-agent.el:29:1:Error: Symbol's function definition is void: declare-function

In toplevel form:
gnus-art.el:37:1:Error: Symbol's function definition is void: declare-function

In toplevel form:
gnus-async.el:33:1:Error: Symbol's function definition is void: declare-function
Wrote /Users/aufrank/projects/gnus/lisp/gnus-audio.elc
Wrote /Users/aufrank/projects/gnus/lisp/gnus-bcklg.elc

In toplevel form:
gnus-bookmark.el:57:1:Error: Symbol's function definition is void: declare-function

In toplevel form:
gnus-cache.el:36:13:Error: Symbol's function definition is void: declare-function

In toplevel form:
gnus-cite.el:36:1:Error: Symbol's function definition is void: declare-function

In toplevel form:
gnus-cus.el:32:1:Error: Symbol's function definition is void: declare-function

In toplevel form:
gnus-delay.el:38:1:Error: Symbol's function definition is void: declare-function

In toplevel form:
gnus-demon.el:33:1:Error: Symbol's function definition is void: declare-function

In toplevel form:
gnus-diary.el:46:1:Error: Symbol's function definition is void: declare-function
Wrote /Users/aufrank/projects/gnus/lisp/gnus-dired.elc

In toplevel form:
gnus-draft.el:31:1:Error: Symbol's function definition is void: declare-function

In toplevel form:
gnus-dup.el:38:1:Error: Symbol's function definition is void: declare-function
Wrote /Users/aufrank/projects/gnus/lisp/gnus-eform.elc
Wrote /Users/aufrank/projects/gnus/lisp/gnus-ems.elc

In end of data:
gnus-fun.el:286:1:Warning: the following functions are not known to be
    defined: message-goto-eoh, article-narrow-to-head,
    gnus-article-goto-header, gnus-add-image, gnus-add-wash-type
Wrote /Users/aufrank/projects/gnus/lisp/gnus-fun.elc

In toplevel form:
gnus-group.el:35:1:Error: Symbol's function definition is void: declare-function

In toplevel form:
gnus-int.el:33:1:Error: Symbol's function definition is void: declare-function

In toplevel form:
gnus-kill.el:34:1:Error: Symbol's function definition is void: declare-function

In toplevel form:
gnus-logic.el:33:1:Error: Symbol's function definition is void: declare-function

In toplevel form:
gnus-mh.el:41:1:Error: Symbol's function definition is void: declare-function

In toplevel form:
gnus-ml.el:33:1:Error: Symbol's function definition is void: declare-function

In toplevel form:
gnus-mlspl.el:32:1:Error: Symbol's function definition is void: declare-function

In toplevel form:
gnus-move.el:33:1:Error: Symbol's function definition is void: declare-function

In toplevel form:
gnus-msg.el:35:1:Error: Symbol's function definition is void: declare-function

In toplevel form:
gnus-nocem.el:33:1:Error: Symbol's function definition is void: declare-function

In toplevel form:
gnus-picon.el:46:1:Error: Symbol's function definition is void: declare-function
Wrote /Users/aufrank/projects/gnus/lisp/gnus-range.elc

In toplevel form:
gnus-registry.el:61:1:Error: Symbol's function definition is void: declare-function

In toplevel form:
gnus-salt.el:33:1:Error: Symbol's function definition is void: declare-function

In toplevel form:
gnus-score.el:34:1:Error: Symbol's function definition is void: declare-function

In toplevel form:
gnus-setup.el:81:1:Error: Symbol's function definition is void: declare-function

In toplevel form:
gnus-sieve.el:33:1:Error: Symbol's function definition is void: declare-function

In toplevel form:
gnus-soup.el:34:1:Error: Symbol's function definition is void: declare-function

In end of data:
gnus-spec.el:768:1:Warning: the function
    `gnus-summary-from-or-to-or-newsgroups' is not known to be defined.
Wrote /Users/aufrank/projects/gnus/lisp/gnus-spec.elc

In toplevel form:
gnus-srvr.el:34:1:Error: Symbol's function definition is void: declare-function

In toplevel form:
gnus-start.el:32:1:Error: Symbol's function definition is void: declare-function

In toplevel form:
gnus-sum.el:37:1:Error: Symbol's function definition is void: declare-function

In toplevel form:
gnus-topic.el:34:1:Error: Symbol's function definition is void: declare-function
Wrote /Users/aufrank/projects/gnus/lisp/gnus-undo.elc
Loading /Users/aufrank/projects/gnus/lisp/nnheader.el (source)...
Loading /Users/aufrank/projects/gnus/lisp/nnheader.el (source)...

In end of data:
gnus-util.el:1726:1:Warning: the following functions are not known to be
    defined: gnus-group-name-decode, gnus-group-name-charset,
    message-tokenize-header
Wrote /Users/aufrank/projects/gnus/lisp/gnus-util.elc

In toplevel form:
gnus-uu.el:34:1:Error: Symbol's function definition is void: declare-function

In toplevel form:
gnus-vm.el:36:1:Error: Symbol's function definition is void: declare-function
Wrote /Users/aufrank/projects/gnus/lisp/gnus-win.elc

In toplevel form:
gnus.el:4190:42:Error: Symbol's function definition is void: declare-function

In toplevel form:
hashcash.el:129:20:Warning: reference to free variable
    `message-narrow-to-headers-or-head'
hashcash.el:130:20:Warning: reference to free variable `message-fetch-field'
hashcash.el:130:58:Warning: reference to free variable `&optional'
hashcash.el:130:68:Warning: reference to free variable `not-all'
hashcash.el:131:20:Warning: reference to free variable `message-goto-eoh'
hashcash.el:132:20:Warning: reference to free variable
    `message-narrow-to-headers'

In end of data:
hashcash.el:376:1:Warning: the following functions are not known to be
    defined: gnus-group-decoded-name, declare-function, header,
    message-narrow-to-headers-or-head, message-goto-eoh,
    message-narrow-to-headers
Wrote /Users/aufrank/projects/gnus/lisp/hashcash.elc
Wrote /Users/aufrank/projects/gnus/lisp/hex-util.elc
Wrote /Users/aufrank/projects/gnus/lisp/hmac-def.elc
Wrote /Users/aufrank/projects/gnus/lisp/hmac-md5.elc
Wrote /Users/aufrank/projects/gnus/lisp/html2text.elc
Wrote /Users/aufrank/projects/gnus/lisp/ietf-drums.elc

In toplevel form:
imap.el:969:19:Warning: reference to free variable `sasl-find-mechanism'
imap.el:970:19:Warning: reference to free variable `sasl-mechanism-name'
imap.el:971:19:Warning: reference to free variable `sasl-make-client'
imap.el:971:57:Warning: reference to free variable `name'
imap.el:971:62:Warning: reference to free variable `service'
imap.el:971:70:Warning: reference to free variable `server'
imap.el:972:19:Warning: reference to free variable `sasl-next-step'
imap.el:972:54:Warning: reference to free variable `step'
imap.el:973:19:Warning: reference to free variable `sasl-step-data'
imap.el:974:19:Warning: reference to free variable `sasl-step-set-data'
imap.el:974:52:Warning: reference to free variable `data'

In end of data:
imap.el:2982:1:Warning: the following functions are not known to be defined:
    declare-function, mechanism, client, step, sasl-mechanism-name,
    sasl-make-client, sasl-next-step, sasl-step-data, sasl-step-set-data
Wrote /Users/aufrank/projects/gnus/lisp/imap.elc

In toplevel form:
legacy-gnus-agent.el:30:1:Error: Symbol's value as variable is void: message-narrow-to-headers-or-head
Wrote /Users/aufrank/projects/gnus/lisp/mail-parse.elc
Wrote /Users/aufrank/projects/gnus/lisp/mail-prsvr.elc

In toplevel form:
mail-source.el:33:13:Error: Symbol's value as variable is void: sasl-find-mechanism
Wrote /Users/aufrank/projects/gnus/lisp/mailcap.elc
Wrote /Users/aufrank/projects/gnus/lisp/md4.elc

In toplevel form:
message.el:37:1:Error: Symbol's value as variable is void: message-narrow-to-headers-or-head
Wrote /Users/aufrank/projects/gnus/lisp/messcompat.elc

In end of data:
mm-bodies.el:305:1:Warning: the following functions are not known to be
    defined: message-options-get, message-options-set
Wrote /Users/aufrank/projects/gnus/lisp/mm-bodies.elc
Wrote /Users/aufrank/projects/gnus/lisp/mm-decode.elc
Wrote /Users/aufrank/projects/gnus/lisp/mm-encode.elc
Wrote /Users/aufrank/projects/gnus/lisp/mm-extern.elc

In toplevel form:
mm-partial.el:32:1:Error: Symbol's value as variable is void: message-narrow-to-headers-or-head
Wrote /Users/aufrank/projects/gnus/lisp/mm-url.elc

In end of data:
mm-util.el:1501:1:Warning: the function `gmm-write-region' is not known to be
    defined.
Wrote /Users/aufrank/projects/gnus/lisp/mm-util.elc
Wrote /Users/aufrank/projects/gnus/lisp/mm-uu.elc
Wrote /Users/aufrank/projects/gnus/lisp/mm-view.elc
Wrote /Users/aufrank/projects/gnus/lisp/mml-sec.elc

In end of data:
mml-smime.el:541:1:Warning: the following functions are not known to be
    defined: message-options-get, message-options-set
Wrote /Users/aufrank/projects/gnus/lisp/mml-smime.elc

In end of data:
mml.el:1450:1:Warning: the following functions are not known to be defined:
    message-options-get, message-options-set, message-narrow-to-head,
    message-encode-message-body, message-narrow-to-headers-or-head,
    message-in-body-p, message-mail-p, message-subscribed-p,
    message-make-mail-followup-to, message-position-on-field, message-news-p,
    message-options-set-recipient, message-generate-headers,
    message-sort-headers
Wrote /Users/aufrank/projects/gnus/lisp/mml.elc

In end of data:
mml1991.el:506:1:Warning: the following functions are not known to be defined:
    message-options-get, message-options-set
Wrote /Users/aufrank/projects/gnus/lisp/mml1991.elc

In end of data:
mml2015.el:1395:1:Warning: the following functions are not known to be
    defined: message-options-get, message-options-set
Wrote /Users/aufrank/projects/gnus/lisp/mml2015.elc
Wrote /Users/aufrank/projects/gnus/lisp/netrc.elc

In toplevel form:
nnagent.el:33:1:Error: Symbol's value as variable is void: message-narrow-to-headers-or-head

In toplevel form:
nnbabyl.el:39:1:Error: Symbol's value as variable is void: message-narrow-to-headers-or-head

In toplevel form:
nndb.el:54:1:Error: Symbol's value as variable is void: message-narrow-to-headers-or-head

In toplevel form:
nndiary.el:88:1:Error: Symbol's value as variable is void: message-narrow-to-headers-or-head

In toplevel form:
nndir.el:31:1:Error: Symbol's value as variable is void: message-narrow-to-headers-or-head

In toplevel form:
nndoc.el:34:1:Error: Symbol's value as variable is void: message-narrow-to-headers-or-head

In toplevel form:
nndraft.el:31:1:Error: Symbol's value as variable is void: message-narrow-to-headers-or-head

In toplevel form:
nneething.el:34:1:Error: Symbol's value as variable is void: message-narrow-to-headers-or-head

In toplevel form:
nnfolder.el:35:1:Error: Symbol's value as variable is void: message-narrow-to-headers-or-head

In toplevel form:
nngateway.el:32:1:Error: Symbol's value as variable is void: message-narrow-to-headers-or-head
Wrote /Users/aufrank/projects/gnus/lisp/nnheader.elc

In toplevel form:
nnimap.el:64:1:Error: Symbol's value as variable is void: sasl-find-mechanism

In toplevel form:
nnkiboze.el:34:1:Error: Symbol's value as variable is void: message-narrow-to-headers-or-head

In toplevel form:
nnlistserv.el:34:1:Error: Symbol's value as variable is void: message-narrow-to-headers-or-head

In toplevel form:
nnmail.el:34:1:Error: Symbol's value as variable is void: message-narrow-to-headers-or-head

In toplevel form:
nnmaildir.el:64:1:Error: Symbol's value as variable is void: message-narrow-to-headers-or-head

In toplevel form:
nnmbox.el:30:1:Error: Symbol's value as variable is void: message-narrow-to-headers-or-head

In toplevel form:
nnmh.el:36:1:Error: Symbol's value as variable is void: message-narrow-to-headers-or-head

In toplevel form:
nnml.el:39:1:Error: Symbol's value as variable is void: message-narrow-to-headers-or-head
Wrote /Users/aufrank/projects/gnus/lisp/nnnil.elc
Wrote /Users/aufrank/projects/gnus/lisp/nnoo.elc

In toplevel form:
nnrss.el:34:1:Error: Symbol's value as variable is void: message-narrow-to-headers-or-head

In toplevel form:
nnslashdot.el:33:1:Error: Symbol's value as variable is void: message-narrow-to-headers-or-head

In toplevel form:
nnsoup.el:32:1:Error: Symbol's value as variable is void: message-narrow-to-headers-or-head

In toplevel form:
nnspool.el:32:1:Error: Symbol's value as variable is void: message-narrow-to-headers-or-head

In toplevel form:
nntp.el:35:1:Error: Symbol's value as variable is void: message-narrow-to-headers-or-head

In toplevel form:
nnvirtual.el:36:1:Error: Symbol's value as variable is void: message-narrow-to-headers-or-head

In toplevel form:
nnwarchive.el:40:1:Error: Symbol's value as variable is void: message-narrow-to-headers-or-head

In toplevel form:
nnweb.el:35:1:Error: Symbol's value as variable is void: message-narrow-to-headers-or-head
Wrote /Users/aufrank/projects/gnus/lisp/ntlm.elc
Wrote /Users/aufrank/projects/gnus/lisp/parse-time.elc
Wrote /Users/aufrank/projects/gnus/lisp/password-cache.elc
Wrote /Users/aufrank/projects/gnus/lisp/pgg-def.elc

In toplevel form:
pgg-gpg.el:33:13:Error: Symbol's function definition is void: declare-function

In toplevel form:
pgg-parse.el:470:19:Warning: reference to free variable
    `pgg-parse-crc24-string'

In end of data:
pgg-parse.el:523:1:Warning: the function `declare-function' is not known to be
    defined.
Wrote /Users/aufrank/projects/gnus/lisp/pgg-parse.elc

In toplevel form:
pgg-pgp.el:31:13:Error: Symbol's value as variable is void: pgg-parse-crc24-string

In toplevel form:
pgg-pgp5.el:31:13:Error: Symbol's value as variable is void: pgg-parse-crc24-string

In toplevel form:
pgg.el:33:1:Error: Symbol's value as variable is void: pgg-parse-crc24-string
Wrote /Users/aufrank/projects/gnus/lisp/pop3.elc
Wrote /Users/aufrank/projects/gnus/lisp/qp.elc

In end of data:
rfc1843.el:191:1:Warning: the function `message-narrow-to-head' is not known
    to be defined.
Wrote /Users/aufrank/projects/gnus/lisp/rfc1843.elc
Wrote /Users/aufrank/projects/gnus/lisp/rfc2045.elc
Wrote /Users/aufrank/projects/gnus/lisp/rfc2047.elc
Wrote /Users/aufrank/projects/gnus/lisp/rfc2104.elc
Wrote /Users/aufrank/projects/gnus/lisp/rfc2231.elc
Wrote /Users/aufrank/projects/gnus/lisp/sasl-cram.elc
Wrote /Users/aufrank/projects/gnus/lisp/sasl-digest.elc
Wrote /Users/aufrank/projects/gnus/lisp/sasl-ntlm.elc
Wrote /Users/aufrank/projects/gnus/lisp/sasl.elc
Wrote /Users/aufrank/projects/gnus/lisp/score-mode.elc
Wrote /Users/aufrank/projects/gnus/lisp/sha1.elc
Wrote /Users/aufrank/projects/gnus/lisp/sieve-manage.elc
Wrote /Users/aufrank/projects/gnus/lisp/sieve-mode.elc
Wrote /Users/aufrank/projects/gnus/lisp/sieve.elc

In toplevel form:
smiley.el:55:1:Error: Symbol's value as variable is void: message-narrow-to-headers-or-head
Wrote /Users/aufrank/projects/gnus/lisp/smime-ldap.elc
Wrote /Users/aufrank/projects/gnus/lisp/smime.elc

In toplevel form:
spam-report.el:33:1:Error: Symbol's value as variable is void: message-narrow-to-headers-or-head
Wrote /Users/aufrank/projects/gnus/lisp/spam-stat.elc

In toplevel form:
spam-wash.el:34:1:Error: Symbol's value as variable is void: message-narrow-to-headers-or-head

In toplevel form:
spam.el:44:30:Error: Symbol's value as variable is void: message-narrow-to-headers-or-head
Wrote /Users/aufrank/projects/gnus/lisp/starttls.elc
Wrote /Users/aufrank/projects/gnus/lisp/time-date.elc
Wrote /Users/aufrank/projects/gnus/lisp/tls.elc
Wrote /Users/aufrank/projects/gnus/lisp/utf7.elc
Wrote /Users/aufrank/projects/gnus/lisp/uudecode.elc
Wrote /Users/aufrank/projects/gnus/lisp/yenc.elc
cd texi && make EMACS="emacs" all
make[1]: Nothing to be done for `all'.

[-- Attachment #3: Type: text/plain, Size: 96 bytes --]


-- 
Austin Frank
http://aufrank.net
GPG Public Key (D7398C2F): http://aufrank.net/personal.asc

[-- Attachment #4: Type: text/plain, Size: 142 bytes --]

_______________________________________________
Emacs-devel mailing list
Emacs-devel@gnu.org
http://lists.gnu.org/mailman/listinfo/emacs-devel

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

* Re: declare-function in files from Gnus (hashcash.el, imap.el)
  2007-12-09 20:10                               ` Austin Frank
@ 2007-12-09 21:22                                 ` Reiner Steib
  0 siblings, 0 replies; 22+ messages in thread
From: Reiner Steib @ 2007-12-09 21:22 UTC (permalink / raw)
  To: Austin Frank; +Cc: ding, emacs-devel

On Sun, Dec 09 2007, Austin Frank wrote:

> I believe that this update has broken my ability to build gnus from cvs
> with emacs 22.

It wasn't this change since Glenn's changes haven't been synced to
Gnus repository yet.  But the changes to other files (outside Gnus
caused the problems).  I have added the no-op macro to Gnus repository
now:

	* hashcash.el, imap.el, pgg.el, pgg-parse.el (declare-function): Add
	new no-op macro for backward compatibility.

This fixed the problem for me.  Please update and try again.

Bye, Reiner.
-- 
       ,,,
      (o o)
---ooO-(_)-Ooo---  |  PGP key available  |  http://rsteib.home.pages.de/

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

end of thread, other threads:[~2007-12-09 21:22 UTC | newest]

Thread overview: 22+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2007-11-30 22:56 declare-function in files from Gnus (hashcash.el, imap.el) Reiner Steib
2007-11-30 23:27 ` Glenn Morris
2007-12-01 18:35   ` Reiner Steib
2007-12-01 18:54     ` Dan Nicolaescu
2007-12-01 20:35       ` Glenn Morris
2007-12-01 20:40         ` Dan Nicolaescu
2007-12-01 21:50     ` Glenn Morris
2007-12-01 21:42 ` syncing from Emacs to Gnus [was Re: declare-function in files from Gnus (hashcash.el, imap.el)] Glenn Morris
2007-12-01 23:22   ` syncing from Emacs to Gnus Reiner Steib
2007-12-02 14:56     ` Stefan Monnier
2007-12-02 18:39     ` Richard Stallman
2007-12-03  2:25       ` Stefan Monnier
2007-12-03 18:43         ` Richard Stallman
2007-12-03 18:59           ` Stefan Monnier
2007-12-06  2:12             ` Richard Stallman
     [not found] ` <fir8np$3br$1@ger.gmane.org>
     [not found]   ` <200712011634.lB1GYCkr018222@oogie-boogie.ics.uci.edu>
     [not found]     ` <87mysuwdcx.fsf@neutrino.caeruleus.net>
     [not found]       ` <E1IybxG-0000AT-DD@fencepost.gnu.org>
     [not found]         ` <87ac27w4lz.fsf@neutrino.caeruleus.net>
     [not found]           ` <E1IywKa-0006WN-2v@fencepost.gnu.org>
     [not found]             ` <87u00eufga.fsf@neutrino.caeruleus.net>
     [not found]               ` <200712022237.lB2MbNC8016800@oogie-boogie.ics.uci.edu>
     [not found]                 ` <v9d4tnxtiw.fsf@marauder.physik.uni-ulm.de>
     [not found]                   ` <200712032340.lB3Ne3Vt009200@oogie-boogie.ics.uci.edu>
2007-12-05 20:35                     ` declare-function in files from Gnus (hashcash.el, imap.el) Reiner Steib
2007-12-05 21:01                       ` Glenn Morris
2007-12-08 19:42                         ` Reiner Steib
2007-12-08 22:58                           ` Dan Nicolaescu
2007-12-09  2:20                             ` Glenn Morris
2007-12-09 20:10                               ` Austin Frank
2007-12-09 21:22                                 ` Reiner Steib

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 NNTP newsgroup(s).