svenvh added inline comments.
================
Comment at: clang/docs/OpenCLSupport.rst:196
+If an extension adds the functionality that does not modify standard language
+parsing it should not require clang source code modifications. Most commonly
+such extensions add functionality via libraries (by adding new non-native
----------------
Anastasia wrote:
> svenvh wrote:
> > This might need some rephrasing to take TableGen BIFs into account.  I 
> > would consider `clang/lib/Sema/OpenCLBuiltins.td` an integral part of the 
> > clang source code.
> > 
> > Maybe rephrase "clang source code modifications" into "clang parser source 
> > code modifications"?
> I am trying to avoid using parsing in relation to clang since someone might 
> understand it as clang `Parser` library functionality. I have added a note 
> about this case explicitly
> 
> > Note that new functionality in ``OpenCLBuiltins.td`` detailed in 
> > :ref:`<opencl_builtins>` belong to this category even if it is part of the 
> > clang source code.
> 
> Although we do refer to header functionality in the next paragraph anyway 
> where this is referenced but indirectly. I hope it provides enough 
> clarifications for now.
This makes it very confusing for the reader, because you're referring to "this 
category" without defining what a category is.

How about removing that note, and appending to the line above instead:

If an extension adds functionality that does not modify standard language 
parsing it should not require //modifying anything other than header files and 
``OpenCLBuiltins.td`` as detailed in :ref:`<opencl_builtins>`//


================
Comment at: clang/docs/OpenCLSupport.rst:201
+
+Clang has standard headers where new types and functions are being added,
+for more details refer to
----------------
Anastasia wrote:
> svenvh wrote:
> > Should this mention `clang/lib/Sema/OpenCLBuiltins.td` too?
> I think here I don't want to go to too many details of how headers are 
> implemented. I refer to this: 
> https://clang.llvm.org/docs/UsersManual.html#opencl-header that also refers 
> to `OpenCLSupport` page where we explain details on Tablegen header. However, 
> the header topic does require another round of clarifications and I do plan 
> to improve it further iin the near future. 
Fair enough; with the addition I'm suggesting above my concern would be 
addressed anyway.


================
Comment at: clang/docs/OpenCLSupport.rst:219
+
+Pragmas without detailed information of its behavior (explanation of changes it
+triggers in the parsing) should not be added to clang. Moreover, the acceptable
----------------
mantognini wrote:
> svenvh wrote:
> > 
> "of //their// behavior", I think.
Yes!


================
Comment at: clang/docs/OpenCLSupport.rst:221
+triggers in the parsing) should not be added to clang. Moreover, the acceptable
+behavior of pragmas should provide useful functionality to the user.
+
----------------
Anastasia wrote:
> svenvh wrote:
> > Remove "acceptable behavior of".
> > 
> > How do you define "useful functionality"?
> I think this is one of those situations that is hard to define unambiguously, 
> so I am open to suggestions. However, I do want to prevent changes that are 
> reinventing the wheel (i.e. C/C++ already had another way to do the same 
> thing) or functionality that doesn't add any value (i.e. requiring pragma 
> enable to use already added types or functions). This has happened in the 
> past multiple times so I think it is good to be specific that when new 
> functionality is added it should have a reason for it.
> 
> I think the other statement above:
> 
> > New functionality is accepted as soon as the documentation is detailed to 
> > the level sufficient to be implemented.
> 
> is similar. It is not very easy to tell what is the detailed level of 
> documentation. FYI it generally aligns with clang overall policy:
> 
> https://clang.llvm.org/get_involved.html
> 
> > A specification: The specification must be sufficient to understand the 
> > design of the feature as well as interpret the meaning of specific 
> > examples. The specification should be detailed enough that another compiler 
> > vendor could implement the feature.
> 
> I am just emphasizing this item here.
> 
> Regarding 'usefulness' I would even suggest adding it as a general guideline 
> for clang but I think this is not very common. So for now I want to make sure 
> we have it in our guidelines at least since we have encountered this.
I see, though I'm a bit hesitant to accept the word "useful" without any 
further explanation. Would adding the following make sense?

... should provide useful functionality //that cannot be achieved by other 
means// to the user.


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

https://reviews.llvm.org/D97072

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

Reply via email to