Rustプロジェクトは、2022年に設立された「型チーム」のこれまでの活動と今後の計画を紹介した。
この記事は会員限定です。会員登録(無料)すると全てご覧いただけます。
オープンソースのプログラミング言語「Rust」を開発するRustプロジェクトは2023年1月20日(米国時間)、2022年5月末に設立された「型チーム」(types team)のこれまでの活動と今後の計画を紹介した。
Rustプロジェクトは「Rustはユーザーベースや人気が拡大し、成長している。それとともに、この言語をサポートする持続可能な型システムの必要性がますます明白になってきた。Rustプロジェクトはこのニーズに対応するために、新しい型チームを発足した」と説明している。
Rustプロジェクトによると、型チェッカー(変数に型を割り当てる方法のセマンティクスと実装を緩やかに定義)、トレイト解決(どの型にどのトレイトを定義するかを決定)、ボローチェック(Rustの所有権モデルが常に成立することを証明)は、いずれも「型システム」として考えることができ、型チームがこれらを担当している。
トレイトは、他の言語でよくインタフェースと呼ばれる機能に似たものであり、特定の型に存在し、他の型と共有できる機能について、Rustコンパイラに知らせる。トレイトにより、共通の振る舞いを抽象的に定義できる。
型チームは、Rustの言語チームとコンパイラチームの共同作業チームであり、2018年ごろから活動していたトレイトワーキンググループを基本的に包含している。また、Poloniusワーキンググループ(主に、Poloniusボローチェックライブラリの設計と実装に取り組んできた)の活動も、型チームが担当することになった。
さらに、言語チームは、型システムの設計の一部を型チームに委任している。コンパイラチームは、トレイトシステムの実装を定義し、メンテナンスする責任を型チームに移譲している。
Rustプロジェクトによると、言語チームとコンパイラチームは従来、型システムに関連するRustの健全性の問題を評価、修正する特別な役割を担ってきた。両チームから一部の権限を移譲された型チームの発足により、2つの別々のチームの調整を必要とせず、1つのチームが健全性の問題をほぼ独立して評価、修正できるようになり、健全性の穴をふさぐことが容易になった。
型チームは、Rust言語を発展させていく上で重要な、型システムの定義の形式化にも取り組み始めている。この取り組みは、「a-mir-formality」という造語で呼ばれている。
また型チームは、トレイトソルバーをインツリーで書く取り組みも始めている。この新しいトレイトソルバーは、a-mir-formalityよりも範囲が限定されている。型システム全体を包含することは意図されておらず、モジュール化が重視されている。
新しい機能の提案や設計は、技術的には型チームではなく、言語チームの担当だが、型チームが設計に貢献した主要な機能や機能セットが幾つかある。これらは型システムと深く関わっており、例として以下のものがある。
Rustプロジェクトは型チームの活動について、2023年夏、2023年末、2024年末、2027年末の4段階(半年、1年、2年、5年)に分けて、以下のように目標を設定している。Rust言語が必要とする新機能に対応でき、健全でテスト可能な、文書化された型システムを維持できるプラットフォームの構築を目指すとしている。
Copyright © ITmedia, Inc. All Rights Reserved.