<div dir="ltr">On Thu, Jun 23, 2016 at 4:34 AM, Dmitri Gribenko <span dir="ltr"><<a href="mailto:gribozavr@gmail.com" target="_blank">gribozavr@gmail.com</a>></span> wrote:<br><div class="gmail_extra"><div class="gmail_quote"><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><span>On Thu, Jun 23, 2016 at 2:00 AM, Xiaodi Wu <<a href="mailto:xiaodi.wu@gmail.com" target="_blank">xiaodi.wu@gmail.com</a>> wrote:<br>
> On Thu, Jun 23, 2016 at 1:26 AM, David Sweeris via swift-evolution<br>
> <<a href="mailto:swift-evolution@swift.org" target="_blank">swift-evolution@swift.org</a>> wrote:<br>
>><br>
>><br>
>> > On Jun 22, 2016, at 19:35, Dmitri Gribenko <<a href="mailto:gribozavr@gmail.com" target="_blank">gribozavr@gmail.com</a>> wrote:<br>
>> ><br>
>> >> On Wed, Jun 22, 2016 at 5:15 PM, David Sweeris <<a href="mailto:davesweeris@mac.com" target="_blank">davesweeris@mac.com</a>><br>
>> >> wrote:<br>
>> >> That's a really interesting idea. Is "Syntax" a placeholder, or is that<br>
>> >> the intended name?<br>
>> ><br>
>> > It is the best name we could come up with, we are open to better<br>
>> > suggestions.<br>
>><br>
>> I guess it depends on the intended semantics of the "namespace". If the<br>
>> purpose is to be a container for the various LiteralConvertible protocols,<br>
>> then maybe something like `AcceptsLiteralType.Integer` might be better? It's<br>
>> a bit wordy, though.<br>
><br>
><br>
> I get what's being aimed at here, but I think the meaning of `Syntax` in<br>
> this context is indecipherable. IIUC, the point to be conveyed by the term<br>
> is that a literal has no type until it is supplied as an argument to the<br>
> initializer and becomes typed.<br>
<br>
</span>The point of using "Syntax" is to emphasize that this protocol is for<br>
integration with the language syntax. The "Syntax" pseudo-namespace<br>
groups protocols that provide a special kind of a capability --<br>
changing the meaning of builtin language syntax. This protocol is not<br>
meant to be coded against, used in other APIs or handled by the code<br>
in any other way except by being adopted (except maybe in the standard<br>
library code itself).<br></blockquote><div><br></div><div>This makes a lot of sense now after your expanded explanation. I still think, though, that the name reads rather absurdly. Most charitably, your types would conform to "integer literal syntax," whatever that means. Visually, it looks like your types "conform to Syntax." Could I suggest maybe `SyntacticIntegration` or `SyntaxIntegrating`? Something along those lines.</div><div><br></div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
Should we add any other compiler interfaces that affect how builtin<br>
syntax works, they would also go into the "Syntax" namespace.<br>
<div><div><br>
Dmitri<br>
<br>
--<br>
main(i,j){for(i=2;;i++){for(j=2;j<i;j++){if(!(i%j)){j=0;break;}}if<br>
(j){printf("%d\n",i);}}} /*Dmitri Gribenko <<a href="mailto:gribozavr@gmail.com" target="_blank">gribozavr@gmail.com</a>>*/<br>
</div></div></blockquote></div><br></div></div>