[swift-evolution] [Draft] Introducing Build Configuration Tests for Platform Conditions
Erica Sadun
erica at ericasadun.com
Tue Mar 15 11:10:00 CDT 2016
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.
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <https://lists.swift.org/pipermail/swift-evolution/attachments/20160315/d0195733/attachment.html>
More information about the swift-evolution
mailing list