[swift-evolution] [Review] SE-0022: Referencing the Objective-C selector of a method

Erica Sadun erica at ericasadun.com
Thu Jan 21 23:51:25 CST 2016


If no one who is actually qualified jumps in, I can take a stab at starting it.

-- E, heading off to bed, and dreaming of screaming snake-case keywords on small planets with small Swift-powered volcanos for cooking breakfast


> On Jan 21, 2016, at 10:47 PM, Douglas Gregor <dgregor at apple.com> wrote:
> 
> 
>> On Jan 21, 2016, at 9:25 PM, Erica Sadun via swift-evolution <swift-evolution at swift.org <mailto:swift-evolution at swift.org>> wrote:
>> 
>> Okay, you know this was coming: let's Groff this thing.
>> 
>> How about #(line) where you can decouple the specific compiler implementation bits from the keyword bits without hardcoding support, enabling implementation of, for example, #(runcible) for future Swift compiler substitution logic.
> 
> The compiler can parse 
> 
> 	#identifier
> 
> or
> 
> 	#identifier(balanaced-set-of-tokens)
> 
> without knowing what the identifier is going to be. One could imagine that as a way to, say, expand a macro in some as-yet-undesigned macro system. #available, #selector, #line, #column, etc. are merely short-term hacks until such a macro system gets designed.
> 
> I’m supportive of sharpening the boa constrictors to #line, #column, etc., but I’m too design-fatigued to write it up. Any takers?
> 
> 	- Doug
> 
>> 
>> -- E
>> 
>>> On Jan 21, 2016, at 10:19 PM, Chris Lattner <clattner at apple.com <mailto:clattner at apple.com>> wrote:
>>> 
>>> 
>>>> On Jan 21, 2016, at 9:17 PM, Erica Sadun <erica at ericasadun.com <mailto:erica at ericasadun.com>> wrote:
>>>> 
>>>> +1 to setting __LINE__ (and friends) free of their unsightly upper snake case. They look like boa constrictors trying to digest a fully-swallowed keyword.
>>> 
>>> Yeah, I totally agree.  Actually, the proper spelling would simply be #line - after all, there’d be no need to shout any more…
>>> 
>>> -Chris
>>> 
>>> 
>>>> 
>>>> -- E
>>>> 
>>>>> On Jan 21, 2016, at 10:04 PM, Chris Lattner via swift-evolution <swift-evolution at swift.org <mailto:swift-evolution at swift.org>> wrote:
>>>>> 
>>>>> 
>>>>>> On Jan 21, 2016, at 4:13 PM, Jordan Rose via swift-evolution <swift-evolution at swift.org <mailto:swift-evolution at swift.org>> wrote:
>>>>>> 
>>>>>>>> 
>>>>>>>> I think that #selector is workable and fits into the model - it would be simple to implement and not cause unnecessary complexity in the implementation.
>>>>>>>> 
>>>>>>>> That said, I’m in favor of x.selector, or #selector(x).  The former seems more syntactically elegant if it is practical.
>>>>>>> 
>>>>>>> The latter gives us easy extensions like
>>>>>>> 
>>>>>>> 	#selector(getter: MyType.property)
>>>>>>> 	#selector(setter: MyType.property)
>>>>>>> 
>>>>>>> #selector is sorta growing on me.
>>>>>> 
>>>>>> +1 from me. At this point in Swift's evolution, the # feels like "invoke compiler substitution logic here”.
>>>>> 
>>>>> I agree.  Along those lines, we could consider renaming __LINE__ and friends to #LINE
>>>>> 
>>>>> -Chris
>>>>> _______________________________________________
>>>>> swift-evolution mailing list
>>>>> swift-evolution at swift.org <mailto:swift-evolution at swift.org>
>>>>> https://lists.swift.org/mailman/listinfo/swift-evolution <https://lists.swift.org/mailman/listinfo/swift-evolution>
>>>> 
>>> 
>> 
>> _______________________________________________
>> swift-evolution mailing list
>> swift-evolution at swift.org <mailto:swift-evolution at swift.org>
>> https://lists.swift.org/mailman/listinfo/swift-evolution
> 

-------------- next part --------------
An HTML attachment was scrubbed...
URL: <https://lists.swift.org/pipermail/swift-evolution/attachments/20160121/8a4a0ee7/attachment.html>


More information about the swift-evolution mailing list