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

変更ログ

T-Rubyのすべての注目すべき変更はこのファイルに文書化されます。

形式はKeep a Changelogに基づいており、 このプロジェクトはセマンティックバージョニングに従います。

[0.0.39] - 2025-12-24

追加

型推論エンジン

  • TypeScriptスタイル型推論 - 明示的なアノテーションなしで自動的に戻り値の型を推論
  • BodyParser - メソッド本体のIRノード生成用の新しいパーサー
  • TypeEnv - 変数型追跡のためのスコープチェーン管理
  • ASTTypeInferrer - 遅延評価とキャッシングによる式の型推論
  • リテラル推論 - "hello"String42Integertruebool
  • メソッド呼び出し追跡 - str.upcaseStringarr.lengthInteger
  • 暗黙的な戻り値の処理 - 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が変更される可能性があり、破壊的変更が発生する可能性があります。本番環境での使用は推奨されません。

追加

型システム

  • 基本型 - StringIntegerFloatBooleanSymbolnil
  • 特殊型 - Anyvoidneverself
  • ユニオン型 - |演算子で複数の型を結合
  • オプショナル型 - 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にコンパイルし、より良いツールと少ないバグを楽しんでください。

主要機能

  1. 段階的型付け - 自分のペースで型を追加。すべてのRubyは有効なT-Ruby。
  2. ランタイムコストなし - 型はコンパイル時に消去。パフォーマンスへの影響なし。
  3. RBS生成 - 既存ツールとの統合用に.rbsファイルを自動生成。
  4. 馴染みのある構文 - TypeScriptを知っていれば違和感なし。
  5. 包括的な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拡張機能
  • タプル型
  • 再帰的型エイリアス
  • より良いエラーメッセージ
  • パフォーマンス改善

フィードバック歓迎

これは実験的なリリースです。フィードバックをお待ちしています!

コントリビューター

このリリースに貢献してくださったすべての方に感謝します:

  • 初期開発と設計
  • 型システムの実装
  • ドキュメントとサンプル
  • テストとバグ報告
  • コミュニティフィードバックとサポート

RubyとTypeScriptコミュニティのインスピレーションとガイダンスに特別な感謝を。

ライセンス

T-RubyはMITライセンスの下でリリースされています。詳細はLICENSEファイルをご覧ください。


バージョン履歴

バージョンリリース日状態ハイライト
0.1.0-alpha2025-12-09アルファ初回リリース、コア機能
0.2.0TBD計画中LSP、タプル、ツール
0.3.0TBD計画中Rails型、高度な機能
1.0.0TBD計画中安定リリース

アップグレードガイド

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に参加
  • ニュースレターを購読(近日公開)

アーカイブ

すべてのリリースは以下で利用可能:


最新の開発状況についてはロードマップをご覧ください。 貢献するには貢献ガイドをご覧ください。