Quuxplusone added a comment.

In D50119#1808616 <https://reviews.llvm.org/D50119#1808616>, @rjmccall wrote:

> If the committee is actively looking into this problem and considering 
> multiple alternatives, I don't see a particular need to accept your proposal 
> into Clang in advance of the committee's decision.  Arguably that would even 
> be somewhat inappropriate, since it might be seen as an endorsement of your 
> proposal over the alternatives, which I don't believe anyone from Clang has 
> looked into.  Letting the committee make a decision also addresses our 
> disagreements about the language design and avoids introducing unnecessary 
> divergence if the eventually-accepted design doesn't match your proposal.
>
> Having a workable patch that you've taken advantage of in various projects 
> should count as implementation experience for the committee's purposes.
>
> If the committee *isn't* taking this up, they absolutely should, though.


I see the situation as exactly the opposite of what you just said. We cannot 
get implementation experience without an implementation. I would like Clang to 
be that implementation. But if Clang refuses to implement anything that is not 
Standard C++, then we have a chicken-and-egg problem: nobody can experiment 
with TR on real codebases until a compiler supports it. I would like Clang to 
be that compiler.

I don't plan to pursue P1144 <https://reviews.llvm.org/P1144> any more in the 
ISO C++ Committee until someone has succeeded in implementing it in a compiler 
and letting people like Mark Elendt 
<https://www.youtube.com/watch?v=2YXwg0n9e7E&t=41m57s> actually use it. You can 
say "ISO ought to take this up" all you want, but if no vendor is willing to 
implement the feature even with a pull request in hand, it's hardly fair to ask 
ISO to save you by standardizing it _before_ the implementation experience is 
in. They should be spending their time standardizing existing practice. That 
WG21 has been really really bad about standardizing vaporware lately is *not* a 
good trend, and I do not plan to encourage the trend.

Can you explain what is the distinction you draw between a new vendor-specific 
attribute like D70469 <https://reviews.llvm.org/D70469> 
`[[clang::acquire_handle]]` or D70520 <https://reviews.llvm.org/D70520> 
`[[clang::export_name]]` or D60455 <https://reviews.llvm.org/D60455> 
`[[clang::sycl_kernel]]`, and a new vendor-specific attribute like D50119 
<https://reviews.llvm.org/D50119> `[[clang::trivially_relocatable]]`? What's 
the secret sauce that permitted those extensions even as this one has stalled 
for years?


Repository:
  rG LLVM Github Monorepo

CHANGES SINCE LAST ACTION
  https://reviews.llvm.org/D50119/new/

https://reviews.llvm.org/D50119



_______________________________________________
cfe-commits mailing list
cfe-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits

Reply via email to