In this case I'm referring to original-awk/stable,now 2012-12-20-6
.
In other words, are there any significant versions of *nix/BSD that might be running a version of AWK not accurately described by The Awk Programming Language (Aho, Weinberger, Kernighan)?
You seem to be making several assumptions and asking several questions here.
Does https://github.com/onetrueawk/awk implement exactly the POSIX specification and nothing else?
I think the answer is no; there will be behaviors which are not described by POSIX, either because the specification is not detailed enough, or because the author implemented a feature which is not specified by the standard.
Notice also that FIXES
describes a POSIX compatibility enhancement from as recently as earlier this year; presumably it was not the last one, even if the maintainer's intent may well be to adhere to POSIX.
POSIX is also a moving target. Though progress is slow, it gets updates.
Does the 1988 book correspond to the 2019 POSIX standard?
No, obviously not. They are two entirely distinct types of documents for wildly different purposes.
Did the original Awk implementation influence POSIX? Quite obviously. Did they take it and declare it as the one true reference implementation? Clearly not. For one thing, that would definitely have risked their mission - you can't favor any particular implementation at the expense of others if you want your interoperability committee's work to succeed in the field.
Is POSIX a reasonable baseline for compatibility?
It is eventually supposed to be, but there will always be scenarios where, say, small memory footprint is more important than actual interoperability, let alone a rubber stamp which costs time and money to obtain.
(Don't get me wrong, there are many situations where I and many others will pay for that certification, or take our money elsewhere if it's missing. I'm merely pointing out that there are also many situations where we won't care.)
You seem to be approaching this from the wrong angle, anyway. Unless you know more about the POSIX specification than the Awk author, chances are there are interoperability bugs in your script which will not disappear if your script runs under an Awk implementation which perfectly implements the relevant POSIX spec. Your test suite should test for specific behaviors, not trust that the spec and its implementation are bug-free from your perspective.
Is bwk
Awk a minimal baseline for compatibility?
No, I think you will find that there are several other Awk implementations which in some cases are more primitive.
My memory is hazy, but I have recollections of cases where Awk was ahead of the pack (something with Unicode support maybe?) and cases where mawk
, not nawk
, was the one which couldn't behave.
In the background, somebody stage whispers "Busybox."
Is a build from 2012 representative?
Definitely not. As indicated above, bwk
's Awk is still actively supported and even developed.