Who'da thunk'a dat?

On optimizing Linux boots: “The X Window System runs the C preprocessor and compiler on startup, in order to build its keyboard mappings.”

And that [gulp … hrullphh] is all you need to know about X [grwawwwlphh!].

Link.

Later in the article: “X is still problematic. ‘We had to do a lot of damage to X…’ ”

I mean, how could they tell?

[Edit: diked-out compiler reference, based on comments.]

This entry was posted in Rantage. Bookmark the permalink.

8 Responses to Who'da thunk'a dat?

  1. Simon says:

    X11’s imake also uses the C preprocessor to build a Makefile from an IMakefile.

  2. Roger says:

    It only runs the preprocessor, not the compiler. The reason is that X in the early days attempted to work with all hardware out there and boy was there a lot of funky stuff. Many of the config files for X were passed through cpp so you could deal with it. One of the most common cases was different cases for colour vs monochrome setups. The config file would be full of #ifdef COLOR

  3. David says:

    @Simon Fortunately, imake is essentially dead. Nothing from X.org still uses it, it’s just kept around for third party users.

  4. markus says:

    Frankly I think I can smell a lot of legacy cruft in X.

    Given that X is so important and Linux market share on desktop is so limited, it would be nice to have the Xorg team think about the future rather than catering to the 1980s standards. It is quite symptomatic that one can go and dig up a lot of useful information both for users and developers in and about KDE but on Xorg this level of information fluctuates a lot (meaning there are much more bad, or unfinished documentation examples)

  5. Kris says:

    @David

    So instead of the oh-so-laughable cpp step, X.org “improved” the build by

    a) breaking up the code into ~500 modules that must each be configured and built separately (and incidentally can’t be built by hand outside of the framework of a third-party distribution that has added back the dependency glue), and

    b) Converting each of them to autoconf.

    This caused literally an order of magnitude increase in build time. How is this an improvement?

  6. landon says:

    From time to time I realize that the commercial software world has a frequently overlooked and significant advantage over that of free software: Companies go out of business.

    If X were run by a company, it would have long ago died. Instead, it’s being maintained and made to work, by hook or by crook, and because it’s free it’s hard to come up with anything better. (Well, and be successful).

    Just my snarky thoughts.

  7. William Mayo says:

    @Landon – I promised myself I’d stop making excuses for X11 until it stopped hitting me. So I won’t make any excuses, and that black eye is from falling down the stairs.

    I still think X has some compelling features besides its price tag. For instance, networked X11 forwarded over SSH has proven a lifesaver for me on at least… well, two occasions. But those two were big deals!

  8. Tom says:

    @Kris: Modular X is Good Thing, it really helps developers to be able to rapidly develop their little bits of the jigsaw.
    Plus, if you just want to modify one small part of X, rather than having to compile the whole damn thing, you can install all components in binary form, then revert/upgrade/replace the component that you want to modify.
    If you do compile from source – not that theres anything wrong with that, I tend to do that on my FreeBSD workstation), you can explicitly select only the drivers etc that you will use.

    @William Mayo: I agree – I’d also put x11vnc on that ‘life saver’ list as well – I could swear I saved that document before going to the meeting.

Leave a Reply

Your email address will not be published. Required fields are marked *