jonathaneunice
6 days ago
I complied Kermit for IBM's AIX in ~1989 as a study in "how compatible is AIX to other Unixes?" Kermit source code remains the high-water mark in my memory for how many different, incompatible, non-standard platforms one piece of software can support. More than even Unix itself, as it could also run on VMS and non-Unixes of the time. I have never in my life seen so many `#ifdef`s and such complicated "Am I running on this platform or that one? Does it have this feature or that feature? No, what about this other one? Is it HP-UX maybe? HP-UX 6? No, 7? No, 8? No, what about VMS? No, how about SunOS? No, how about Unix System III?" ...on and on, seemingly endlessly.
Kermit was an extraordinary monument to portability in an era when "portable" often meant "we have individually accommodated every incompatible system anyone has ever built or might possibly still be using, however improbably."
Neywiny
6 days ago
Which is interesting because most autoconf programs I've seen do the opposite. They have all these defines and then don't use them. Just seems like a waste of time. Cmake has been better but still sometimes cmake will pass and the code still doesn't build
bandrami
5 days ago
There was for a brief period a Middle Path, called libiberty (now mostly subsumed into gnulib). It generated GNU-compatible shim functions for whatever system you happened to be on that translated those calls into the native calls. So you wrote one clean GNU-esque codebase and gnulib patched together essentially a translation layer for it when you built.
wbl
6 days ago
Autotools on little endian Linux is the biggest waste of CPU time imaginable.
bombcar
5 days ago
Once upon a midnight dreary, while
I compiled, weak and weary,
Over many a quaint and curious
emerge of GNU more—
While I nodded, nearly napping,
suddenly there came a tapping,
As of someone gently rapping, rapping at my chamber door.
“’Tis just automake,” I muttered, “gently checking CPU floor—
Only this, and nothing more.”
“Automake!” said I, “thing of evil!—automake still, if GNU or devil!—
Whether Linus sent, or whether Stallman tossed thee here ashore,
Desolate yet all undaunted, on this desert land enchanted—
On this home by horror haunted—tell me truly, I implore—
Is there—is there caching in Gentoo?—tell me—tell me, I implore!”
Quoth automake, “Nevermore.”
It would be nice if automake remembered your system in a cache.
irishcoffee
5 days ago
Ah.. yup.
burnt-resistor
5 days ago
That was one ethos that was taught at the UC Davis CS program in the 90's-00's. They had clusters of IRIX, Linux, Sun, HP-UX, and (sometimes) MINIX boxes. Homework and lab projects would be nondeterministically graded on any except MINIX. It was also beneficial to add portability for Windows with MS and/or Borland toolchains for some projects. BSD sockets was pretty cross-platform with some idiosyncratic gotchas per platform.
It saddens me whenever someone or a group religiously tie their opinions or assumptions to a particular platform and irrationally scoff at others or refuse to consider that other things exist, are used, and function.
mikaraento
5 days ago
Today’s version would be to grade shell script homework randomly on either Linux or macOS :)
pjmlp
5 days ago
Agreed, specially those that talk about Linux distros when they actually mean UNIX/POSIX.