3 ms·
>That has never been true. Some software does actually reach a "done" state, where there is nothing left to do, assuming no major platform changes. wc will pr
by qwertyuiop924 10y ago
>That has never been true.
Some software does actually reach a "done" state, where there is nothing left to do, assuming no major platform changes.
wc will probably work as intended until UNIX itself shambles off the coil at this point.
- fanf2 10y agoLet's have a look at maintenance activity on wc, shall we? https://svnweb.freebsd.org/base/head/usr.bin/wc/wc.c?view=log https://svnweb.freebsd.org/base/head/usr.bin/wc/wc.c?view=lo... http://git.savannah.gnu.org/cgit/coreutils.git/log/src/wc.c http://git.savannah.gnu.org/cgit/coreutils.git/log/src/wc.c
- qwertyuiop924 10y agoBSD wc hasn't been touched in a year. GNU wc's recent patches were either the addition of features, or bugfixes for what seem to be relatively new features. Or optimization. But you could pull in wc from V7 on modern computers, and it would still work. (assuming GCC can still compile K&R C).
- groovy2shoes 10y agoYup. Likewise, the version of `wc` from Kernighan & Plaugher's «Software Tools in Pascal» still compiles and runs with any ol' ISO Pascal compiler, and still does exactly what the manpage says it does. As an aside, I'm pretty sure K&R C is a subset of ANSI C, so any ANSI C compiler should be able to compile K&R C.
- qwertyuiop924 10y ago>pretty sure K&R C is a subset of ANSI C, Not so, AFAICT. For one thing, K&R function declarations looked like this: int main(argc, argv) int argc, char **argv { ... } Ever wonder where 1TBS came from? Also, in K&R, function prototypes didn't list args.
- groovy2shoes 10y agoYes, function declarations did look like that. And GCC accepts it totally silently in pedantic ANSI C mode, not even warnings: 11:44:57 cory@tizona /home/cory/Workspace/test $ cat knr.c #include <stdio.h> main(argc, argv) int argc; char **argv; { int z = foo(3, 4); printf("foo is %d\n", z); } foo(x, y) { return x + y; } 11:44:59 cory@tizona /home/cory/Workspace/test $ gcc -std=c89 -pedantic -o knr knr.c 11:45:07 cory@tizona /home/cory/Workspace/test $ ./knr foo is 7 11:45:11 cory@tizona /home/cory/Workspace/test $ gcc -v Reading specs from /usr/lib64/gcc/x86_64-slackware-linux/5.3.0/specs COLLECT_GCC=gcc COLLECT_LTO_WRAPPER=/usr/libexec/gcc/x86_64-slackware-linux/5.3.0/lto-wrapper Target: x86_64-slackware-linux Configured with: ../gcc-5.3.0/configure [...] Thread model: posix gcc version 5.3.0 (GCC) I seem to recall the compatibility was deliberate on the part of the ANSI C WG, for hopefully obvious reasons.
- qwertyuiop924 10y agoHuh. Didn't know that. Okay...