An advantage of ctwm is that it has a looooooong history.  It's been
asked to, and succeeded in, running on such an enormous range of
software and hardware over the years, that it makes your head spin.

But that's a disadvantage too.  It means we have a huge pile of cruft
and optional bits and defaults that may make no sense today.  And it
leaves a lot of uncertainty about what sort of changes can be gotten
away with.  For instance, today I came across a need to make a change
to a piece of code that really needs a 32-bit var.  No problem, we've
got types for that in C99, which was 12 years ago, and is even now
superseded by C11.  But, wait; can I use those types in ctwm?


So, I think we should step back and spell out just what our baseline
is.  What all are we willing to claim as supported?  What do we
require of of the system?  What happens when I commit a change that
breaks $NON_MAINSTREAM_SYSTEM (and what systems are on that list
anyway)?


Certainly we need to work on a long chain of living POSIX-ish systems.
The various BSD's, the Linuxen, the Solaris-oids.  Probably people are
running it with X on OS X.  HP/UX maybe?  As a group, they're probably
easy enough for anybody on one of the above to make reasonable guesses
of support for.

Possibly Windows too?  At least Richard apparently still cares about
VMS, last I heard.  But from here, I have no idea what special
requirements those sort of platforms have, which leaves me scared
directly to even consider touching code that might have those sort of
variances, and has knock-ons to higher level issues like compiler
support levels.

And there are systems with at least nominal support that we can
probably ignore with new dev.  I mean, look at:

#if defined(VMS) || defined(ultrix) || defined(sequent) || defined(sony_news) 
|| defined(riscix)

Now, maybe there's somebody with a 20 year old DECStation, or a 25
year old NEWS, or a 33MHz ARM3, still out there running ctwm.  There
probably is, knowing some of the nutcases like me around.  But I for
one am willing to not care overmuch about whether we break them in new
code.


We're certainly broken on K&R compilers.  Probably require at least
fair conformance to C89.  What systems do we care about that don't
have reasonably competent C99 support?


And so on.  We at least theoretically support building without JPEG
and even XPM support.  In 2012 (or 2002, for that matter) who needs
to?  There's some ancient imconv support; a quick google doesn't turn
up any live existence of it more recent than some site docs saying
"hey, we have it installed" from last millennium.  Does anybody use
the rplay support?


I don't have much time to hack ctwm, and I don't think I'm remotely
alone in that.  And I still use it anyway because it keeps working for
me.  But I think having a defined focus is helpful anytime you DO want
to pick something up.  Doubly so, the less exotic stuff it includes.


-- 
Matthew Fuller     (MF4839)   |  [email protected]
Systems/Network Administrator |  http://www.over-yonder.net/~fullermd/
           On the Internet, nobody can hear you scream.

Reply via email to