>>>> "Jerry" == Jerry James
<james(a)xemacs.org> writes:
Jerry> What can I say? I apparently like talking to myself...
I'm listening, Jerry :-)
Jerry> I wrote:
> I wrote about scripts for finding miscompiled macros. Almost all
of
> them turned out to be bugs in the build process, or missing requires, or
> somebody thinking that (require 'foo) inside a function makes foo load
> at compile time. I will send a patch as soon as I get a chance to try
> building my patched tree to see if I fixed everything, or if possibly
> some of the macros expand to expressions containing other macros that
> won't expand properly.....
Jerry> Well, this is turning out to be more difficult than I expected. I had
Jerry> to add some build time dependencies to make macros available at the
Jerry> right times and places, and now I have dependency cycles. For example:
Jerry> 1) gnus contains gnus-util.el, which uses the macro
Jerry> rmail-select-summary, so it requires rmail
Jerry> 2) rmail contains rmail.el, which requires tm-view, so it requires tm
Jerry> 3) tm contains bunches of stuff that require things in gnus
Jerry> And that isn't the only cycle. How should I handle them? I would just
Jerry> ignore them and hope that the right thing happened, but somehow I have
Jerry> reached a state where the build process ends thusly:
Jerry> xemacs -no-autoloads -vanilla -batch -eval '(setq stack-trace-on-error t
load-ignore-out-of-date-elc-files t load-show-full-path-in-messages t)' -l
/usr/src/xemacs/packages/package-compile.el -- gnus w3 mh-e mailcrypt rmail eterm mail-lib
xemacs-base fsf-compat ecrypto tm apel -- -f batch-byte-compile gnus/lisp/earcon.el
Jerry> Loading /usr/local/lib/xemacs-21.4.10/lisp/auto-autoloads...
Jerry> Loading /usr/src/xemacs/packages/xemacs-packages/apel/auto-autoloads...
Jerry> Loading /usr/src/xemacs/packages/xemacs-packages/tm/auto-autoloads...
Jerry> Loading /usr/src/xemacs/packages/xemacs-packages/ecrypto/auto-autoloads...
Jerry> Loading
/usr/src/xemacs/packages/xemacs-packages/fsf-compat/auto-autoloads...
Jerry> Loading
/usr/src/xemacs/packages/xemacs-packages/xemacs-base/auto-autoloads...
Jerry> Loading /usr/src/xemacs/packages/xemacs-packages/mail-lib/auto-autoloads...
Jerry> Loading /usr/src/xemacs/packages/xemacs-packages/eterm/auto-autoloads...
Jerry> Loading /usr/src/xemacs/packages/xemacs-packages/rmail/auto-autoloads...
Jerry> Loading
/usr/src/xemacs/packages/xemacs-packages/mailcrypt/auto-autoloads...
Jerry> Loading /usr/src/xemacs/packages/xemacs-packages/mh-e/auto-autoloads...
Jerry> Loading /usr/src/xemacs/packages/xemacs-packages/w3/lisp/auto-autoloads...
Jerry> Loading
/usr/src/xemacs/packages/xemacs-packages/gnus/gnus/lisp/auto-autoloads...
Jerry> Compiling
/usr/src/xemacs/packages/xemacs-packages/gnus/gnus/lisp/earcon.el...
>> Error occurred processing gnus/lisp/earcon.el:
Jerry> Variable binding depth exceeds max-specpdl-size
Jerry> Done
Jerry> make[2]: *** [gnus/lisp/earcon.elc] Error 1
Jerry> make[2]: Leaving directory
`/usr/src/xemacs/packages/xemacs-packages/gnus'
Jerry> make[1]: *** [gnus/bytecompile.target] Error 2
Jerry> make[1]: Leaving directory `/usr/src/xemacs/packages/xemacs-packages'
Jerry> make: *** [xemacs-packages/bytecompile.target] Error 2
Jerry> It looks like an infinite (require 'foo) recursion somewhere, because
Jerry> this didn't happen until I started adding compile-time requires. Whee!
Jerry> Is there a general rule for handling circular dependencies like this?
Jerry> --
Jerry> Jerry James
Jerry>
http://www.ittc.ku.edu/~james/
--
Adrian Aichner
mailto:adrianï¼ xemacs.org
http://www.xemacs.org/