I've already replied to your e-mail: <a href="http://lists.cs.uiuc.edu/pipermail/cfe-dev/2012-July/022884.html">http://lists.cs.uiuc.edu/pipermail/cfe-dev/2012-July/022884.html</a><div><br></div><div>> <span style="font-family:arial,sans-serif;font-size:13px">The main reason of this topic was to figure out requirements for C++11 attribute parsing, but some of the things we discussed (attribute subject checks, common argument checks) are applicable to handling all kinds of attributes. So, wherever it is possible to make code work for all attribute styles for free, I think, we'll try to do so.</span></div>
<div class="gmail_extra"><br><br><div class="gmail_quote">On Wed, Jul 11, 2012 at 5:52 PM, Aaron Ballman <span dir="ltr"><<a href="mailto:aaron@aaronballman.com" target="_blank">aaron@aaronballman.com</a>></span> wrote:<br>
<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">I had sent this before, but it likely got lost in the mix:<br>
<div class="im HOEnZb"><br>
Should we be concerning ourselves with Microsoft's attribute<br>
(<a href="http://msdn.microsoft.com/en-us/library/f520z3b3(v=vs.110).aspx" target="_blank">http://msdn.microsoft.com/en-us/library/f520z3b3(v=vs.110).aspx</a>),<br>
__declspec attribute, or type attribute parsing and semantics?  Or is<br>
that outside the scope of what you're looking to do?<br>
<br>
</div><span class="HOEnZb"><font color="#888888">~Aaron<br>
</font></span><div class="HOEnZb"><div class="h5"><br>
On Wed, Jul 11, 2012 at 11:43 AM, Alexander Kornienko <<a href="mailto:alexfh@google.com">alexfh@google.com</a>> wrote:<br>
> Once again with updates from Chandler:<br>
> At the moment we have several major requirements for c++11 attribute<br>
> parsing:<br>
> 1. all boring attribute subject checks should be automated (using either<br>
> TableGen or a static code if this is possible);<br>
> 2. automated argument parsing (Sean Hunt planned to do this);<br>
> 3. custom attributes can be added by plugins (Joshua Cranmer has a patch);<br>
> 4. late parsing for attribute arguments (Chandler: "the thread safety<br>
> attributes at the least would benefit from this, and there is definitely a<br>
> desire to migrate those to C++11 syntax on our end");<br>
> 5. automated pretty-printing.<br>
><br>
> Did I forget anything?<br>
><br>
> On Mon, Jul 9, 2012 at 1:43 PM, Alexander Kornienko <<a href="mailto:alexfh@google.com">alexfh@google.com</a>><br>
> wrote:<br>
>><br>
>> To summarize, at the moment we have several major requirements for c++11<br>
>> attribute parsing:<br>
>> 1. all boring attribute subject checks should be automated (using either<br>
>> TableGen or a static code if this is possible);<br>
>> 2. automated argument parsing (Sean Hunt planned to do this);<br>
>> 3. custom attributes can be added by plugins (Joshua Cranmer has a patch);<br>
>> 4. late parsing for attribute arguments? (currently no evidence that this<br>
>> will be necessary, this would be definitely required, if we decide to add<br>
>> c++11 syntax for gcc-style attributes);<br>
>> 5. automated pretty-printing.<br>
>><br>
>> Did I forget anything?<br>
>><br>
><br>
> On Mon, Jul 9, 2012 at 2:14 PM, Chandler Carruth <<a href="mailto:chandlerc@google.com">chandlerc@google.com</a>><br>
> wrote:<br>
>><br>
>> On Fri, Jul 6, 2012 at 10:29 AM, John McCall <<a href="mailto:rjmccall@apple.com">rjmccall@apple.com</a>> wrote:<br>
>>><br>
>>> 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<br>
>>> > for C++11 attributes parsing. Right now, only select attributes are parsed<br>
>>> > in C++11 style, attribute arguments parsing is not implemented, there's no<br>
>>> > common check for matching attribute targets ("Subjects" field in Attr.td).<br>
>>> > 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>
>>> Probably not.  If we do, there's a potential for collision with<br>
>>> attributes introduced by the committee.  It doesn't seem to have any<br>
>>> benefits except giving users a prettier syntax for writing code that is<br>
>>> totally unportable between compilers.<br>
>><br>
>><br>
>> I think there are a very few specific GNU attributes that we should<br>
>> support in either syntax: ones that are really Clang attributes but happen<br>
>> to be in GNU syntax currently:<br>
>><br>
>> - Thread safety attributes<br>
>> - Some of the LLVM attributes such as readnone<br>
>> - Attributes with very active users that would specifically benefit from<br>
>> the improved syntax of C++11 attributes: format string, non-null, and other<br>
>> argument-related attributes which are of particular use to static analysis<br>
>> tools built in and around clang.<br>
>><br>
>> That said, I don't think even these would ever be directly ported. We<br>
>> would naturally use the new name spacing utility to pave the way for<br>
>> increased portability. I would also assume this would be used as a good<br>
>> opportunity to re-think any syntactical problems we've hit over the years,<br>
>> and maybe talk to GCC folks to come up with an agreed-upon set of common<br>
>> names for those likely to be supported in both compilers (format string,<br>
>> non-null, etc).<br>
>><br>
>>><br>
>>><br>
>>> > 2. what new attributes do we expect to appear in c++11 syntax?<br>
>>><br>
>>> Impossible to say;  it depends on the committee.<br>
>>><br>
>>> > 3. will they require late parsing of parameters?<br>
>>><br>
>>> Unlikely, but possible.<br>
>><br>
>><br>
>> The thread safety attributes at the least would benefit from this, and<br>
>> there is definitely a desire to migrate those to C++11 syntax on our end.<br>
><br>
><br>
><br>
> --<br>
> Regards,<br>
> Alexander<br>
><br>
</div></div><div class="HOEnZb"><div class="h5">> _______________________________________________<br>
> cfe-dev mailing list<br>
> <a href="mailto:cfe-dev@cs.uiuc.edu">cfe-dev@cs.uiuc.edu</a><br>
> <a href="http://lists.cs.uiuc.edu/mailman/listinfo/cfe-dev" target="_blank">http://lists.cs.uiuc.edu/mailman/listinfo/cfe-dev</a><br>
><br>
</div></div></blockquote></div><br><br clear="all"><div><br></div>-- <br><div><div><font color="#666666"><span style="border-top-width:2px;border-right-width:0px;border-bottom-width:0px;border-left-width:0px;border-top-style:solid;border-right-style:solid;border-bottom-style:solid;border-left-style:solid;border-top-color:rgb(213,15,37);border-right-color:rgb(213,15,37);border-bottom-color:rgb(213,15,37);border-left-color:rgb(213,15,37);padding-top:2px;margin-top:2px">Alexander Kornienko |</span><span style="border-top-width:2px;border-right-width:0px;border-bottom-width:0px;border-left-width:0px;border-top-style:solid;border-right-style:solid;border-bottom-style:solid;border-left-style:solid;border-top-color:rgb(51,105,232);border-right-color:rgb(51,105,232);border-bottom-color:rgb(51,105,232);border-left-color:rgb(51,105,232);padding-top:2px;margin-top:2px"> Software Engineer |</span></font><span style="border-top-width:2px;border-right-width:0px;border-bottom-width:0px;border-left-width:0px;border-top-style:solid;border-right-style:solid;border-bottom-style:solid;border-left-style:solid;border-top-color:rgb(0,153,57);border-right-color:rgb(0,153,57);border-bottom-color:rgb(0,153,57);border-left-color:rgb(0,153,57);padding-top:2px;margin-top:2px"><font color="#666666"> </font><a href="mailto:alexfh@google.com" style="color:rgb(17,85,204)" target="_blank">alexfh@google.com</a> |</span><span style="border-top-width:2px;border-right-width:0px;border-bottom-width:0px;border-left-width:0px;border-top-style:solid;border-right-style:solid;border-bottom-style:solid;border-left-style:solid;border-top-color:rgb(238,178,17);border-right-color:rgb(238,178,17);border-bottom-color:rgb(238,178,17);border-left-color:rgb(238,178,17);padding-top:2px;margin-top:2px"> <a value="+35315435283" style="color:rgb(17,85,204)">+49 151 221 77 957</a></span></div>
</div><div><font color="#666666"><span style="background-color:rgb(255,255,255);font-family:Arial,Verdana,sans-serif">Google Germany GmbH | </span><span style="background-color:rgb(255,255,255);font-family:Arial,Verdana,sans-serif">Dienerstr. 12 | </span><span style="background-color:rgb(255,255,255);font-family:Arial,Verdana,sans-serif">80331 München</span></font></div>
<br>
</div>