|
| 1 | +# Changelog |
| 2 | + |
| 3 | +All notable changes to T-Ruby will be documented in this file. |
| 4 | + |
| 5 | +The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/), |
| 6 | +and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html). |
| 7 | + |
| 8 | +## [Unreleased] |
| 9 | + |
| 10 | +## [0.0.44] - 2026-01-17 |
| 11 | + |
| 12 | +### Added |
| 13 | +- Direct `.trb` file execution with `trc run` command without intermediate files (#37) |
| 14 | + |
| 15 | +## [0.0.43] - 2026-01-10 |
| 16 | + |
| 17 | +### Added |
| 18 | +- TypeScript-style array shorthand syntax `T[]` as alternative to `Array<T>` |
| 19 | +- Nested arrays support (`Integer[][]` for `Array<Array<Integer>>`) |
| 20 | +- Nullable arrays (`String[]?` for `(Array<String> | nil)`) |
| 21 | +- Arrays of nullable elements (`String?[]` for `Array<String?>`) |
| 22 | +- Union type arrays (`(String | Integer)[]` for `Array<(String | Integer)>`) |
| 23 | + |
| 24 | +## [0.0.39] - 2025-12-24 |
| 25 | + |
| 26 | +### Added |
| 27 | +- TypeScript-style type inference engine |
| 28 | +- BodyParser for method body IR node generation |
| 29 | +- TypeEnv for scope chain management |
| 30 | +- ASTTypeInferrer with lazy evaluation and caching |
| 31 | +- Literal type inference (`"hello"` -> `String`, `42` -> `Integer`) |
| 32 | +- Method call tracking (`str.upcase` -> `String`) |
| 33 | +- Implicit return handling (Ruby's last expression as return type) |
| 34 | +- Conditional type inference (union types from `if`/`else` branches) |
| 35 | +- 200+ built-in method types for common Ruby methods |
| 36 | +- Special `initialize` method handling (always returns `void`) |
| 37 | +- Unreachable code detection |
| 38 | + |
| 39 | +## [0.1.0-alpha] - 2025-12-09 |
| 40 | + |
| 41 | +### Added |
| 42 | +- Initial alpha release |
| 43 | +- Basic types: `String`, `Integer`, `Float`, `Boolean`, `Symbol`, `nil` |
| 44 | +- Special types: `Any`, `void`, `never`, `self` |
| 45 | +- Union types with `|` operator |
| 46 | +- Optional types shorthand `T?` for `T | nil` |
| 47 | +- Array generics `Array<T>` |
| 48 | +- Hash generics `Hash<K, V>` |
| 49 | +- Type inference for variables and returns |
| 50 | +- Type narrowing with `is_a?` and `nil?` |
| 51 | +- Literal types (string, number, symbol, boolean) |
| 52 | +- Type aliases with `type` keyword |
| 53 | +- Generic type aliases |
| 54 | +- Intersection types with `&` operator |
| 55 | +- Proc types `Proc<Args, Return>` |
| 56 | +- Parameter, return, and block type annotations |
| 57 | +- Generic functions and classes |
| 58 | +- Interface definitions and structural typing |
| 59 | +- `.trb` to `.rb` compilation with type erasure |
| 60 | +- `.rbs` file generation |
| 61 | +- Source maps for debugging |
| 62 | +- File watching with `--watch` |
| 63 | +- Type checking mode with `--check` |
| 64 | +- Standard library type definitions |
0 commit comments