> On Jan 8, 2018, at 17:18, Chris Lattner <clatt...@nondot.org> wrote:
> 
> 
>> On Jan 5, 2018, at 4:19 PM, Jordan Rose via swift-dev <swift-dev@swift.org 
>> <mailto:swift-dev@swift.org>> wrote:
>> 
>> Hi, all. Swift 4.1 is off on its own branch and going well, but we never 
>> quite came up with an answer for a particular problem developers might have: 
>> "am I running a Swift 4.1 compiler?”.
> 
> I agree, this is getting bad.  Ted mentioned that something like 
> __has_feature in clang is probably the best way to go, so people could check 
> the specific thing they care about, instead of a set of global version 
> numbers.
> 
> Another thing that could help is something along the lines of:
> 
>       #if swift_stdlib(>=5.0)
> 
> which would presumably be active in any language mode when the 5.0 standard 
> library is available.  It would be even better to use a generalized 
> availability system for this: the standard library version could be treated 
> just like Foundation versions are handled, for example.

Yep, though there's a difference between compile-time availability (which is 
what `#if swift` and `@available(swift, …)` check) and run-time availability 
(which is what `@available(macOS, …)` and `#available` check). Thus far, 
availability of features in the standard library has been a compile-time check, 
but as soon as the standard library starts shipping with Apple's OS, it becomes 
a run-time check. The conclusion I draw is that there's a good chance we'll end 
up with different solutions for checking compiler versions vs. checking 
run-time versions.

(And then there's another thing people have asked for, which is statically 
checking SDK versions. Thus far they've been able to emulate that with `#if 
swift` because we've shipped a new Swift with every new Apple SDK, but it's 
still potentially an interesting feature.)

Jordan

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

Reply via email to