Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Adaptive default toolchain version based on Swift version on builder #481

Merged
merged 1 commit into from
Jun 9, 2024

Conversation

omochi
Copy link
Contributor

@omochi omochi commented Jun 9, 2024

現在、cartonの用意するツールチェーンのバージョンは固定でハードコードされています。
これは概ね現在の最新安定版を追従するように更新されています。

しかし、ユーザの開発環境はそれより古いものからまだアップグレードできていなかったり、
逆にリリース前の超最新版を使いたいこともあります。

そのような場合に、ソースコードの編集で使われる言語バージョンと、
cartonがwasmビルドで利用する言語バージョンが異なってしまいます。

対策方法として、.swift-verison ファイルを用意することで、
cartonが利用するバージョンを切り替えることができます。

しかしこれを使うまでもなく、
ユーザが期待するcartonに使って欲しいであろうバージョンは、
ユーザが $ swift run carton bundle するときに叩いている swift のバージョンでしょう。
ファイルで設定することなく、このように期待されるバージョンに切り替われば便利です。

このパッチでは、そのようにデフォルトを切り替えるように変更します。

cartonはswiftpmで依存pluginとして導入することが想定されているため、
そのSwiftのバージョンはcartonコードの中で #if compiler を判別することができます。
実装ではこれを使います。

事前に相談した会話:
https://discord.com/channels/291054398077927425/383442648012423179/1248990244888641648

@kateinoigakukun kateinoigakukun enabled auto-merge (squash) June 9, 2024 12:27
@kateinoigakukun kateinoigakukun changed the title デフォルトのツールチェーンをcartonをビルドしたコンパイラによって切り替える Adaptive default toolchain version based on Swift version on builder Jun 9, 2024
@kateinoigakukun kateinoigakukun enabled auto-merge (squash) June 9, 2024 12:28
@omochi
Copy link
Contributor Author

omochi commented Jun 9, 2024

うまくいくか手元では特に試してないです。
5.9.2については以前の状態なので動くはずですが。
CIを見て考えるつもりです。

@omochi omochi mentioned this pull request Jun 9, 2024
3 tasks
@kateinoigakukun kateinoigakukun merged commit 1dc1649 into swiftwasm:main Jun 9, 2024
4 checks passed
@omochi
Copy link
Contributor Author

omochi commented Jun 9, 2024

やったー

@omochi omochi deleted the adaptive-default branch June 9, 2024 12:50
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants