[swift-evolution] Idea: Support #if os(Darwin) as shorthand for os(iOS) || os(OSX) || os(watchOS) || os(tvOS)
Max Howell
max.howell at apple.com
Fri Feb 19 18:50:56 CST 2016
SwiftPM passes DEBUG and NDEBUG. Ugly, but the standard.
> On Feb 19, 2016, at 12:41 PM, Erica Sadun via swift-evolution <swift-evolution at swift.org> wrote:
>
> I've had to reverse all my `#if os`'s because nearly all the code on iOS/watchOS/tvOS is shared, so all my code that *used* to be `#if os(iOS)` is now based on OS X because of that.
>
> I'd very much welcome a larger vocabulary, not to mention picking up debug/release (pretty please)
>
> -- E
>
>
>> On Feb 19, 2016, at 12:53 PM, Jordan Rose via swift-evolution <swift-evolution at swift.org> wrote:
>>
>> I agree that we need something here, but I really like the property we have today that all of the "os" options are mutually exclusive. (Compare: TARGET_OS_IPHONE and TARGET_OS_IOS in <TargetConditionals.h>.) I'd be happy to invent a new predicate for this, though.
>>
>> Other considerations:
>> - Different Linux distros?
>> - Common ground across BSDs?
>> - Unixy? (vs. Windows)
>>
>> And for other platform conditions:
>> - Architecture subtypes?
>> - Architecture families? ("32-bit" is a good one.)
>>
>> Jordan
>>
>>
>>> On Feb 19, 2016, at 11:19, Kevin Ballard via swift-evolution <swift-evolution at swift.org> wrote:
>>>
>>> I'd like to see #if support os(Darwin) as shorthand for any Apple platform. This is a lot shorter to type, and it's also future-compatible if Apple ever releases another Darwin-based platform. If os(Darwin) evaluates to true, then `import Darwin` should always work, and presumably `import Foundation` as well.
>>>
>>> Without this, I think people are going to be tempted to write `if !os(Linux)` instead of writing out all 4 Apple platforms, and this is unfortunate because it makes the assumption that Linux is the only non-Apple platform, and that's simply not true.
>>>
>>> -Kevin Ballard
>>> _______________________________________________
>>> swift-evolution mailing list
>>> swift-evolution at swift.org
>>> https://lists.swift.org/mailman/listinfo/swift-evolution
>>
>> _______________________________________________
>> swift-evolution mailing list
>> swift-evolution at swift.org
>> https://lists.swift.org/mailman/listinfo/swift-evolution
>
> _______________________________________________
> swift-evolution mailing list
> swift-evolution at swift.org
> https://lists.swift.org/mailman/listinfo/swift-evolution
More information about the swift-evolution
mailing list