>>>> "SY" == Steve Youngs
<youngs(a)xemacs.org> writes:
SY> This sounds good. I'd only need to add (require 'poe) to one
SY> .el wouldn't I, like ./mew/mew/mew.el?
No, that would depend on what each individual file requires.
Just put it in all of them.
If Lisp only had functions, we would not need to worry about requires
at build time. (We might want to, for error checking etc, but we
wouldn't need to.) The problem is macros. A macro gets evaluated
twice. The first time, its arguments are treated as literals, and a
new sexp is returned. _This sexp is a compile-time constant._
So macros are expanded by the bytecompiler for efficiency. The
problem is that the bytecompiler provides _no_ facility for lazy
evaluation of macros; when bytecode encounters a call that resolves to
a macro, it pukes. So the bytecompiler _must_ have _all_ macros
available. (This means that although you can get away with redefining
a macro as a function---it will be ignored by compiled code---if you
redefine a function as a macro, you can only pray there is no bytecode
that calls that function.)
So you need to put the require in all .els that call poe.el macros.
Some .els may not call any poe.el macros; then you're OK. Other .els
may require some that requires poe.el; again you're OK. But you don't
really want to bother _checking_, do you?
Not to mention that it's hard to know what macros poe.el will define
(it only defines its functions conditional on the version of Emacs).
Now do you see why I suggested rm -rf libs/apel? :-P
--
University of Tsukuba Tennodai 1-1-1 Tsukuba 305-8573 JAPAN
Institute of Policy and Planning Sciences Tel/fax: +81 (298) 53-5091
_________________ _________________ _________________ _________________
What are those straight lines for? "XEmacs rules."