please don't do any major shuffling until we have a proper infrastructure
for supporting (a) moving of stuff between core and packages, (b) different
versions of stuff in the packages for different XEmacs versions.
while it may be theoretically nice to put lots of stuff in packages, it
introduces various major problems:
(1) it is a lot of work to move stuff around, and imho not worth it because
it doesn't get us any functionality improvements, and we have limited
resources.
(2) it tends to introduce *more* dependencies between core and packages, and
tends to make core functionality that should be internal become external,
because we have no clearly defined way *at all* to indicate which functions
in e.g. files.el are private and which ones aren't. as you move from core C
code, to core Lisp code, to semi-core packages, to standard packages, to
other random packages, the quality of coding goes steadily down, and thus
package writers can rarely be trusted to have any good theoretical
understanding of maintainining clear separation between different layers,
much less the ability or desire to actually implement it, particularly given
the utter lack of clear separation just mentioned.
(3) as a result of (2), it impedes core development.
i want xemacs-base, etc. in core because in practice it's very closely
linked and doesn't contain end-user functionality that would benefit from
more frequent releases. having this stuff separate is a *major* practical
headache and has led to a lot of teeth-gnashing and time-wasting on my part.
in conclusion, this separation is a nice idea but not we've really put the
cart before the horse.
who out there has the time to rearrange the two?
i'll be out of touch for a few days.
as for gcpro, michael is right, always err on the side of more gcpro's.
there's nothing wrong with a limited number of functions gcpro'ing their own
arguments if this is documented and increases maintainability.
ben
From: "Stephen J. Turnbull" <stephen(a)xemacs.org>
To: Kyle Jones <kyle_jones(a)wonderworks.com>
CC: John Paul Wallington <jpw(a)shootybangbang.com>, xemacs-beta(a)xemacs.org,
ben_wing(a)hotmail.com
Subject: Re: bug? setenv in 21.5 shadows setenv in xemacs-base
Date: Thu, 18 Jul 2002 11:57:13 +0900
>>>>> "Kyle" == Kyle Jones <kyle_jones(a)wonderworks.com>
writes:
Kyle> The reason to keep that stuff out of the core is that you
Kyle> can make more frequent releases of packages that are
Kyle> separate from the core.
Agreed. You can probably guess just how much of a relief it is to me,
and I bet to Vin, that Steve Y puts out new package releases at the
rate he does. It takes a lot of pressure off!
And Ben (AFAIK) is not in favor of making the core bigger, just putting
the stuff he's working on, with strong implementation dependencies, in
the core.
I'm all in favor of throwing as much stuff out of core as we can, for
exactly the reason you give.[1] However, as I see it, there are four
practical problems.
1. Bootstrapping: you cannot currently build XEmacs and access
packages remotely without the EFS and xemacs-base packages. We need a
reliable bootstrap package transport in the core. We also need a
bootstrap distribution which contains some of the basic packages
useful in setting up XEmacs.
2. Closely related, is that the more stuff we move out of the
core, the more essential stuff is going to be in packages. We are
currently not set up to maintain a devel branch and a stable branch in
packages, but we'll have to do so. The kinds of failures we've had
with EFS on various platforms should be considered indicative of
lurking problems in our setup if we try to move more essential
functions to packages.
3. Some of the _functions_ (not whole libraries) in xemacs-base in
particular, but also in packages like APEL and elib, really should be
part of the core as they depend on implementation details in the core.
We don't have a good way to document "this is core API, that is a
packaged extension" at present.
4. We've done a pretty good job of eliminating shadowing issues as a
major source of user bug reports. But if we're going to be throwing
libraries over the wall into packages, we'll start getting them again.
Ben has talked about an infrastructure for tracking problems like 3
and 4, but I don't know if he's done any of it.
And fifth, who's gonna do all this work? IMHO, it's worth doing.
Footnotes:
[1] I think that Steve B was mostly too conservative when he did the
separation. Eg, lisp-mnt belongs in xemacs-devel, not in the core,
and the FAQ and PROBLEMS at least should be in separate packages, and
NEWS, or at least ONEWS, as well---we now can make doc-only packages,
I think that would have been hard back then. Later developers have
continued in the tradition (there is zero need for gutter-items in the
core, and except for the bootstrap transport, PUI should be packagized).
--
Institute of Policy and Planning Sciences
http://turnbull.sk.tsukuba.ac.jp
University of Tsukuba Tennodai 1-1-1 Tsukuba 305-8573
JAPAN
My nostalgia for Icon makes me forget about any of the bad things. I
don't
have much nostalgia for Perl, so its faults I remember. Scott Gilbert
c.l.py
_________________________________________________________________
Join the worlds largest e-mail service with MSN Hotmail.
http://www.hotmail.com