Post by Robert A DuffPost by Nick MaclarenI was active in WG14 at the time that was picked up for C (and hence
C++), and I saw no evidence that there was any user interest among
the C user community, either. As with long long, I investigated,
Interesting.
How does WG14 work in practice?
Dysfunctionally. It is run by a caucus, essentially entirely from
within one country. It was a little better in C99, but the only
other active country voted a flat "no" on both technical and
procedural grounds.
Post by Robert A DuffWhat is/was the "long long" issue?
In K&R C and C90, (unsigned) long was guaranteed to be the longest
integer type. In C99, it was asserted that vast amounts of software
assumed that long was 32-bit, and many compilers used long long to
provide 64-bit. Despite repeated requests, the proponents never
produced ONE example of such a compiler, though they mentioned
Microsoft - in fact, the relevant compiler was still in development.
I investigated, and found no examples, but the proposed change
broke the majority of 24 widely-used and portable Internet programs,
with only gcc itself having any significant use of long long!
That was not the only reason that so many C using communities
gave C99 the thumbs down, but it was perhaps the main one. Even
today, a huge number of programs rely on the C90 guarantee, and
all but one compiler (with one option) provide it, as far as I
know.
Post by Robert A DuffYeah, well, sometimes language standards committees add features
that users don't particularly want. Ada 2005 added support for leap
seconds, which as far as I can tell was just a waste of effort.
C added support for threads, but I don't see the point, because there's
already a standard for threads in C -- Posix. (Ada had threads since
Day 1, of course. The GNAT implementation is built on top of Posix
threads, on platforms that support it.)
POSIX threading is so broken as to be effectively unusable in any
program that wants either portability or reliability. However,
that is not a justification for adding it to C, because almost
nobody in the IT world wants any extensions (let alone yet more
incompatible changes) to C. Indeed, of the C using communities
I followed, the number that had adopted C99 even in principle
reached half only in 2012. Few of them have even heard of C11,
and I know none that give a damn about it except on legalistic
grounds.
Regards,
Nick Maclaren.