On Wed, Jan 13, 1999 at 09:00:31PM -0800, Kyle Jones wrote:
First, let's look at size. I can already compile XEmacs with or
without the features I want, so I can produce a binary with a
size that suits me. 256MB of SDRAM can be purchased for under
Kyle, thats the
entire point. *YOU* can compile it that way. To YOUR
tastes. Now consider someone in a different position (like me). I
compile up tons of freeware for distribution to our customers, all
neatly packaged on a few CD's. I cannot know what environment the
software will be run on, I can't known what the end user's tastes
are. On a smaller scale, a sysadmin for a school decides to put
XEmacs on a central box for students to use. Does he make the choice
of what is good, bad, pretty or ugly for all users, or should the
users get the choice? By splitting out things into discrete parts,
you not only reduce the size you give flexibility. And while YOU
may be able to afford 256MB of RAM, spending in dollars, can a user
in Slovenia, or Madagascar or Outer Mongolia afford the same luxury?
With a little effort we can keep all of these disaprate worlds happy.
A power user gets everying including the kitchen sink, and if he
wants it its all preloaded and part of the binary. Lowlier users
get the power of choice, and I cant ever see this as being a Bad Thing,
nor can I see it as a waste of time to explore any avenues which
make this possible.
memory. If I can run today's XEmacs on a machine that is five
years old (I can and do) and on the cheapest PC's available
today, then I think we're doing all right. So I don't see in-core
memory size as an issue worth addressing, unless its something
we can do easily.
Your argument holds true only if that is ALL you are doing. I
refuse to believe that you can run a fully laden XEmacs, have a
compile (or maybe even two) going, have a web server running, and
a few ftp sessions active (a fairly typical scenario on a typical
Linux workstation), all in 32MB of memory. And as for ease of doing,
I remain convinced that it *IS* easy, given that a little bit of code
restructuring and Makefile hackery takes place. Such modifications
just make the source more flexible in other ways anyway, so its a
good thing from that point of view alone.
Second, we would have the ability to try different features
quickly. This sounds pretty good, but with what we have today,
there isn't much choice. Lucid vs. Motif is all I can think of.
TTY versus
X11, redisplay-enabled versus batch (granted batch mode is
not very commonly used, although I do so personally for running some
weird Lisp stuff I have written). Sound support, database support,
an HTML parser (and possibly renderer) written in C. The list is
longer than you make it out to be. In a TYPICAL XEmacs session,
few people will use DBM support. Why weigh the entire executable
down with it? If we make it demand-loadable, the user only pays
the penalty of having it there if they actually need it. Same for
all the other cases.
the work? On my 266MHz Pentium, a build from scratch takes a
bit under 11 minutes. Given this, trying out a new feature set
isn't much of a hardship.
See above about the short-sightedness of what YOU are
able to do
in YOUR environment. I do not mean the word "shortsightedness"
to sound antagonistic, please don't take it that way.
Using modules as you describe has a very high coolness factor,
but it just seems to lack practicality. I'd be glad to hear
other opinions.
Well, as I touched on above, here are some options:
HTML parser, sound, database support (for things other than DBM too),
moving some slow Lisp stuff into loadable C code, etc.
> However, if we actually TRY something, and it works, why not
> keep it?
Maintenance. Writing it is only the beginning. The new code has
to be worth the effort that it will take to maintain it years
into the future.
What I meant by TRYING stuff was to TRY to move existing stuff
into modules, more as a proof of concept than ahything else.
If the changes stay, there is no bigger maintenance overhead than
for them as non-loaded modules. This was by design. I tried to make sure
that a module was, from a source point of view, indistinguishable from
code that was compiled intot he base executable.
--
J. Kean Johnston | "If equal affection cannot be,
Engineer, SPG | let the more loving one be me" - W.H. Auden
Santa Cruz, CA +----------------------------------------------------------
Tel: 831-427-7569 Fax: 831-429-1887 E-mail: jkj(a)sco.com