Swiftでアプリを開発して生計を立てています。私はその言語を楽しんで、できる限り忠実にそれに従います。しかし、それでもなお、私が盲目的に見られているか、またはAppleが非常に静かであるかにかかわらず、特定の事実はすり抜けています。
今日、Swift 3.3と3.4が存在することを発見しました。私は、3.2が4、4.2、および5への移行に使用する3の最後のバージョンであると想定していました。この誤解は、主に Swift.org 、 公式のGitリポジトリ 、そして Xcodeリリースノート それらについては一切言及しない。
したがって、これらも一時的なものであると思いますが、それらがどのIDEまたはコンパイラに含まれるのか、またはそれらに付随する警告はわかりません。以下は私の知識をまとめた表です:
以下の表は、質問が意味をなすように、コンテキスト用に提供されているもので、古くなっています。 この表の更新版を以下の回答に投稿しました。
紫色のスペースはどうなりますか?特に3.3行と3.4行についてですが、他の行がわかっている場合は、それも役立ちます!
信頼できる情報源もすばらしいでしょう。
主な質問に対する可能な回答は次のとおりです。
私は考えません別の可能性があると思います。ただし、私がベースを外れている場合はお知らせください。
これは、図のすべての未知のスペースを埋める完全な答えではありませんが、おそらく私が役立つことに何かを埋めることができます...
Swift 4の開発が始まったとき(そして最初にWWDC17で正式に発表されたとき)、コンパイラのバージョン番号は言語のバージョン番号から分岐しました。 (たとえば、ANSI C標準のバージョン管理が、clangコンパイラーやGCCコンパイラーとは異なることに似ています。)
言語バージョン番号は、言語定義自体、標準ライブラリ、およびAppleプラットフォームSDKがSwiftで表示される方法のソース互換性を追跡します。 「Swift 3」コードがある場合は、Swiftコンパイラのバージョン3、または-Swift-version 3
オプションを使用すると、それ以降のバージョンのコンパイラでコードをコンパイルできるはずです。
しかし、「Swift 3」(言語バージョン)も修正されていません。 Swiftは進化し続けているため、Swift 3は純粋に付加的な言語、標準ライブラリ、SDKへの変更が可能になります。したがって、Swift 3コードベースがあり、作業を開始する場合新しいコンパイラでは、すべてをSwift 4に変換するか、新しいコンパイラ機能の使用を開始するか、古いSwift 3コンパイラとの互換性を維持するかを選択できます。
これは、コンパイラーのバージョンと可能な言語互換バージョンのマッピングがあることを意味します。
Swift 5(言語またはコンパイラ)のリリースはまだありませんが、リリースされると、おそらく-Swift-version 4
モードでのビルドが可能になり、「Swift 4.3」言語バージョンが作成されます。 (将来のSwift 4.xリリースでは、これらの数値が最初に取られないと想定しています。)
私はこの回答の単一のソースを認識していませんが、以下からまとめることができます:
過去のさらに進んだ図の部分に対するいくつかのマイナーな修正:
Xcode 8には、-Swift-version
スイッチを備えた1つのコンパイラーではなく、2つの異なるバージョンのコンパイラーが含まれていました。 Swift 2.3コンパイラを含むXcode 8.3は停止しました 、Swift 3.1をそのバージョンでサポートされる唯一のSwift言語として残しました。
Xcode 7/Swift 2はSwift 1.xコードのコンパイルをサポートせず、移行のみを行います。 Xcode 7.2以降、現在のXcode 10ベータ版までは、「現在に変換Swift構文」マイグレータがまだ含まれています。これは理論的には、古いバージョンのSwiftからの移行をサポートしています。
Xcode 6.0〜6.2.xは、OS X Mavericks(10.9)でのXcodeの実行をサポートしていました。 Xcode 6.3は、OS X Yosemite(10.10)を最初に必要としたものです。
追加のソース: 古いXcodeダウンロード 。
このラベルがどれだけ適切に適用されるかわかりません...
Xcode 8.xにSwift 2.3コンパイラが含まれていた時代は、アプリの構築とApp Storeへの送信が完全にサポートされていました。それでも、当時は[非推奨]だったと言えますが、Appleはそれが固執しないことと、Swift 3.0が後のコンパイラが最初に使用する言語バージョンになることの両方を述べています。後方ソース互換。
Xcode 9ではSwift 3.2が完全にサポートされています。Swift 2.3-> 3.0とは異なり、AppleまたはSwift openからの「このバージョンを削除してから削除する」というメッセージはありません。ソースプロジェクト。 Swift言語バージョン3.2、3.3、および3.4は、開発者が「Swift 3」コードベースを維持しながら、新しいコンパイラとIDEリリースのメリットを享受できるようにするために明示的に存在します。