unofficial mirror of emacs-devel@gnu.org 
 help / color / mirror / code / Atom feed
* Re: declare-function in files from Gnus (hashcash.el, imap.el)
  2007-12-01 23:41       ` Richard Stallman
@ 2006-12-01 23:58         ` Ralf Angeli
  2007-12-02 21:26           ` Richard Stallman
  0 siblings, 1 reply; 39+ messages in thread
From: Ralf Angeli @ 2006-12-01 23:58 UTC (permalink / raw)
  To: rms; +Cc: dann, emacs-devel

* Richard Stallman (2007-12-02) writes:

>     > `declare-function' has been discussed here at length. It is used to
>     > avoid the "unknown function" warnings produced by the byte compiler.
>
>     How about putting stuff like that in some sort of header file instead
>     of polluting the package code?
>
> No way!  I do not want to greatly increase in the number of files.

Then one could put all declarations into a single file.

But the point here is that people should take care when changing code
of packages which are supposed to work with other Emacs versions than
the one they are integrated in.

-- 
Ralf

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

* Re: declare-function in files from Gnus (hashcash.el, imap.el)
  2007-12-01 20:44       ` Stephen J. Turnbull
@ 2006-12-02  0:01         ` Ralf Angeli
  2007-12-02  0:33           ` Stephen J. Turnbull
  0 siblings, 1 reply; 39+ messages in thread
From: Ralf Angeli @ 2006-12-02  0:01 UTC (permalink / raw)
  To: Stephen J. Turnbull; +Cc: Dan Nicolaescu, emacs-devel

* Stephen J. Turnbull (2007-12-01) writes:

> Specifically, in an XEmacs package's Makefile, there is a Make
> variable REQUIRES which is set to a list of packages used but not
> actually `require'd by the package being compiled.  This of course
> only works if the functions are autoloaded in the normal environment,
> so what setting REQUIRES does is to arrange to load the autoloads of
> those packages.

Problem is that the code of the external packages is usually not
available when compiling Emacs.

-- 
Ralf

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

* Re: declare-function in files from Gnus (hashcash.el, imap.el)
  2007-12-02 21:26           ` Richard Stallman
@ 2006-12-02 21:59             ` Ralf Angeli
  2007-12-02 22:37               ` Dan Nicolaescu
  0 siblings, 1 reply; 39+ messages in thread
From: Ralf Angeli @ 2006-12-02 21:59 UTC (permalink / raw)
  To: rms; +Cc: dann, emacs-devel

* Richard Stallman (2007-12-02) writes:

>     But the point here is that people should take care when changing code
>     of packages which are supposed to work with other Emacs versions than
>     the one they are integrated in.
>
> It isn't crucial for the files in the Emacs repository to work with
> old Emacs versions.  They just have to work in the next release.

If those files belong to a package which is also being maintained in a
different repository and released independently of Emacs, this will
lead to a fork.  And I don't want that to happen with RefTeX.

-- 
Ralf

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

* 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; 39+ 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] 39+ 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  9:15 ` Ralf Angeli
  2007-12-01 21:42 ` syncing from Emacs to Gnus [was Re: declare-function in files from Gnus (hashcash.el, imap.el)] Glenn Morris
  2 siblings, 1 reply; 39+ 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] 39+ 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  9:15 ` Ralf Angeli
  2007-12-01 16:34   ` Dan Nicolaescu
  2007-12-01 21:42 ` syncing from Emacs to Gnus [was Re: declare-function in files from Gnus (hashcash.el, imap.el)] Glenn Morris
  2 siblings, 1 reply; 39+ messages in thread
From: Ralf Angeli @ 2007-12-01  9:15 UTC (permalink / raw)
  To: emacs-devel

* Reiner Steib (2007-11-30) writes:

> 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).

There is the same problem with RefTeX.

Can somebody explain why these `declare-function' calls are needed?

-- 
Ralf

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

* Re: declare-function in files from Gnus (hashcash.el, imap.el)
  2007-12-01  9:15 ` Ralf Angeli
@ 2007-12-01 16:34   ` Dan Nicolaescu
  2007-12-01 17:09     ` Ralf Angeli
  2008-01-05 13:13     ` Patch for focus-frame use in RefTeX (was: declare-function in files from Gnus (hashcash.el, imap.el)) Ralf Angeli
  0 siblings, 2 replies; 39+ messages in thread
From: Dan Nicolaescu @ 2007-12-01 16:34 UTC (permalink / raw)
  To: Ralf Angeli; +Cc: emacs-devel

Ralf Angeli <angeli@caeruleus.net> writes:

  > * Reiner Steib (2007-11-30) writes:
  > 
  > > 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).
  > 
  > There is the same problem with RefTeX.
  > 
  > Can somebody explain why these `declare-function' calls are needed?

`declare-function' has been discussed here at length. It is used to
avoid the "unknown function" warnings produced by the byte compiler.

Talking about RefTeX, can you please fix this warning:

In reftex-make-separate-toc-frame:
reftex-toc.el:998:35:Warning: `focus-frame' is an obsolete function (as
of  Emacs 22.1); it does nothing.

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

* Re: declare-function in files from Gnus (hashcash.el, imap.el)
  2007-12-01 16:34   ` Dan Nicolaescu
@ 2007-12-01 17:09     ` Ralf Angeli
  2007-12-01 20:44       ` Stephen J. Turnbull
                         ` (2 more replies)
  2008-01-05 13:13     ` Patch for focus-frame use in RefTeX (was: declare-function in files from Gnus (hashcash.el, imap.el)) Ralf Angeli
  1 sibling, 3 replies; 39+ messages in thread
From: Ralf Angeli @ 2007-12-01 17:09 UTC (permalink / raw)
  To: Dan Nicolaescu; +Cc: emacs-devel

* Dan Nicolaescu (2007-12-01) writes:

> Ralf Angeli <angeli@caeruleus.net> writes:
>
>   > * Reiner Steib (2007-11-30) writes:
>   > 
>   > > ... 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).  
>   > 
>   > There is the same problem with RefTeX.
>   > 
>   > Can somebody explain why these `declare-function' calls are needed?
>
> `declare-function' has been discussed here at length. It is used to
> avoid the "unknown function" warnings produced by the byte compiler.

How about putting stuff like that in some sort of header file instead
of polluting the package code?

> Talking about RefTeX, can you please fix this warning:
>
> In reftex-make-separate-toc-frame:
> reftex-toc.el:998:35:Warning: `focus-frame' is an obsolete function (as
> of  Emacs 22.1); it does nothing.

As soon as I get a new computer I can fix that in the source
repository of RefTeX.  I don't have write access to Emacs' repository.

-- 
Ralf

^ permalink raw reply	[flat|nested] 39+ 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; 39+ 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] 39+ 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; 39+ 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] 39+ 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; 39+ 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] 39+ 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; 39+ 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] 39+ messages in thread

* Re: declare-function in files from Gnus (hashcash.el, imap.el)
  2007-12-01 17:09     ` Ralf Angeli
@ 2007-12-01 20:44       ` Stephen J. Turnbull
  2006-12-02  0:01         ` Ralf Angeli
  2007-12-01 23:41       ` Richard Stallman
  2007-12-02 20:07       ` Dan Nicolaescu
  2 siblings, 1 reply; 39+ messages in thread
From: Stephen J. Turnbull @ 2007-12-01 20:44 UTC (permalink / raw)
  To: Ralf Angeli; +Cc: Dan Nicolaescu, emacs-devel

Ralf Angeli writes:

 > How about putting stuff like that in some sort of header file instead
 > of polluting the package code?

What you want IMO is an equivalent of the (misnamed!!) REQUIRES
environment of XEmacs's package system.

Specifically, in an XEmacs package's Makefile, there is a Make
variable REQUIRES which is set to a list of packages used but not
actually `require'd by the package being compiled.  This of course
only works if the functions are autoloaded in the normal environment,
so what setting REQUIRES does is to arrange to load the autoloads of
those packages.

What I don't understand about Emacs's compile process is that Emacs
doesn't depend on external packages.  Why don't these functions get
declared in Emacs's dumped libraries or autoloads?

^ permalink raw reply	[flat|nested] 39+ 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  9:15 ` Ralf Angeli
@ 2007-12-01 21:42 ` Glenn Morris
  2007-12-01 23:22   ` syncing from Emacs to Gnus Reiner Steib
  2 siblings, 1 reply; 39+ 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] 39+ 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; 39+ 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] 39+ 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; 39+ 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] 39+ messages in thread

* Re: declare-function in files from Gnus (hashcash.el, imap.el)
  2007-12-01 17:09     ` Ralf Angeli
  2007-12-01 20:44       ` Stephen J. Turnbull
@ 2007-12-01 23:41       ` Richard Stallman
  2006-12-01 23:58         ` Ralf Angeli
  2007-12-02 20:07       ` Dan Nicolaescu
  2 siblings, 1 reply; 39+ messages in thread
From: Richard Stallman @ 2007-12-01 23:41 UTC (permalink / raw)
  To: Ralf Angeli; +Cc: dann, emacs-devel

    > `declare-function' has been discussed here at length. It is used to
    > avoid the "unknown function" warnings produced by the byte compiler.

    How about putting stuff like that in some sort of header file instead
    of polluting the package code?

No way!  I do not want to greatly increase in the number of files.

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

* Re: declare-function in files from Gnus (hashcash.el, imap.el)
  2006-12-02  0:01         ` Ralf Angeli
@ 2007-12-02  0:33           ` Stephen J. Turnbull
  0 siblings, 0 replies; 39+ messages in thread
From: Stephen J. Turnbull @ 2007-12-02  0:33 UTC (permalink / raw)
  To: Ralf Angeli; +Cc: Dan Nicolaescu, emacs-devel

Ralf Angeli writes:

 > * Stephen J. Turnbull (2007-12-01) writes:
 > 
 > > Specifically, in an XEmacs package's Makefile, there is a Make
 > > variable REQUIRES which is set to a list of packages used but not
 > > actually `require'd by the package being compiled.  This of course
 > > only works if the functions are autoloaded in the normal environment,
 > > so what setting REQUIRES does is to arrange to load the autoloads of
 > > those packages.
 > 
 > Problem is that the code of the external packages is usually not
 > available when compiling Emacs.

That's the rationale for XEmacs's `declare-fboundp', which is intended
to support the preferences of external maintainers, and to some extent
features missing from 21.4.  But I thought there aren't supposed to be
external Lisp packages that can be used to build Emacs, they're all
included.  If such a situation is necessary, it's considered not a
good thing (add the needed library to Emacs or refactor to put the
needed function in the "right" library), and a warning *should* be
generated until the developers fix the problem.

^ permalink raw reply	[flat|nested] 39+ 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; 39+ 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] 39+ 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; 39+ 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] 39+ messages in thread

* Re: declare-function in files from Gnus (hashcash.el, imap.el)
  2007-12-01 17:09     ` Ralf Angeli
  2007-12-01 20:44       ` Stephen J. Turnbull
  2007-12-01 23:41       ` Richard Stallman
@ 2007-12-02 20:07       ` Dan Nicolaescu
  2 siblings, 0 replies; 39+ messages in thread
From: Dan Nicolaescu @ 2007-12-02 20:07 UTC (permalink / raw)
  To: Ralf Angeli; +Cc: emacs-devel

Ralf Angeli <angeli@caeruleus.net> writes:

  > * Dan Nicolaescu (2007-12-01) writes:
  > 
  > > Talking about RefTeX, can you please fix this warning:
  > >
  > > In reftex-make-separate-toc-frame:
  > > reftex-toc.el:998:35:Warning: `focus-frame' is an obsolete function (as
  > > of  Emacs 22.1); it does nothing.
  > 
  > As soon as I get a new computer I can fix that in the source
  > repository of RefTeX.  I don't have write access to Emacs' repository.

 Just post the patches + changelogs here, they will get checked in.

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

* Re: declare-function in files from Gnus (hashcash.el, imap.el)
  2006-12-01 23:58         ` Ralf Angeli
@ 2007-12-02 21:26           ` Richard Stallman
  2006-12-02 21:59             ` Ralf Angeli
  0 siblings, 1 reply; 39+ messages in thread
From: Richard Stallman @ 2007-12-02 21:26 UTC (permalink / raw)
  To: Ralf Angeli; +Cc: dann, emacs-devel

    But the point here is that people should take care when changing code
    of packages which are supposed to work with other Emacs versions than
    the one they are integrated in.

It isn't crucial for the files in the Emacs repository to work with
old Emacs versions.  They just have to work in the next release.

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

* Re: declare-function in files from Gnus (hashcash.el, imap.el)
  2006-12-02 21:59             ` Ralf Angeli
@ 2007-12-02 22:37               ` Dan Nicolaescu
  2007-12-03 18:28                 ` Ralf Angeli
  2007-12-03 23:12                 ` Reiner Steib
  0 siblings, 2 replies; 39+ messages in thread
From: Dan Nicolaescu @ 2007-12-02 22:37 UTC (permalink / raw)
  To: Ralf Angeli; +Cc: rms, emacs-devel

Ralf Angeli <angeli@caeruleus.net> writes:

  > * Richard Stallman (2007-12-02) writes:
  > 
  > >     But the point here is that people should take care when changing code
  > >     of packages which are supposed to work with other Emacs versions than
  > >     the one they are integrated in.
  > >
  > > It isn't crucial for the files in the Emacs repository to work with
  > > old Emacs versions.  They just have to work in the next release.
  > 
  > If those files belong to a package which is also being maintained in a
  > different repository and released independently of Emacs, this will
  > lead to a fork. 

Such files can just add a 1 line compatibility code:

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

^ permalink raw reply	[flat|nested] 39+ 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; 39+ 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] 39+ messages in thread

* Re: declare-function in files from Gnus (hashcash.el, imap.el)
  2007-12-02 22:37               ` Dan Nicolaescu
@ 2007-12-03 18:28                 ` Ralf Angeli
  2007-12-03 23:12                 ` Reiner Steib
  1 sibling, 0 replies; 39+ messages in thread
From: Ralf Angeli @ 2007-12-03 18:28 UTC (permalink / raw)
  To: Dan Nicolaescu; +Cc: rms, emacs-devel

* Dan Nicolaescu (2007-12-02) writes:

> Ralf Angeli <angeli@caeruleus.net> writes:
>
>   > If those files belong to a package which is also being maintained in a
>   > different repository and released independently of Emacs, this will
>   > lead to a fork. 
>
> Such files can just add a 1 line compatibility code:
>
> (unless (fboundp 'declare-function) (defmacro declare-function (&rest r)))

For RefTeX it would probably be better to add something like this only
once to the file being loaded first.  The content and layout of such
files has changed in RefTeX 4.32 (there now is reftex.el and
reftex-base.el, the former being generated), so I'll take care of this
when this version will be synched to the Emacs repository.  Then I'll
also look after the isearch-related changes and their effect on
compatibility.

-- 
Ralf

^ permalink raw reply	[flat|nested] 39+ 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; 39+ 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] 39+ 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; 39+ 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] 39+ messages in thread

* Re: declare-function in files from Gnus (hashcash.el, imap.el)
  2007-12-02 22:37               ` Dan Nicolaescu
  2007-12-03 18:28                 ` Ralf Angeli
@ 2007-12-03 23:12                 ` Reiner Steib
  2007-12-03 23:40                   ` Dan Nicolaescu
  2007-12-04 16:55                   ` Richard Stallman
  1 sibling, 2 replies; 39+ messages in thread
From: Reiner Steib @ 2007-12-03 23:12 UTC (permalink / raw)
  To: Dan Nicolaescu; +Cc: Ralf Angeli, rms, emacs-devel

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)))

I think this is not a good idea...

,----[ (info "(elisp)Coding Conventions") ]
|    * If a package needs to define an alias or a new function for
|      compatibility with some other version of Emacs, name it with the
|      package prefix, not with the raw name with which it occurs in the
|      other version.  Here is an example from Gnus, which provides many
|      examples of such compatibility issues.
| 
|           (defalias 'gnus-point-at-bol
|             (if (fboundp 'point-at-bol)
|                 'point-at-bol
|               'line-beginning-position))
`----

[In Gnus, we had some bug report from XEmacs users that was very hard
to find because some XEmacs package defined an un-prefixed Emacs
function so that the test (fboundp ...) returned t although the
functionality was not as expected.]

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

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

* Re: declare-function in files from Gnus (hashcash.el, imap.el)
  2007-12-03 23:12                 ` Reiner Steib
@ 2007-12-03 23:40                   ` Dan Nicolaescu
  2007-12-05 20:35                     ` Reiner Steib
  2007-12-04 16:55                   ` Richard Stallman
  1 sibling, 1 reply; 39+ messages in thread
From: Dan Nicolaescu @ 2007-12-03 23:40 UTC (permalink / raw)
  To: Ralf Angeli; +Cc: rms, emacs-devel

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)))
  > 
  > I think this is not a good idea...
  > 
  > ,----[ (info "(elisp)Coding Conventions") ]
  > |    * If a package needs to define an alias or a new function for
  > |      compatibility with some other version of Emacs, name it with the
  > |      package prefix, not with the raw name with which it occurs in the
  > |      other version.  Here is an example from Gnus, which provides many
  > |      examples of such compatibility issues.
  > | 
  > |           (defalias 'gnus-point-at-bol
  > |             (if (fboundp 'point-at-bol)
  > |                 'point-at-bol
  > |               'line-beginning-position))
  > `----
  > 
  > [In Gnus, we had some bug report from XEmacs users that was very hard
  > to find because some XEmacs package defined an un-prefixed Emacs
  > function so that the test (fboundp ...) returned t although the
  > functionality was not as expected.]

This situation is not similar, declare-function does not perform any
active action. Why do you think it would matter? 

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

* Re: declare-function in files from Gnus (hashcash.el, imap.el)
  2007-12-03 23:12                 ` Reiner Steib
  2007-12-03 23:40                   ` Dan Nicolaescu
@ 2007-12-04 16:55                   ` Richard Stallman
  1 sibling, 0 replies; 39+ messages in thread
From: Richard Stallman @ 2007-12-04 16:55 UTC (permalink / raw)
  To: Reiner Steib; +Cc: angeli, dann, emacs-devel

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

Yes, that is the way to do it.

    I think this is not a good idea...

    ,----[ (info "(elisp)Coding Conventions") ]
    |    * If a package needs to define an alias or a new function for
    |      compatibility with some other version of Emacs,

This is not that kind of case.  It is a case of backward compatibility
for old Emacs versions.

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

* Re: declare-function in files from Gnus (hashcash.el, imap.el)
  2007-12-03 23:40                   ` Dan Nicolaescu
@ 2007-12-05 20:35                     ` Reiner Steib
  2007-12-05 21:01                       ` Glenn Morris
  0 siblings, 1 reply; 39+ 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] 39+ messages in thread

* Re: declare-function in files from Gnus (hashcash.el, imap.el)
  2007-12-05 20:35                     ` Reiner Steib
@ 2007-12-05 21:01                       ` Glenn Morris
  2007-12-08 19:42                         ` Reiner Steib
  0 siblings, 1 reply; 39+ 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] 39+ 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; 39+ 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] 39+ 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; 39+ 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] 39+ 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; 39+ 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] 39+ 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; 39+ 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] 39+ 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; 39+ 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] 39+ 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; 39+ 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] 39+ messages in thread

* Patch for focus-frame use in RefTeX (was: declare-function in files from Gnus (hashcash.el, imap.el))
  2007-12-01 16:34   ` Dan Nicolaescu
  2007-12-01 17:09     ` Ralf Angeli
@ 2008-01-05 13:13     ` Ralf Angeli
  1 sibling, 0 replies; 39+ messages in thread
From: Ralf Angeli @ 2008-01-05 13:13 UTC (permalink / raw)
  To: Dan Nicolaescu; +Cc: emacs-devel

* Dan Nicolaescu (2007-12-01) writes:

> Talking about RefTeX, can you please fix this warning:
>
> In reftex-make-separate-toc-frame:
> reftex-toc.el:998:35:Warning: `focus-frame' is an obsolete function (as
> of  Emacs 22.1); it does nothing.

Okay, I saw that Glenn went ahead and fixed this in the Emacs trunk.
I've just committed a slightly different change in the RefTeX
repository.  Please apply the following patch to reftex-toc.el in the
Emacs repository in order to synchronize both files with respect to this
part of the code.

2008-01-05  Ralf Angeli  <angeli@caeruleus.net>

	* textmodes/reftex-toc.el (reftex-make-separate-toc-frame):
	Simplify selection of frame focusing function.


--- reftex-toc.el.~1.40.~	2007-12-08 02:02:19.000000000 +0100
+++ reftex-toc.el	2008-01-05 14:04:15.000000000 +0100
@@ -995,10 +995,11 @@
       (select-frame current-toc-frame)
       (switch-to-buffer "*toc*")
       (select-frame current-frame)
-      (if (fboundp 'x-focus-frame) (x-focus-frame current-frame)
-        ;; focus-frame has done nothing in Emacs since at least v21.
-        (if (featurep 'xemacs)
-            (if (fboundp 'focus-frame) (focus-frame current-frame))))
+      (cond ((fboundp 'x-focus-frame)
+	     (x-focus-frame current-frame))
+	    ((and (featurep 'xemacs) ; `focus-frame' is a nop in Emacs.
+		  (fboundp 'focus-frame))
+	     (focus-frame current-frame)))
       (select-window current-window)
       (when (eq reftex-auto-recenter-toc 'frame)
         (unless reftex-toc-auto-recenter-timer


-- 
Ralf

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

end of thread, other threads:[~2008-01-05 13:13 UTC | newest]

Thread overview: 39+ 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  9:15 ` Ralf Angeli
2007-12-01 16:34   ` Dan Nicolaescu
2007-12-01 17:09     ` Ralf Angeli
2007-12-01 20:44       ` Stephen J. Turnbull
2006-12-02  0:01         ` Ralf Angeli
2007-12-02  0:33           ` Stephen J. Turnbull
2007-12-01 23:41       ` Richard Stallman
2006-12-01 23:58         ` Ralf Angeli
2007-12-02 21:26           ` Richard Stallman
2006-12-02 21:59             ` Ralf Angeli
2007-12-02 22:37               ` Dan Nicolaescu
2007-12-03 18:28                 ` Ralf Angeli
2007-12-03 23:12                 ` Reiner Steib
2007-12-03 23:40                   ` Dan Nicolaescu
2007-12-05 20:35                     ` 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
2007-12-04 16:55                   ` Richard Stallman
2007-12-02 20:07       ` Dan Nicolaescu
2008-01-05 13:13     ` Patch for focus-frame use in RefTeX (was: declare-function in files from Gnus (hashcash.el, imap.el)) Ralf Angeli
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

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).