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.
