[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