xc/programs considered harmful

Adam Jackson ajax at nwnk.net
Fri Dec 17 12:49:16 PST 2004


On Friday 17 December 2004 14:57, Torrey Lyons wrote:
> Unfortunately this topic turned into a debate about the modular vs.
> monolithic tree. I don't have a problem with the modular tree, but I
> and others do have issues with killing the monolithic tree piece meal
> to aid acceptance of the modular tree.

I'd like to point out here that hoisting chunks out of the monolith has the 
side effect of making the _monolith_ more maintainable.

I've given links to proposed package breakdowns.  I've explained how the 
server component would be broken down.  If there's really a desire for a 
formal enumeration, please let me know, I'll be more than happy to write one 
up.

You know what, why am I even asking.  Clearly there's a need.  Give me a few 
hours and some more Red Bull and I'll pound one out.

> If I had good answers to these questions, I would feel comfortable
> moving my day to day to development to the modular tree. However, I
> imagine many others are in my situation. We can sink some time into
> trying to figure all this out for ourselves about the modular tree,
> or we can just get the coding done that we care about in the tree we
> know works.

The only way to find out if the modular tree builds and runs on your platform 
of choice, is to attempt to build it and run it.  This does involve a certain 
level of buy-in on the part of the platform maintainers.  It's not fair to 
put the cart before the horse here, and expect a working build system to drop 
into your lap.

Step 1: Decide on a module layout.
Step 2: Write autotool magic for each module.
Step 3: Test the magic on all platforms.
Step 4: Apply platform fixes to autotool magic, iterate until working.

The code, the actual C source, is an opaque object in this discussion.  You 
can literally copy working code across from the monolith until you're 
confident in the build system.  Furthermore you can deploy these objects 
piecemeal in the modular tree; this is a _good_ thing, if you really had to 
do build and run tests on all 400 pieces of the monolith all at once you'd 
never finish.  Particularly if pieces keep getting _added_ to the monolith.

In other words, carving up the monolith until there's nothing left is the 
method that ensures the smoothest transition.  At some point we need to say 
that the next release, whatever its number, is the modular one.  Keep working 
on the _code_ wherever it lives.

- ajax
-------------- next part --------------
A non-text attachment was scrubbed...
Name: not available
Type: application/pgp-signature
Size: 189 bytes
Desc: not available
URL: <http://lists.x.org/archives/xorg/attachments/20041217/112fc2f4/attachment.pgp>


More information about the xorg mailing list