Front page | perl.perl5.porters |
Postings from October 1999
RE: What the world really needs [was Detecting RedHat...]
Thread Next
From:
Redford, John
Date:
October 27, 1999 06:38
Subject:
RE: What the world really needs [was Detecting RedHat...]
Message ID:
C139F4D49384D2118EB60008C7A4337B016FAA05@MSGBOS675NTS.fmr.com
You hint at the answer, but it is just a bit further. There is an essential
unspoken question in the problem: Can you trust what you are told? For me,
the answer is unambiguously 'no'. Linux says it is Unix, and it is not. AIX
says it is Unix, and it is not. POSIX is not POSIX and SunOS is not SunOS. I
do not believe that "the humans who built the thing" in fact "actually know
what the answers are". Further, I am sure they know nothing about what is
done with "the thing" when it is customized after they build it.
Why not? There are many reasons, but the two primary factors are time and
bugs. POSIX is not POSIX because the standards documents referred to by the
name POSIX have changed over time. It takes further qualification to truly
establish what one is referring to. In practice, it takes the entire text of
the standard to establish what is in the standard. The second factor is
bugs. SunOS/AIX/MS-DOS are not what they claim to be because they invariably
contain bugs which cause the systems to behave in ways contrary to their
documentation.
So you can never say "This is <XXX>" and say anything ultimately meaningful.
However, you can say "This is this." Without regard to what any piece of
documentation says, you have the system and can examine it. One may test the
'features' of the system empirically and compare the computed results with
expectations. Then you have an accurate description of what you have --
valid until what you have changes, which could happen simply by modifying
PATH.
And the tool to do this? autoconf (or Configure). The problem? They only run
once, and the information gets out of date.
The answer for Perl?
use Capability qw(symlinks mmap bsd_sockets);
Perhaps a dynamic interface to autoconf-like system capability validation
checking with user configurable caching properties to reduce test overhead.
Perhaps with a shared network repository of information about known entities
(e.g. the ability to check with ld.so, find the right libc.so, compute a
checksum for it, and look up some of the properties of the functions in the
library by checking with a database on the Internet or elsewhere).
-----Original Message-----
From: Tom Horsley [mailto:Tom.Horsley@mail.ccur.com]
Sent: Wednesday, October 27, 1999 8:41 AM
To: perl5-porters@perl.org
Subject: What the world really needs [was Detecting RedHat...]
All this configure nightmare and standardization war stuff has led me to a
new revelation - what the world really needs isn't a totally standard Posix,
or Linux, or anything else - what the world needs is a standard way to
unambiguously *describe* the uniqueness of all the different systems!
(Maybe a job for XML?).
It even sounds like something that a standards committee might be able to
do, because there wouldn't be any reason to fight over which feature to
standardize, the only job would be cataloging all the features there are and
standardizing how to describe them in a machine readable fashion. The only
argument might be the name to give the standard command everyone would need
to support on their computers that folks could run to gain access to the
database the exact same way on every system. (Microsoft would, of course,
change the name of the command :-).
And think of all the employment opportunities: Manufacturers would
need consultants to help make sure their systems are described. You'd
need test suites to verify the system really works the way its description
file claims it does. The standards group could cash in by charging fees
for certification that systems are described correctly. Heck, this could
easily turn into an even more profitable boondoggle than ISO 9000 :-).
(Particularly if you got the gummint into it with a mandate that all
software systems developed for gummint computers must use this config
database to maximize portability).
But if it ever worked, it would be just billions and billions of times
better than inadequate artificial intelligent scripts trying to deduce the
answers. The answers would already be on the system, produced by the humans
who built the thing and actually know what the answers are.
Come to think of it, this was almost what Imake was supposed to be (but its
main problem was brain sucking negative information content - the more you
looked at it, the less you understood it :-).
Thread Next