Appleは6月12日(現地時間)、TrueTypeフォントのヒンティングインタプリタをC言語からSwiftへ書き換えたことを発表した。
TrueTypeはWebやPDF、各種OS・アプリケーションで利用されるベクターフォント標準であり、ヒンティングインタプリタは低解像度ディスプレイなどで文字の再現性を高めるため不可欠な役割を果たしている。同社は既存の使用環境や安全性・性能を考慮し、メモリ安全性に優れたSwiftを採用した。
新たなインタプリタは従来のC実装とピクセル単位で同等の描画結果と、既存の互換性を犠牲にすることなく、平均で13%の性能向上を達成した。フォントパーサは信頼できないデータを処理するため、メモリ安全性の確保が重要となる。今回のSwift化によってバッファオーバーフロー等の脆弱性リスクを低減した。
開発プロセスでは、Swift/C両実装に対する99.7%のコードカバレッジを持つユニットテストや、リアルな使用状況を想定したファズテストを構築。4200個のPDFファイルと2万5572フォント、約2700万字形を様々な条件で生成し、ビットマップ比較によって互換性を検証した。
性能向上のため、値型の徹底やデータ投影によるメモリコピー排除、短命なメモリアロケーションの回避、ダイナミックディスパッチの削減などの最適化技術を導入。Swiftの型システムと最適化機能により、可読性とパフォーマンス向上を両立した。また、開発チームの実装知見をLLMによるC/C++からSwiftへのコーディング支援にも役立てている。
AppleはこのSwift製インタプリタのソースコードをGitHubにて公開し、同様の取り組みを検討する開発者向けの参考として提供している。
- 関連リンク
この記事は参考になりましたか?
- この記事の著者
-
CodeZine編集部(コードジンヘンシュウブ)
CodeZineは、株式会社翔泳社が運営するソフトウェア開発者向けのWebメディアです。「デベロッパーの成長と課題解決に貢献するメディア」をコンセプトに、現場で役立つ最新情報を日々お届けします。
※プロフィールは、執筆時点、または直近の記事の寄稿時点での内容です
