Once again with updates from Chandler:<br><div class="gmail_extra"><span style="font-family:arial,sans-serif;font-size:13px">At the moment we have several major requirements for c++11 attribute parsing:</span><div style="font-family:arial,sans-serif;font-size:13px">
1. all boring attribute subject checks should be automated (using either TableGen or a static code if this is possible);</div><div style="font-family:arial,sans-serif;font-size:13px">2. automated argument parsing (Sean Hunt planned to do this);</div>
<div style="font-family:arial,sans-serif;font-size:13px">3. custom attributes can be added by plugins (Joshua Cranmer has a patch);</div><div style="font-family:arial,sans-serif;font-size:13px">4. late parsing for attribute arguments (Chandler: "the thread safety attributes at the least would benefit from this, and there is definitely a desire to migrate those to C++11 syntax on our end");</div>
<div style="font-family:arial,sans-serif;font-size:13px">5. automated pretty-printing.</div><div style="font-family:arial,sans-serif;font-size:13px"><br></div><div style="font-family:arial,sans-serif;font-size:13px">Did I forget anything?</div>
<br><div class="gmail_quote">On Mon, Jul 9, 2012 at 1:43 PM, Alexander Kornienko <span dir="ltr"><<a href="mailto:alexfh@google.com" target="_blank">alexfh@google.com</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
To summarize, at the moment we have several major requirements for c++11 attribute parsing:<div>1. all boring attribute subject checks should be automated (using either TableGen or a static code if this is possible);</div>

<div>2. automated argument parsing (Sean Hunt planned to do this);</div><div>3. custom attributes can be added by plugins (Joshua Cranmer has a patch);</div><div>4. late parsing for attribute arguments? (currently no evidence that this will be necessary, this would be definitely required, if we decide to add c++11 syntax for gcc-style attributes);</div>

<div>5. automated pretty-printing.</div><div><br></div><div>Did I forget anything?</div><div class="gmail_extra"><div><div class="h5"><br></div></div></div></blockquote><div> </div><div><div class="gmail_quote">On Mon, Jul 9, 2012 at 2:14 PM, Chandler Carruth <span dir="ltr"><<a href="mailto:chandlerc@google.com" target="_blank">chandlerc@google.com</a>></span> wrote:<br>
<blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left-width:1px;border-left-color:rgb(204,204,204);border-left-style:solid;padding-left:1ex"><div class="gmail_extra"><div class="gmail_quote"><div class="im">
On Fri, Jul 6, 2012 at 10:29 AM, John McCall <span dir="ltr"><<a href="mailto:rjmccall@apple.com" target="_blank">rjmccall@apple.com</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left-width:1px;border-left-color:rgb(204,204,204);border-left-style:solid;padding-left:1ex">
<div>On Jul 6, 2012, at 7:16 AM, Alexander Kornienko wrote:<br>> The whole purpose of this e-mail is to gather ideas regarding our needs for C++11 attributes parsing. Right now, only select attributes are parsed in C++11 style, attribute arguments parsing is not implemented, there's no common check for matching attribute targets ("Subjects" field in Attr.td). BTW, AFAIK, the latter is not implemented for GNU-style attributes either.<br>
><br>> Currently, I see the following questions:<br>> 1. will we allow c++11 syntax for existing GNU attributes?<br><br></div>Probably not.  If we do, there's a potential for collision with attributes introduced by the committee.  It doesn't seem to have any benefits except giving users a prettier syntax for writing code that is totally unportable between compilers.<br>
</blockquote><div><br></div></div><div>I think there are a very few specific GNU attributes that we should support in either syntax: ones that are really Clang attributes but happen to be in GNU syntax currently:</div><div>
<br></div><div>- Thread safety attributes</div><div>- Some of the LLVM attributes such as readnone</div><div>- Attributes with very active users that would specifically benefit from the improved syntax of C++11 attributes: format string, non-null, and other argument-related attributes which are of particular use to static analysis tools built in and around clang.</div>
<div><br></div><div>That said, I don't think even these would ever be directly ported. We would naturally use the new name spacing utility to pave the way for increased portability. I would also assume this would be used as a good opportunity to re-think any syntactical problems we've hit over the years, and maybe talk to GCC folks to come up with an agreed-upon set of common names for those likely to be supported in both compilers (format string, non-null, etc).</div>
<div class="im"><div> </div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left-width:1px;border-left-color:rgb(204,204,204);border-left-style:solid;padding-left:1ex"><div><br>> 2. what new attributes do we expect to appear in c++11 syntax?<br>
<br></div>Impossible to say;  it depends on the committee.<br><div><br>> 3. will they require late parsing of parameters?<br><br></div>Unlikely, but possible.<br></blockquote><div><br></div></div><div>The thread safety attributes at the least would benefit from this, and there is definitely a desire to migrate those to C++11 syntax on our end.</div>
</div></div></blockquote></div><br></div><div> </div><div>-- </div><div>Regards,</div><div>Alexander </div></div>
</div>