Swift.orgは9月11日(現地時間)、Swiftコンパイラがデバッグ情報内で明示的にビルドされたSwiftモジュールを参照する方法を変更したことを解説するブログを公開した。Swift 6.3で始まった変更で、Swift 6.4リリースに含まれる。
従来、LLDBの式評価器はモジュールを名前で探すため特定が不正確で、リンカの-add_ast_pathやswiftc -modulewrapによってバイナリSwiftモジュールを埋め込む必要があり、バイナリサイズの増大や暗黙的インポートによる速度低下を招いていた。
新しい方式では、明示的にビルドされたモジュールがSwiftモジュール依存関係も追跡し、新オプション-debug-module-pathによって各オブジェクトファイル自身のモジュールへのパスをデバッグ情報に格納する。Swift 6.4以降は-modulewrapと-add_ast_pathが不要となり、dsymutilはバイナリSwiftモジュールを処理しなくなるため、dSYMバンドルやLinux/Windowsのバイナリが小さくなる。変数の内容表示やpoによる出力には影響しない。
SwiftPMやXcodeの利用者は変更なしで恩恵を受けられるが、Bazel、Buck、CMakeなど独自のビルドシステムを保守する開発者は調整が必要になる場合がある。Swift 6.4ではブリッジングヘッダーのインポートも高速化される。
- 関連リンク
この記事は参考になりましたか?
- この記事の著者
-
CodeZine編集部(コードジンヘンシュウブ)
CodeZineは、株式会社翔泳社が運営する開発者のための情報メディアです。日々の開発に取り組むエンジニアやテクノロジーを学びたい方に向けて、プログラミングやAI活用、開発ツール、エンジニアの学びとキャリアに関する記事をお届けしています。
※プロフィールは、執筆時点、または直近の記事の寄稿時点での内容です
この記事は参考になりましたか?
この記事をシェア
