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 v3 | Language Server Protocol 3.xサポート | 計画済み |
| 型安全メタプログラミング | 安全なdefine_method、method_missing | 計画済み |
| 段階的型付けマイグレーション | 既存Rubyコードマイグレーションツール | 計画済み |
計画された機能
型システムの強化
- タプル型(
[String, Integer, Boolean]) - 再帰的型エイリアス
- 変性アノテーション(
in、out) - 条件付き型(
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リリース
ロードマップに影響を与える方法
コミュニティの意見を歓迎します:
- 機能への投票 - GitHubでissueにスターを付けて関心を示す
- 機能リクエスト - 詳細な機能リクエストを開く
- コードを貢献 - ロードマップ項目のPRを提出
- フィードバックを共有 - 何がうまくいっていて何がうまくいっていないか教えてください
- ディスカッションに参加 - RFCプロセスに参加
参加する
T-Rubyの未来を形作る手助けをしてください:
- ドキュメント - ドキュメントとサンプルを改善
- テスト - バグとエッジケースを報告
- 機能 - 機能を提案して実装
- ツール - エディタ拡張機能を構築
- 型 - stdlibとgemの型定義を追加
- コミュニティ - 質問に答え、チュートリアルを書く
始めるには貢献ガイドをご覧ください。
最新情報を得る
- GitHub - 更新のためにリポジトリをウォッチ
- Twitter - お知らせのために@t_rubyをフォロー
- Discord - コミュニティチャットに参加
ロードマップはコミュニティフィードバックと優先事項に基づいて変更される可能性があります。