Rustプロジェクト、大規模な言語拡張対応など「型チーム」で実装する2027年までの計画を発表型システムの定義の形式化を進める

Rustプロジェクトは、2022年に設立された「型チーム」のこれまでの活動と今後の計画を紹介した。

» 2023年01月25日 08時00分 公開
[@IT]

この記事は会員限定です。会員登録(無料)すると全てご覧いただけます。

 オープンソースのプログラミング言語「Rust」を開発するRustプロジェクトは2023年1月20日(米国時間)、2022年5月末に設立された「型チーム」(types team)のこれまでの活動と今後の計画を紹介した。

 Rustプロジェクトは「Rustはユーザーベースや人気が拡大し、成長している。それとともに、この言語をサポートする持続可能な型システムの必要性がますます明白になってきた。Rustプロジェクトはこのニーズに対応するために、新しい型チームを発足した」と説明している。

 Rustプロジェクトによると、型チェッカー(変数に型を割り当てる方法のセマンティクスと実装を緩やかに定義)、トレイト解決(どの型にどのトレイトを定義するかを決定)、ボローチェック(Rustの所有権モデルが常に成立することを証明)は、いずれも「型システム」として考えることができ、型チームがこれらを担当している。

 トレイトは、他の言語でよくインタフェースと呼ばれる機能に似たものであり、特定の型に存在し、他の型と共有できる機能について、Rustコンパイラに知らせる。トレイトにより、共通の振る舞いを抽象的に定義できる。

 型チームは、Rustの言語チームとコンパイラチームの共同作業チームであり、2018年ごろから活動していたトレイトワーキンググループを基本的に包含している。また、Poloniusワーキンググループ(主に、Poloniusボローチェックライブラリの設計と実装に取り組んできた)の活動も、型チームが担当することになった。

 さらに、言語チームは、型システムの設計の一部を型チームに委任している。コンパイラチームは、トレイトシステムの実装を定義し、メンテナンスする責任を型チームに移譲している。

 Rustプロジェクトによると、言語チームとコンパイラチームは従来、型システムに関連するRustの健全性の問題を評価、修正する特別な役割を担ってきた。両チームから一部の権限を移譲された型チームの発足により、2つの別々のチームの調整を必要とせず、1つのチームが健全性の問題をほぼ独立して評価、修正できるようになり、健全性の穴をふさぐことが容易になった。

Rustの型システムの形式化

 型チームは、Rust言語を発展させていく上で重要な、型システムの定義の形式化にも取り組み始めている。この取り組みは、「a-mir-formality」という造語で呼ばれている。

 また型チームは、トレイトソルバーをインツリーで書く取り組みも始めている。この新しいトレイトソルバーは、a-mir-formalityよりも範囲が限定されている。型システム全体を包含することは意図されておらず、モジュール化が重視されている。

新しい機能

 新しい機能の提案や設計は、技術的には型チームではなく、言語チームの担当だが、型チームが設計に貢献した主要な機能や機能セットが幾つかある。これらは型システムと深く関わっており、例として以下のものがある。

  • ジェネリック関連型(GAT:Generic Associated Types)
  • 型エイリアス実装トレイト(TAIT:Type Alias Impl Trait)
  • トレイトアップキャスト
  • ネガティブ実装
  • トレイトの戻り位置実装トレイト(RPITIT:Return Position Impl Traits In Traits)とトレイトの非同期関数(AFIT:Async Functions In Traits)

ロードマップ

 Rustプロジェクトは型チームの活動について、2023年夏、2023年末、2024年末、2027年末の4段階(半年、1年、2年、5年)に分けて、以下のように目標を設定している。Rust言語が必要とする新機能に対応でき、健全でテスト可能な、文書化された型システムを維持できるプラットフォームの構築を目指すとしている。

2023年夏

  • 現在取り組んでいる新しいトレイトソルバーがテスト可能になる
  • a-mir-formalityがRustのテストスイートでテスト可能になる
  • TAITとRPITIT/AFITの両方が安定化するか、安定化の途上にある

2023年12月

  • 新しいトレイトソルバーが既存のトレイトソルバーの一部を置き換える。ただし、どこでも使われるわけではない
  • 新しいトレイトソルバーのためのオンボーディング計画(チーム向け)とドキュメントがある
  • a-mir-formalityが言語設計プロセスに統合される

2024年末

  • rustcとrust-analyzerが新しいトレイトソルバーを共有する
  • 拡張可能なトレイトエラー用のクリーンなAPIが、少なくとも内部で利用可能になる
  • 先進的な機能
    1. Poloniusが使える状態になる
    2. 上位のトレイト境界における暗黙の境界
    3. 実装トレイトが基本的にどこでも使える
  • エディション境界の変更の可能性

2027年末

  • (型)不健全な問題の解決
  • ほとんどの言語拡張が簡単にできるようになり、大規模な拡張も可能になる
  • a-mir-formalityがRustのテストスイートの99.9%に合格する

Copyright © ITmedia, Inc. All Rights Reserved.

スポンサーからのお知らせPR

注目のテーマ

Microsoft & Windows最前線2025
AI for エンジニアリング
ローコード/ノーコード セントラル by @IT - ITエンジニアがビジネスの中心で活躍する組織へ
Cloud Native Central by @IT - スケーラブルな能力を組織に
システム開発ノウハウ 【発注ナビ】PR
あなたにおすすめの記事PR

RSSについて

アイティメディアIDについて

メールマガジン登録

@ITのメールマガジンは、 もちろん、すべて無料です。ぜひメールマガジンをご購読ください。