<html><head><meta http-equiv="Content-Type" content="text/html charset=utf-8"></head><body style="word-wrap: break-word; -webkit-nbsp-mode: space; -webkit-line-break: after-white-space;" class=""><div class="">It can’t hurt to work on a proof of concept, but I think it’s worth exploring the space of possible designs before jumping too far into an implementation. I have some code that adds an “annotation” declaration and adds a new attribute kind for custom annotations, though it still needs some work to be useful, most notably validating the annotations. Based on that, it seems clear to me that the major work for a first version isn’t the implementation - which has been straightforward so far - but getting community buy in.</div><div class=""><br class=""></div><div class="">I feel like the best way to do that is to provide convincing examples and thoroughly explore the space of designs to make sure we’re moving in the right direction while leaving room for future improvement.</div><div class=""><br class=""></div><div class="">-Akiva Leffert</div><br class=""><div><blockquote type="cite" class=""><div class="">On Dec 27, 2015, at 2:24 PM, Radosław Smogura &lt;<a href="mailto:rsmogura@icloud.com" class="">rsmogura@icloud.com</a>&gt; wrote:</div><br class="Apple-interchange-newline"><div class=""><meta http-equiv="Content-Type" content="text/html charset=utf-8" class=""><div style="word-wrap: break-word; -webkit-nbsp-mode: space; -webkit-line-break: after-white-space;" class="">I think that throwing out our effort is bed idea. Waiting for reflection system may cause that implementation of attributes will be impossible - both of those things should be done together!<div class=""><br class=""></div><div class="">Maybe it would be good to work on agile, iterative bases? What do you think about defining for MVP</div><div class="">- parsing minimised attribute declaration, enabled by command line feature switch</div><div class="">- producing some AST</div><div class="">- validate attribute tree</div><div class=""><br class=""></div><div class="">Later we can influence each other, and make corrections. It’s not waterfall to define everything upfront.</div><div class=""><br class=""></div><div class="">Best regards,</div><div class="">Radek</div><div class=""><div class=""><blockquote type="cite" class=""><div class="">On 27 Dec 2015, at 19:59, JOSE MARIA GOMEZ CAMA &lt;<a href="mailto:jm.gomez@ub.edu" class="">jm.gomez@ub.edu</a>&gt; wrote:</div><br class="Apple-interchange-newline"><div class="">

<meta http-equiv="Content-Type" content="text/html; charset=utf-8" class="">

<div style="word-wrap: break-word; -webkit-nbsp-mode: space; -webkit-line-break: after-white-space;" class="">
Well, it seems that we will have to wait for the reflection mechanism to be in place.
<div class=""><br class="">
</div>
<div class=""><span class="Apple-tab-span" style="white-space:pre"></span>Best</div>
<div class=""><br class="">
</div>
<div class="">
<div class="">
<blockquote type="cite" class="">
<div class="">El 26/12/2015, a las 20:25, Akiva Leffert &lt;<a href="mailto:aleffert@gmail.com" class="">aleffert@gmail.com</a>&gt; escribió:</div>
<br class="Apple-interchange-newline">
<div class="">
<div style="word-wrap: break-word; -webkit-nbsp-mode: space; -webkit-line-break: after-white-space;" class="">
<div class="">I started off a thread about this a while back: <a href="https://lists.swift.org/pipermail/swift-evolution/Week-of-Mon-20151207/001455.html" class="">
https://lists.swift.org/pipermail/swift-evolution/Week-of-Mon-20151207/001455.html</a></div>
<div class=""><br class="">
</div>
<div class="">Based on the feedback I got, it seemed like the design for a serious custom annotation system should wait until work starts on a macro system so that they can be designed to complement each other. IMO, neither the java nor python versions feel
 right for swift and we can do a lot better than just copying them so it’s worth spending the time to get it right.</div>
<div class=""><br class="">
</div>
<div class="">Additionally, the property behaviors proposal currently on the table would cover some of the use cases for annotations, depending on where it lands. It seems plausible that we can make all these features work together in a nice way.&nbsp;</div>
<div class=""><br class="">
</div>
<div class="">Maybe it’s worth setting up a wiki page or something for use cases of annotations to help inform a future design as well as the design of related features?</div>
<div class=""><br class="">
</div>
<div class="">-Akiva Leffert</div>
<div class=""><br class="">
<blockquote type="cite" class="">
<div class="">
<div class=""><br class="">
Message: 18<br class="">
Date: Sat, 26 Dec 2015 10:03:35 +0000<br class="">
From: JOSE MARIA GOMEZ CAMA &lt;<a href="mailto:jm.gomez@ub.edu" class="">jm.gomez@ub.edu</a>&gt;<br class="">
To: "<a href="mailto:swift-evolution@swift.org" class="">swift-evolution@swift.org</a>" &lt;<a href="mailto:swift-evolution@swift.org" class="">swift-evolution@swift.org</a>&gt;<br class="">
Subject: [swift-evolution] Support for custom attributes<br class="">
Message-ID: &lt;<a href="mailto:331F173E-0A78-44CC-A1E8-E30538431E37@ub.edu" class="">331F173E-0A78-44CC-A1E8-E30538431E37@ub.edu</a>&gt;<br class="">
Content-Type: text/plain; charset=utf-8<br class="">
<br class="">
Dear all,<br class="">
<br class="">
I am quite new to Swift, though I have made some small checks within Xcode, so I could have missed some feature in swift that provides a functionality similar to the want I am proposing.<br class="">
<br class="">
I have been using my own annotations in Java or decorators in Python, and I would like to have an equivalent functionality in Swift. As far as I have seen, there are attributes that can provide a similar solution, but AFAIK you cannot create new ones. Would
 it be possible to add this feature in Swift.<br class="">
<br class="">
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Thanks in advance,<br class="">
<br class="">
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Jose M.<br class="">
<br class="">
<br class="">
<br class="">
Aquest correu electrònic i els annexos poden contenir informació confidencial o protegida legalment i està adreçat exclusivament a la persona o entitat destinatària. Si no sou el destinatari final o la persona encarregada de rebre’l, no esteu autoritzat a llegir-lo,
 retenir-lo, modificar-lo, distribuir-lo, copiar-lo ni a revelar-ne el contingut. Si heu rebut aquest correu electrònic per error, us preguem que n’informeu al remitent i que elimineu del sistema el missatge i el material annex que pugui contenir. Gràcies per
 la vostra col·laboració.<br class="">
<br class="">
Este correo electrónico y sus anexos pueden contener información confidencial o legalmente protegida y está exclusivamente dirigido a la persona o entidad destinataria. Si usted no es el destinatario final o la persona encargada de recibirlo, no está autorizado
 a leerlo, retenerlo, modificarlo, distribuirlo, copiarlo ni a revelar su contenido. Si ha recibido este mensaje electrónico por error, le rogamos que informe al remitente y elimine del sistema el mensaje y el material anexo que pueda contener. Gracias por
 su colaboración.<br class="">
<br class="">
This email message and any documents attached to it may contain confidential or legally protected material and are intended solely for the use of the individual or organization to whom they are addressed. We remind you that if you are not the intended recipient
 of this email message or the person responsible for processing it, then you are not authorized to read, save, modify, send, copy or disclose any of its contents. If you have received this email message by mistake, we kindly ask you to inform the sender of
 this and to eliminate both the message and any attachments it carries from your account. Thank you for your collaboration.<br class="">
<br class="">
</div>
</div>
</blockquote>
</div>
<br class="">
</div>
</div>
</blockquote>
</div>
<br class="">
</div>
</div>

</div></blockquote></div><br class=""></div></div></div></blockquote></div><br class=""></body></html>