https://gcc.gnu.org/wiki/boringcc
As a boring platform for the portable parts of boring crypto software, I'd like to see a free C compiler that clearly defines, and permanently commits to, carefully designed semantics for everything that's labeled "undefined" or "unspecified" or implementation-defined" in the C "standard" (DJ Bernstein)
And yeah I feel this:
The only thing stopping gcc from becoming the desired boringcc is to find the people willing to do the work.
(Because OSH has shopt --set strict:all, which is "boring bash". Not many people understand the corners well enough to disallow them - https://oils.pub/ )
---
And Proposal for a Friendly Dialect of C (2014)
Case in point: the article has this somewhere in the example code:
struct struct s;
s.member = 42;
s.other_member = 1138;
(ignore the syntax errors and typos, the article is full of them)If new members are added to the struct, you end up with uninitialized memory. With C99 designated init at least the new members are zero-initialized.
Hmm.
The text following this heading seems to take the opposite view. I suspect this is a typo.
However, I think the heading is accurate as written. The "C is not a high level assembler" crowd, in my view, is making a category error, conflating C itself with an ISO standard and abstract machine concept coming decades later.
By the same token, "C is a high level assembler" is a gross oversimplification.
"C isn't not a high level assembler" indeed.
Inconsistent titles, stuff labelled [TOC].
It might be a work in progress and not really ready to be shared widely.
And so on. Is this a work-in-progress thing not meant for public consumption yet?