HN 日本語サマリー

← 一覧へ戻る
プログラミング

Canonical、大規模Cコードベースを安全なRustに翻訳する新プロジェクトを支援

Canonical Backs New Project to Translate Large C Codebases into Safe Rust (linuxiac.com)

20 pointsby datakan9 コメント

要約

Canonicalは、大規模で成熟したソフトウェアプロジェクトをCからRustに自動的に移行することを実用的にするための、3年間の新しい研究プロジェクトを支援しています。このプロジェクトはCanonicalと英国のブリストル大学とのパートナーシップであり、2026年後半に開始される予定です。主な目標は、大規模なコードリポジトリを安全で信頼性が高く、保守しやすいRustに翻訳できる完全なプラットフォームを構築することです。しかし、より大きな課題は、すでに使用されている膨大な量の成熟したCソフトウェアです。これらのプロジェクトを手動で書き直すことはコストとリスクが高く、そのコードには長年の修正、互換性アップデート、パフォーマンス調整、および隠れた知識が含まれていることがよくあります。

全文翻訳

Canonicalは、大規模で成熟したソフトウェアプロジェクトをCからRustに自動的に移行することを実用的にするための、3年間の新しい研究プロジェクトを支援しています。このプロジェクトはCanonicalと英国のブリストル大学とのパートナーシップであり、2026年後半に開始される予定です。 主な目標は、数百行から数十万行のCコードを含む大規模なコードリポジトリを、安全で信頼性が高く、保守しやすいRustに翻訳できる完全なプラットフォームを構築することです。しかし、より大きな課題は、すでに使用されている膨大な量の成熟したCソフトウェアです。これらのプロジェクトを手動で書き直すことはコストとリスクが高く、そのコードには長年の修正、互換性アップデート、パフォーマンス調整、および隠れた知識が含まれていることがよくあります。 現在のソース間トランスレータは問題の一部しか解決していません。Canonicalによると、これらのツールはかなりの量のコードを処理できますが、C構造をあまりにも密接にコピーすることがよくあります。これにより、Rustコードが依然としてunsafeな機能に依存し、Cスタイルのパターンを維持し、Rust開発者が保守したいと思う前に多くのクリーンアップが必要になります。 LLMは異なる課題に直面します。それらはしばしば、小さくて明確なコード片に対して良い、イディオマティックなRustを作成できますが、リポジトリ全体のコンテキストを管理することははるかに困難です。また、正しく見えるコードでも、元のCバージョンと同じように動作しない場合があります。 これらの課題に対処するため、新しいプロジェクトではハイブリッド、または「ニューロシンボリック」アプローチを使用します。これは、機械学習と従来のプログラム分析、テスト、および形式手法を組み合わせたものです。 Canonicalによると、大規模なコードリポジトリは最初に、タイプ、依存関係、およびプログラムの動作方法に関する重要な詳細を保持しながら、個別に翻訳できる小さな部分に分割されます。翻訳では、既知のCからRustへの例でトレーニングされた言語モデルを使用し、単にC構文をコピーするのではなく、適切なRust機能を使用するRustコードを生成することを目指します。翻訳後、新しいコードが元のCバージョンと同じように動作するかどうかがチェックされます。 Ubuntuユーザーにとって重要なのは、この研究が小さな学術的な例を超えていくということです。Canonicalは、AppArmorとsnap-confineを実際のケーススタディとして使用する予定です。ただし、Canonicalは、AppArmorとsnap-confineが現在Rustで書き直されているわけではないことを明確にしています。これらのプロジェクトは、テクノロジーをテストするためのケーススタディとしてのみ使用されており、現在のバージョンを研究結果で置き換える計画はありません。 最後に、このイニシアチブは、CanonicalのUbuntuにおけるRustのより広範な採用にも適合していることを付け加えておきます。同社は、uutils coreutilsやsudo-rsのようなプロジェクトを、ディストリビューションで場所を得たRust実装の例として挙げています。 詳細については、UbuntuのDiscourseチャンネルの投稿を参照してください。 他の人に伝える: X (Twitter) で共有 Reddit で共有 Facebook で共有 Threads で共有 Bluesky で共有 Telegram で共有 LinkedIn で共有 Hacker News で共有 Rust、AI生成貢献に対する公式ポリシーを採用 2026年8月6日 Rustベースのuutils Coreutils 0.10がGNU互換性93.5%に到達 2026年8月5日 1件のコメント Canonical、SnapsとCharmsのためのプライベートエンタープライズストアをローンチ 2026年7月21日 Rust 1.97、新しいデフォルトシンボルマングリングスキームでリリース 2026年7月9日