* 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 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 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: 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-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
* 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) 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: 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) 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) 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) 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
* 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: 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: 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: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: 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
* 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-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
* 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
* 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: 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: 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: 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: 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: 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
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 external index https://git.savannah.gnu.org/cgit/emacs.git https://git.savannah.gnu.org/cgit/emacs/org-mode.git This is an external index of several public inboxes, see mirroring instructions on how to clone and mirror all data and code used by this external index.