5 ms·
When a new C++ feature is proposed does the proposer have to provide a reference implementation? How can features be missing from the major compilers?
by chrisseaton 4y ago
When a new C++ feature is proposed does the proposer have to provide a reference implementation? How can features be missing from the major compilers?
- pjmlp 4y agoYes to some extent, depends on how one wants to defend their paper at ISO, during the several voting sessions. Even when they do, it is in prototype done by the paper's author, not necessarily something that you can merge right away into upstream. Visual C++ is already there in C++20 and increasingly improving C++23 support as well.
- chrisseaton 4y agoI wonder if a feature has been accepted that turned out to not be tractably implementable! I work on Ruby compilers and people often suggest features that they don’t realise would be catastrophic for performance if implemented, or are sometimes literally impossible to implement.
- pjmlp 4y agoExcept Visual C++ already has those ideas implemented, so.... Even exported templates, as hard as they were, the EDG folks actually implemented them, only others decided not to follow upon. The current state with clang is a mix of MIT like license, and those that profit from it not caring about upstream, even GCC is doing better.
- hi_herbert 4y agoI'm pretty sure this rethoric is fallacious, most VMs/languages are not GPL and have MIT-like licenses and yet do not have the issue. It's just that clang lack human resources. Compagnies are not really secretly maintaining their own fork of clang with full support for modern c++. It's not in their economic interest to have to fo all tjis engineering. Instead of malice it'd just plain mediocrity. Yes there are trillion dollars companies that would benefit from better c++ but either they use GCC, either they fail to understand that clang needs funding by pure and quite universal mediocrity. Also the thing is, most languages do not afford to have multiple serious implementations because it is economically absurd, it divide progress by 2 and duplicate the bug surface by 2. GCC at least for the foreseeable future is the de facto C++ implementation.
- pjmlp 4y agoThe facto only for FOSS systems I guess.
- pwdisswordfish9 4y agoDoes memory_order_consume count? > people often suggest features that they don’t realise would be catastrophic for performance if implemented, or are sometimes literally impossible to implement. Oh, that's every language.
- Sharlin 4y agoTemplate export was implemented by a single compiler vendor, and that served as a cautionary tale for all other vendors against trying the same.
- gpderetta 4y agoEDG, right after having implemented export, successfully proposed to remove it from the standard as it was hard to implement and mostly useless!
- JonChesterfield 4y agoNo. Ideally there would be an implementation before it ships in a standard but that's not considered necessary.
- kllrnohj 4y agoSame reason caniuse.com exists for browsers. This just comes from the territory of a language/runtime/platform that doesn't have a monopoly implementation.