*BSD News Article 31110


Return to BSD News archive

Path: sserve!newshost.anu.edu.au!munnari.oz.au!constellation!osuunx.ucc.okstate.edu!newsfeed.ksu.ksu.edu!moe.ksu.ksu.edu!vixen.cso.uiuc.edu!sdd.hp.com!elroy.jpl.nasa.gov!decwrl!vixie!vixie
From: vixie@vix.com (Paul A Vixie)
Newsgroups: comp.os.386bsd.development
Subject: Re: Request to ``ports'' developers
Date: 29 May 94 04:19:24
Organization: Vixie Enterprises
Lines: 41
Distribution: world
Message-ID: <VIXIE.94May29041924@office.home.vix.com>
References: <2s291q$pnl@meatball.rwwa.com> <2s37a4$mp9@pdq.coe.montana.edu>
	<VIXIE.94May27220527@office.home.vix.com> <hm.770154713@hcswork>
	<VIXIE.94May28221230@office.home.vix.com>
	<JKH.94May29085921@whisker.hubbard.ie>
NNTP-Posting-Host: office.home.vix.com
In-reply-to: jkh@whisker.hubbard.ie's message of 29 May 1994 08:59:21 GMT

> one would have to start thinking of operating systems releases in terms of
> vintages ("Oh, I see this is an april '93 HPUX - that was a very fine year!
> Yes, vendor, I'll have that please!" :-).

I was going to follow up humourously on this message but I decided not to.
Then as I was brushing my teeth I realized that my reply wasn't humourous
after all, I _mean_ it.

"That's how it is, Jordan."

Systems _do_ evolve.  Version N of an operating system or library or
whatever will have fewer features than Version N+1 but more than Version
N-1.  When I write code for these systems I have the choice of coding for
the least common denominator, which often results in a suboptimal program
that doesn't take good advantage of a system's recent improvements, or
putting in some #ifdef's which often results in an unreadable and
unmaintainable and generally gateful program text.

Imagine using stty/gtty all the time rather than trying to use termios if
it's there -- your program will not be able to go faster than 38400 baud
even if the system supports it.

The key to #ifdef's is to do them _sensibly_.  They don't have to be icky.

But I sure would like it if ULTRIX was defined as a datecoded macro in
<sys/param.h>, since that way BIND and my other software systems could make
compile-time decisions about which kernel bugs to work around, rather than
testing for the existence of macros which I knew (because I worked at DEC
at the time) weren't in some older version of the system.  Talk about your
counter-intuitive software.

So, yes, I'd much rather choose, or at least know, the vintage of my system.
BSD is luminary in the field for many reasons, and this is one of them.  The
folks at CSRG understood that programs and programmers would want to know the
date code of the BSD System Interface that describes the system.  I wish that
the iron vendors would be as wise, but I think I know better by now.
--
Paul Vixie
Redwood City, CA
decwrl!vixie!paul
<paul@vix.com>