[swift-evolution] Idea: Support #if os(Darwin) as shorthand for os(iOS) || os(OSX) || os(watchOS) || os(tvOS)
erica at ericasadun.com
Fri Feb 19 14:41:06 CST 2016
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)
> 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.)
>> 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
> swift-evolution mailing list
> swift-evolution at swift.org
More information about the swift-evolution