> On Aug 24, 2016, at 3:57 PM, Jordan Rose <jordan_r...@apple.com> wrote:
> 
> Hey, all. I’m here to propose predefining a macro __swift__ when C code is 
> compiled with Swift. We’ve gotten a few requests for it in the past and 
> haven’t done it so that people don’t write header files that arbitrarily 
> restrict features when used from Swift, or check for "Swift" when they really 
> should be checking for modules support, or Objective-C mode, or nullability 
> support. (Or worse, they guard code under __swift__ and then don’t ever test 
> it, leading to failures to import the module from Swift.)
> 
> However, with Swift 3, it’s now become important for Objective-C authors to 
> be able to control how their APIs look in modern Swift 3 without disrupting 
> existing clients on Swift 2.3. (Or just because Swift 3 style looks 
> out-of-place in Swift 2.3.) The most obvious way to do this would be to 
> define a macro that has the Swift version in it. For Swift version X.Y.Z, we 
> could use something like
> 
> -D__swift__=XYYZZ
> 
> e.g.
> 
> -D__swift__=30001
> 
> for Swift 3.0.1.
> 
> This is option (1). 

Option (1) sounds good to me. We don’t need to make this complicated.

- Doug

_______________________________________________
swift-dev mailing list
swift-dev@swift.org
https://lists.swift.org/mailman/listinfo/swift-dev

Reply via email to