メインコンテンツまでスキップ
Examples Verified (100%)

ロードマップ

T-Rubyは活発に開発中です。このロードマップでは、プロジェクトの現在の状態、今後の機能、長期的なビジョンを概説します。

プロジェクト状態

活発な開発中

T-Rubyは現在活発な開発状態です。コア機能は安定しており十分にテストされていますが、言語とツールは進化し続けています。バージョン間で破壊的変更が発生する可能性があります。

現在のバージョン: v0.0.39 ライセンス: MIT

完了したマイルストーン

マイルストーン1:基本型パーシング&消去 ✅

  • パラメータ/戻り値型アノテーション
  • 有効なRuby出力のための型消去
  • エラー処理と検証

マイルストーン2:コア型システム ✅

機能説明
型エイリアスtype UserId = String
インターフェースinterface Readable ... end
ユニオン型String | Integer | nil
ジェネリクスArray<String>, Map<K, V>
インターセクション型Readable & Writable
RBS生成.rbsファイル出力

マイルストーン3:エコシステム&ツール ✅

機能状態
LSPサーバー✅ 実装済み
宣言ファイル(.d.trb)✅ 実装済み
VSCode拡張機能✅ 公開済み
JetBrainsプラグインマーケットプレイス
Vim/Neovim統合✅ 利用可能
標準ライブラリ型✅ 包括的カバレッジ

マイルストーン4:高度な機能 ✅

機能説明
制約システムジェネリック型制約
型推論自動型検出
ランタイム検証オプションのランタイムチェック
型チェックSMTベースの型検証
キャッシングインクリメンタルコンパイルサポート
パッケージ管理型パッケージシステム

マイルストーン5:インフラストラクチャ ✅

機能説明
Bundler統合Rubyエコシステム統合
IRシステム最適化パス付き中間表現
パーサーコンビネータ複雑な型文法のための組み合わせ可能なパーサー
SMTソルバー高度な型推論のための制約解決

マイルストーン6:統合&本番準備 ✅

機能状態
パーサーコンビネータ統合✅ レガシーパーサー置換
IRベースコンパイラ✅ 完全IRパイプライン
SMTベース型チェック✅ 統合済み
LSP v2 + セマンティックトークン✅ 型ベース構文ハイライト
インクリメンタルコンパイル✅ キャッシュベース
ファイル間型チェック✅ マルチファイルサポート
Rails/RSpec/Sidekiq型✅ 利用可能
WebAssemblyターゲット@t-ruby/wasm (v0.0.8)

現在のフォーカス

マイルストーン7:次世代機能(進行中)

機能説明状態
外部SMTソルバー(Z3)Z3による強化された型推論計画済み
LSP v3Language Server Protocol 3.xサポート計画済み
型安全メタプログラミング安全なdefine_methodmethod_missing計画済み
段階的型付けマイグレーション既存Rubyコードマイグレーションツール計画済み

計画された機能

型システムの強化

  • タプル型([String, Integer, Boolean]
  • 再帰的型エイリアス
  • 変性アノテーション(inout
  • 条件付き型(T extends U ? X : Y
  • マップ型
  • Readonly修飾子

高度な型機能

  • テンプレートリテラル型
  • 判別可能なユニオン
  • ブランド型
  • 不透明型
  • 依存型(研究)

モジュールシステム

  • モジュール型アノテーション
  • 名前空間サポート
  • 型インポート/エクスポート構文
  • モジュールインターフェース

将来のビジョン

高度な機能

  • エフェクトシステム(副作用の追跡)
  • 所有権と借用の概念
  • 代数的データ型
  • パターンマッチング型
  • 精製型

エコシステム

  • 型定義リポジトリ
  • クラウドベース型チェックサービス
  • Sorbet互換モード
  • Steep統合

研究領域

以下の高度な機能を積極的に研究しています:

1. エフェクト型

型システムで副作用を追跡:

def read_file(path: String): String throws IOError
def calculate(x: Integer): Integer pure

2. 依存型

値に依存する型:

def create_array<N: Integer>(size: N): Array<T>[N]
# 正確にN個の要素を持つ配列を返す

3. 線形型

リソースが正確に一度だけ使用されることを保証:

def process_file(handle: File) consume: String
# この呼び出し後はhandleを使用できない

4. 行多相性

柔軟なレコード型:

def add_id<T: { ... }>(obj: T): T & { id: Integer }

バージョン履歴

コンポーネント現在のバージョン
コンパイラv0.0.39
VSCode拡張機能v0.2.0
JetBrainsプラグインv0.1.2
WASMパッケージv0.0.8

破壊的変更ポリシー

現在のフェーズ(Pre-1.0)

  • どのリリースでも破壊的変更が発生する可能性
  • 可能な限り非推奨警告を提供
  • 主要な変更の移行ガイド
  • 変更ログにすべての破壊的変更を文書化

安定フェーズ(v1.0+)

  • パッチバージョンで破壊的変更なし
  • メジャーバージョンでのみ破壊的変更
  • 最低6ヶ月の非推奨期間
  • 自動化された移行ツール
  • 企業向けLTSリリース

ロードマップに影響を与える方法

コミュニティの意見を歓迎します:

  1. 機能への投票 - GitHubでissueにスターを付けて関心を示す
  2. 機能リクエスト - 詳細な機能リクエストを開く
  3. コードを貢献 - ロードマップ項目のPRを提出
  4. フィードバックを共有 - 何がうまくいっていて何がうまくいっていないか教えてください
  5. ディスカッションに参加 - RFCプロセスに参加

参加する

T-Rubyの未来を形作る手助けをしてください:

  • ドキュメント - ドキュメントとサンプルを改善
  • テスト - バグとエッジケースを報告
  • 機能 - 機能を提案して実装
  • ツール - エディタ拡張機能を構築
  • - stdlibとgemの型定義を追加
  • コミュニティ - 質問に答え、チュートリアルを書く

始めるには貢献ガイドをご覧ください。

最新情報を得る

  • GitHub - 更新のためにリポジトリをウォッチ
  • Twitter - お知らせのために@t_rubyをフォロー
  • Discord - コミュニティチャットに参加

ロードマップはコミュニティフィードバックと優先事項に基づいて変更される可能性があります。