[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Re: Remove cdrtools



On 14-Aug-06, 23:35 (CDT), Nathanael Nerode <neroden@fastmail.fm> wrote: 
> Steve Greenland wrote:
> Um, this is the exact opposite of the philosophy promoted by Autoconf since
> at least version 2.0.  "Feature tests, not system tests".  I can't speak to
> other autotools.

Doesn't matter ("feature tests" was what I was trying to express (badly)
with "or library versions or whatever.) Autoconf encourages writing
mainline code with different branches in a maze of #ifdefs.

Okay, maybe *autoconf* doesn't specificly encourage it, but thats how
the vast majority of users of autoconf do it.

And guess what? System tests are actually more reliable, especially
when the user tells you what the system is. You can simply flip to
compiling foo_linux.c or foo_solaris.c and go on your way. There are
quite often subtlities in how things work on a particular system that
are not distinguishable by simple compile tests about whether or not
something is there.

> > Real portability involves understanding  
> > your target systems, learning where the rough edges and corner cases
> > are, and developing proper abstractions to work around them.
> 
> Furthermore, 'best practice' use of autoconf is to isolate the feature
> differences in a single piece of wrapper code, so that your main code only
> has to deal with (e.g.) 'memmove', and it's emulated where it isn't
> present.  The emulation code is the only code containing #ifdefs, which are
> then based on the features detected by autoconf.

Ha ha ha ha.

I admit there may be some out there who use it that way. Don't see it
very often.

Also, please, checking for memmove? This is 2006. Everytime I sit
through the endless "checking for memcpy()..." crap I cringe. Why are we
still wasting my time checking for features that were standardized 17
years ago? And don't give me the "but it will still work on old/weird
systems" crap. Most of it won't even compile (much less work!) on
Solaris 2.7 or AIX 5, and those are (relatively) recent C89/Posix
environments.

Steve

-- 
Steve Greenland
    The irony is that Bill Gates claims to be making a stable operating
    system and Linus Torvalds claims to be trying to take over the
    world.       -- seen on the net



Reply to: