https://gist.github.com/erica/5a344b12bd989f6395c2

I think this one is pretty straightforward, but as always feedback is requested 
and appreciated. 
Let me know if you're okay with the names and the approach and whether there 
are any technical
barriers that need addressing.

Thanks, -- E

Introducing Build Configuration Tests for Platform Conditions

Proposal: SE-00XX
Author(s): Erica Sadun <http://github.com/erica>
Status: TBD
Review manager: TBD
 <https://gist.github.com/erica/5a344b12bd989f6395c2#introduction>Introduction

This proposal introduces configuration test to differentiate platform 
conditions.

This proposal was discussed on-list in the Introducing Build Configuration 
Tests for Platform Conditions 
<applewebdata://DAF46169-949E-4C76-B744-5D8AB8E633A8>.

 <https://gist.github.com/erica/5a344b12bd989f6395c2#motivation>Motivation

Testing for platform conditions is a typical developer task. Although some 
built-in features like CFByteOrderGetCurrentexist, it seems a natural match to 
Swift to introduce build configurations specific to common platform conditions.

 <https://gist.github.com/erica/5a344b12bd989f6395c2#detail-design>Detail Design

This proposal adds the following build configuration tests:

#if endian(big)
#if endian(little)
#if bitwidth(32)
#if bitwidth(64)
 <https://gist.github.com/erica/5a344b12bd989f6395c2#current-art>Current Art

Swift currently supports the following configuration tests:

The literals true and false
The os() function that tests for OSX, iOS, watchOS, tvOS, Linux, Windows, and 
FreeBSD
The arch() function that tests for x86_64, arm, arm64, i386, powerpc64, and 
powerpc64le
The swift() function that tests for specific Swift language releases, e.g. 
swift(>=2.2)
 
<https://gist.github.com/erica/5a344b12bd989f6395c2#alternatives-considered>Alternatives
 Considered

There are no alternatives considered.
_______________________________________________
swift-evolution mailing list
[email protected]
https://lists.swift.org/mailman/listinfo/swift-evolution

Reply via email to