変更ログ
T-Rubyのすべての注目すべき変更はこのファイルに文書化されます。
形式はKeep a Changelogに基づいており、 このプロジェクトはセマンティックバージョニングに従います。
[0.0.39] - 2025-12-24
追加
型推論エンジン
- TypeScriptスタイル型推論 - 明示的なアノテーションなしで自動的に戻り値の型を推論
- BodyParser - メソッド本体のIRノード生成用の新しいパーサー
- TypeEnv - 変数型追跡のためのスコープチェーン管理
- ASTTypeInferrer - 遅延評価とキャッシングによる式の型推論
- リテラル推論 -
"hello"→String、42→Integer、true→bool - メソッド呼び出し追跡 -
str.upcase→String、arr.length→Integer - 暗黙的な戻り値の処理 - Rubyの最後の式を戻り値の型として
- 条件文の型推論 -
if/else分岐からのユニオン型 - 200以上の組み込みメソッド型 - 一般的なRubyメソッドの戻り値型
特別な処理
initializeメソッド - 常にvoidを返す(RBSの慣例)- 到達不能コードの検出 - 無条件
return後のコードを無視
例
以前(明示的なアノテーションが必要):
def greet(name: String): String
"Hello, #{name}!"
end
以後(推論が自動的に動作):
def greet(name: String)
"Hello, #{name}!"
end
# RBS: def greet: (name: String) -> String
[未リリース]
計画中
- タプル型
- 再帰的型エイリアス
- Language Server Protocol(LSP)実装
- VSCode拡張機能
- 改善されたエラーメッセージ
- Rails型定義
[0.1.0-alpha] - 2025-12-09
概要
T-Rubyの最初のアルファリリースです!このリリースには、コア型システム機能、動作するコンパイラ、基本的なツールが含まれています。T-Rubyは実験的な使用とコミュニティフィードバックの準備ができました。
これはアルファリリースです。APIが変更される可能性があり、破壊的変更が発生する可能性があります。本番環境での使用は推奨されません。
追加
型システム
- 基本型 -
String、Integer、Float、Boolean、Symbol、nil - 特殊型 -
Any、void、never、self - ユニオン型 -
|演算子で複数の型を結合 - オプショナル型 -
T | nilの省略形T? - Arrayジェネリクス - 型付き配列用の
Array<T> - Hashジェネリクス - 型付きハッシュ用の
Hash<K, V> - 型推論 - 変数と戻り値の自動型推論
- 型絞り込み -
is_a?とnil?によるスマートな絞り込み - リテラル型 - 文字列、数値、シンボル、ブーリアンリテラル
- 型エイリアス -
typeでカスタム型名を作成 - ジェネリック型エイリアス -
type Result<T> = T | nilのようなジェネリックエイリアス - インターセクション型 -
&演算子でインターフェースを結合 - Proc型 -
Proc<Args, Return>で型安全なprocとlambda
関数
- パラメータ型アノテーション
- 戻り値型アノテーション
- 型付きオプショナルパラメータ
- 型付き可変長パラメータ
- 型付きキーワード引数
- ブロックパラメータ型
- ジェネリック関数
- 複数の型パラメータ
- 型パラメータ推論
クラス
- インスタンス変数型アノテーション
- クラス変数型アノテーション
- コンストラクタ型
- メソッド型アノテーション
- ジェネリッククラス
- 複数のクラス型パラメータ
- 型付き継承
- ミックスイン/モジュール型サポート
インターフェース
- インターフェース定義
- インターフェース実装
- 構造的型付け
- ダックタイピングサポート
- ジェネリックインターフェース
- インターフェースのインターセクション
コンパイラ
.trbから.rbへのコンパイル- 型消去(ランタイムオーバーヘッドなし)
.rbsファイル生成- デバッグ用ソースマップ
--watchでファイル監視--checkで型チェックモード- 位置付きの詳細なエラーメッセージ
- カラー端末出力
- CI統合用の終了コード
標準ライブラリ
- コアRuby型定義(File、Dir、IO)
- TimeとDate型
- JSONモジュール型
- YAMLモジュール型
- CSVモジュール型
- Logger型
- Net::HTTP型
- URI型
- ファイルシステムユーティリティ(FileUtils、Pathname)
- 文字列操作(StringIO)
- コレクション(Set)
- 暗号化(Digest、Base64、SecureRandom)
- テンプレート(ERB)
- ベンチマーク(Benchmark)
- タイムアウトユーティリティ
ドキュメント
- 包括的なスタートガイド
- 型システムチュートリアル
- APIリファレンスドキュメント
- 標準ライブラリ型リファレンス
- CLIコマンドドキュメント
- エディタセットアップガイド
- 通常のRubyからの移行ガイド
- サンプルプロジェクト
- クイックリファレンス用チートシート
- トラブルシューティングガイド
ツール
trcコマンドラインコンパイラ- バージョン情報用
--versionフラグ - コマンドドキュメント用
--help - 型のみのチェック用
--check - 開発ワークフロー用
--watch - カスタム出力パス用
--output - RBS生成用
--rbsフラグ - カラーエラー出力
- きれいに整形された型エラー
変更
- N/A(初回リリース)
非推奨
- N/A(初回リリース)
削除
- N/A(初回リリース)
修正
- N/A(初回リリース)
セキュリティ
- N/A(初回リリース)
リリースノート
v0.1.0-alpha - 初回アルファリリース
リリース日: 2025年12月9日
これはT-Rubyの最初の公開リリースです!数ヶ月の開発を経て、RubyコミュニティとT-Rubyを共有できることを嬉しく思います。
含まれるもの
T-RubyはRubyにTypeScriptスタイルの静的型付けをもたらします。型アノテーション付きの.trbファイルでコードを書き、ランタイムオーバーヘッドなしでプレーンなRubyにコンパイルし、より良いツールと少ないバグを楽しんでください。
主要機能
- 段階的型付け - 自分のペースで型を追加。すべてのRubyは有効なT-Ruby。
- ランタイムコストなし - 型はコンパイル時に消去。パフォーマンスへの影響なし。
- RBS生成 - 既存ツールとの統合用に
.rbsファイルを自動生成。 - 馴染みのある構文 - TypeScriptを知っていれば違和感なし。
- 包括的なStdlib - 一般的なRuby標準ライブラリモジュールの型定義。
始め方
# T-Rubyをインストール
gem install t-ruby
# ファイルを作成
echo 'def greet(name: String): String
"Hello, #{name}!"
end' > hello.trb
# コンパイル
trc hello.trb
# 生成されたRubyを実行
ruby hello.rb
サンプルコード
# hello.trb - 型安全Ruby
class User
@name: String
@email: String
@age: Integer
def initialize(name: String, email: String, age: Integer): void
@name = name
@email = email
@age = age
end
def greet: String
"Hello, my name is #{@name}"
end
def adult?: Boolean
@age >= 18
end
end
# ユーザーを作成
alice: User = User.new("Alice", "alice@example.com", 30)
bob: User = User.new("Bob", "bob@example.com", 17)
# 型安全な操作
users: Array<User> = [alice, bob]
adults: Array<User> = users.select { |u| u.adult? }
adults.each do |user|
puts user.greet
end
trc hello.trbでコンパイルすると、すべての型アノテーションが削除されたクリーンなRubyコードが生成されます。
既知の制限
このアルファリリースにはいくつかの制限があります:
- 不完全なstdlibカバレッジ - まだすべてのRuby標準ライブラリモジュールに型がありません
- IDEサポートなし - LSPとエディタ拡張機能はv0.2で提供予定
- 限定的なエラー回復 - 型チェッカーが一部のケースで最初のエラーで停止
- パフォーマンス - 大規模プロジェクトで型チェックが遅い可能性
- 破壊的変更の可能性 - 今後のアルファリリースでAPIが変更される可能性
次の予定
v0.2.0に向けて作業中:
- IDEサポート用Language Server Protocol(LSP)
- VSCode拡張機能
- タプル型
- 再帰的型エイリアス
- より良いエラーメッセージ
- パフォーマンス改善
フィードバック歓迎
これは実験的なリリースです。フィードバックをお待ちしています!
- GitHub Issuesでバグを報告
- GitHub Discussionsで機能を提案
- Discordコミュニティに参加
- 更新のために@t_rubyをフォロー
コントリビューター
このリリースに貢献してくださったすべての方に感謝します:
- 初期開発と設計
- 型システムの実装
- ドキュメントとサンプル
- テストとバグ報告
- コミュニティフィードバックとサポート
RubyとTypeScriptコミュニティのインスピレーションとガイダンスに特別な感謝を。
ライセンス
T-RubyはMITライセンスの下でリリースされています。詳細はLICENSEファイルをご覧ください。
バージョン履歴
| バージョン | リリース日 | 状態 | ハイライト |
|---|---|---|---|
| 0.1.0-alpha | 2025-12-09 | アルファ | 初回リリース、コア機能 |
| 0.2.0 | TBD | 計画中 | LSP、タプル、ツール |
| 0.3.0 | TBD | 計画中 | Rails型、高度な機能 |
| 1.0.0 | TBD | 計画中 | 安定リリース |
アップグレードガイド
v0.1.0-alphaへのアップグレード
これは初回リリースなので、アップグレードするものはありません。T-Rubyへようこそ!
今後のアップグレードについては、ここで詳細な移行ガイドを提供します。
非推奨通知
現在非推奨はありません。削除のかなり前に非推奨を発表します。
破壊的変更ポリシー
アルファフェーズ(現在)
- どのバージョンでも破壊的変更が発生する可能性
- 可能な限り非推奨警告を提供
- 重要な変更の移行ガイド
ベータフェーズ(将来)
- マイナーバージョン(0.x.0)でのみ破壊的変更
- 最低1ヶ月の非推奨期間
- 可能な場合は自動化された移行ツール
安定フェーズ(v1.0+)
- パッチバージョン(1.0.x)で破壊的変更なし
- メジャーバージョン(2.0.0)でのみ破壊的変更
- 最低6ヶ月の非推奨期間
- メジャーバージョンの長期サポート
セマンティックバージョニング
T-Rubyはセマンティックバージョニングに従います:
- MAJORバージョン(X.0.0)- 互換性のないAPI変更
- MINORバージョン(0.X.0)- 新機能、後方互換
- PATCHバージョン(0.0.X)- バグ修正、後方互換
アルファ/ベータ(0.x.x)中は、マイナーバージョンで破壊的変更が発生する可能性があります。
リリースチャンネル
Stable
本番使用のための現在の安定バージョン(v1.0.0+、利用可能な場合)。
Beta
機能完了のリリース候補(v0.x.0、将来)。
Alpha
コア機能を持つ実験的リリース(v0.1.0-alpha、現在)。
Nightly
mainブランチからの最新ビルド(推奨されません)。
最新情報を入手
- GitHubリポジトリでリリースをウォッチ
- お知らせのために@t_rubyをフォロー
- ディスカッションのためにDiscordに参加
- ニュースレターを購読(近日公開)
アーカイブ
すべてのリリースは以下で利用可能: