This is an archive of the discontinued LLVM Phabricator instance.

Start tracking Clang's C implementation status
ClosedPublic

Authored by aaron.ballman on Jun 9 2021, 12:58 PM.

Details

Summary

We currently have a very useful page tracking our implementation status of C++ features (https://clang.llvm.org/cxx_status.html) but we have nothing similar for C. This patch adds the initial support for tracking this information. It's a work-in-progress.

Currently, the document is generated by hand from the information listed in the latest C2x draft (http://www.open-std.org/jtc1/sc22/wg14/www/docs/n2596.pdf for the moment) on the papers that directly impact the language (as opposed to library features). This means information is missing about all the C versions before C2x and it is missing the papers that have been accepted but not yet rolled into the working draft.

I verified the proposals that I believe Clang definitively does/does not implement, but I marked a number of papers as "unknown" because I've not had the chance to see what support we have for them yet. I expect the "Unknown" columns to dwindle as I get the chance to check their status more thoroughly. I also expect we'll add papers from C17 and potentially C11, but I am not certain I have the bandwidth to go as far back in time as C99 let alone C89. Once the status page for features is done, a future endeavor can add a DR status page.

Assuming that this status page is desirable to others, I figure we can commit the incomplete page and I can add information to it post-commit, as I have the time. One question this work did raise for me is whether we want to update the bug tracker to have specific C versions like we do for C++ (currently, we categorize by standard version for C++ and just use "C" as a catch-all for all the versions of C)?

Diff Detail

Event Timeline

aaron.ballman requested review of this revision.Jun 9 2021, 12:58 PM
aaron.ballman created this revision.
Herald added a project: Restricted Project. ยท View Herald TranscriptJun 9 2021, 12:58 PM
jyknight accepted this revision.Jun 9 2021, 2:54 PM

Sounds like a great plan to me.

I might suggest adding some text about the page being incomplete, so that people don't wonder if the blank sections for pre-C2x are a bug.

This revision is now accepted and ready to land.Jun 9 2021, 2:54 PM
aaron.ballman closed this revision.Jun 10 2021, 9:02 AM

Sounds like a great plan to me.

I might suggest adding some text about the page being incomplete, so that people don't wonder if the blank sections for pre-C2x are a bug.

Thanks, that's a great suggestion!

I've landed this patch with some additional text about the incompleteness in 3a7a7749417854827cf621eaef6012d31e7a82ab, and I'll update the page as I have the opportunity. If anyone spots anything they think I've misclassified, please let me know.