Based on the feedback from this list, I’ve submitted a revised proposal as PR 
#353.

https://github.com/apple/swift-evolution/pull/353

Thanks,
Harlan

> On Jun 1, 2016, at 9:25 PM, Ben Langmuir via swift-evolution 
> <swift-evolution@swift.org> wrote:
> 
>> 
>> On Jun 1, 2016, at 10:54 AM, Jordan Rose via swift-evolution 
>> <swift-evolution@swift.org <mailto:swift-evolution@swift.org>> wrote:
>> 
>>> 
>>> On May 29, 2016, at 13:20, Chris Lattner via swift-evolution 
>>> <swift-evolution@swift.org <mailto:swift-evolution@swift.org>> wrote:
>>> 
>>>> On May 29, 2016, at 12:58 PM, Erica Sadun <er...@ericasadun.com 
>>>> <mailto:er...@ericasadun.com>> wrote:
>>>> One could make a weak argument that #warning/#error/#message make a nice 
>>>> family of flexible alerts
>>>> just because they're kind of what we're used to already. 
>>> 
>>> Right: it isn’t a bad thing at all, but it is certainly the case that 
>>> people often request adding features to Swift that they see in other 
>>> languages.  Our task is to look at whether the problem is real and 
>>> significant enough to solve, and if the proposal solves it in the best 
>>> possible way consistent with the rest of Swift.
>>> 
>>> An similar example is "#pragma mark”.  Instead of introducing language 
>>> support for it, we codified a comment marker (since it is semantically 
>>> identical to a comment).  Xcode picks it up and does the right thing, and I 
>>> think it has worked out well.
>>> 
>>> As to #warning, Swift’s use of warnings are significant different than the 
>>> use in C.  In C compilers, many of the warnings produced *should* be 
>>> errors, but can’t be because that effects language conformance and could 
>>> break a large body of code.  Swift doesn’t have this problem, so it treats 
>>> warnings as “things that should be addressed before you commit your patch, 
>>> but shouldn’t block a build if (e.g.) you’re in the middle of a big 
>>> refactoring”.  For example, an unused variables is a warning in Swift.
>> 
>> This sounds exactly like what I’d use #warning for. “I’m in the middle of a 
>> big refactoring, and I haven’t gotten to this part yet; let me put a warning 
>> in so I can test the other part but won’t forget to come back to it.” It 
>> might also make sense for doing a series of commits on a branch when you 
>> need to fix something before merging back to trunk.
> 
> +1 to the proposal, and Jordan has captured my feelings very well here so I 
> won’t repeat him.
> 
>> 
>> I think it is important for such diagnostics to show up in compilation, not 
>> just in IDEs, especially with people using the Swift Package Manager. We 
>> could have the compiler parse every comment looking for TODOs and FIXMEs by 
>> default, and emit those as warnings, but I’d want to find out if that 
>> creates a noticeable difference in parsing time. (It also seems odd that 
>> comments would be controlled by #if, but maybe that’s silly.)
>> 
>> +1 to the proposal from me, though I agree with Brent that the parentheses 
>> don’t feel right. This is closer to #if and #setline than #available and 
>> #selector.
>> 
>> Jordan
>> 
>> P.S. #error is also interesting, but more for “things that should never 
>> happen” (like the else branch of a platform check), which makes it a bit 
>> less important. #info/#message can be useful but I’d like to see a concrete 
>> case before designing it.
>> 
>> 
>> _______________________________________________
>> swift-evolution mailing list
>> swift-evolution@swift.org <mailto:swift-evolution@swift.org>
>> https://lists.swift.org/mailman/listinfo/swift-evolution 
>> <https://lists.swift.org/mailman/listinfo/swift-evolution>
> _______________________________________________
> swift-evolution mailing list
> swift-evolution@swift.org <mailto:swift-evolution@swift.org>
> https://lists.swift.org/mailman/listinfo/swift-evolution 
> <https://lists.swift.org/mailman/listinfo/swift-evolution>
_______________________________________________
swift-evolution mailing list
swift-evolution@swift.org
https://lists.swift.org/mailman/listinfo/swift-evolution

Reply via email to