rbs 4.0.0.dev.5 → 4.0.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/.github/workflows/c-check.yml +8 -4
- data/.github/workflows/comments.yml +3 -1
- data/.github/workflows/dependabot.yml +1 -1
- data/.github/workflows/ruby.yml +10 -0
- data/.github/workflows/rust.yml +95 -0
- data/CHANGELOG.md +323 -0
- data/Rakefile +12 -29
- data/Steepfile +1 -0
- data/config.yml +393 -37
- data/core/array.rbs +218 -188
- data/core/basic_object.rbs +9 -8
- data/core/class.rbs +6 -5
- data/core/comparable.rbs +45 -31
- data/core/complex.rbs +52 -40
- data/core/dir.rbs +57 -45
- data/core/encoding.rbs +5 -5
- data/core/enumerable.rbs +96 -91
- data/core/enumerator.rbs +4 -3
- data/core/errno.rbs +3 -2
- data/core/errors.rbs +31 -29
- data/core/exception.rbs +12 -12
- data/core/fiber.rbs +36 -36
- data/core/file.rbs +186 -113
- data/core/file_test.rbs +2 -2
- data/core/float.rbs +41 -32
- data/core/gc.rbs +78 -70
- data/core/hash.rbs +70 -60
- data/core/integer.rbs +32 -28
- data/core/io/buffer.rbs +36 -36
- data/core/io/wait.rbs +7 -7
- data/core/io.rbs +120 -135
- data/core/kernel.rbs +189 -139
- data/core/marshal.rbs +3 -3
- data/core/match_data.rbs +14 -12
- data/core/math.rbs +69 -67
- data/core/method.rbs +6 -6
- data/core/module.rbs +146 -85
- data/core/nil_class.rbs +4 -3
- data/core/numeric.rbs +35 -32
- data/core/object.rbs +6 -8
- data/core/object_space.rbs +11 -10
- data/core/pathname.rbs +131 -81
- data/core/proc.rbs +65 -33
- data/core/process.rbs +219 -201
- data/core/ractor.rbs +15 -11
- data/core/random.rbs +4 -3
- data/core/range.rbs +52 -47
- data/core/rational.rbs +5 -5
- data/core/rbs/unnamed/argf.rbs +58 -51
- data/core/rbs/unnamed/env_class.rbs +18 -13
- data/core/rbs/unnamed/main_class.rbs +123 -0
- data/core/rbs/unnamed/random.rbs +7 -5
- data/core/regexp.rbs +236 -197
- data/core/ruby.rbs +1 -1
- data/core/ruby_vm.rbs +32 -30
- data/core/rubygems/config_file.rbs +5 -5
- data/core/rubygems/errors.rbs +1 -1
- data/core/rubygems/requirement.rbs +5 -5
- data/core/rubygems/rubygems.rbs +5 -3
- data/core/set.rbs +17 -16
- data/core/signal.rbs +2 -2
- data/core/string.rbs +311 -292
- data/core/struct.rbs +26 -25
- data/core/symbol.rbs +25 -24
- data/core/thread.rbs +40 -34
- data/core/time.rbs +47 -42
- data/core/trace_point.rbs +34 -31
- data/core/true_class.rbs +2 -2
- data/core/unbound_method.rbs +10 -10
- data/core/warning.rbs +7 -7
- data/docs/collection.md +1 -1
- data/docs/config.md +171 -0
- data/docs/inline.md +110 -4
- data/docs/syntax.md +13 -12
- data/ext/rbs_extension/ast_translation.c +489 -135
- data/ext/rbs_extension/class_constants.c +8 -0
- data/ext/rbs_extension/class_constants.h +4 -0
- data/ext/rbs_extension/legacy_location.c +28 -51
- data/ext/rbs_extension/legacy_location.h +37 -0
- data/ext/rbs_extension/main.c +12 -20
- data/include/rbs/ast.h +423 -195
- data/include/rbs/lexer.h +2 -2
- data/include/rbs/location.h +25 -44
- data/include/rbs/parser.h +2 -2
- data/include/rbs/util/rbs_constant_pool.h +0 -3
- data/include/rbs.h +8 -0
- data/lib/rbs/ast/ruby/annotations.rb +157 -4
- data/lib/rbs/ast/ruby/members.rb +374 -22
- data/lib/rbs/cli/validate.rb +5 -60
- data/lib/rbs/collection/config/lockfile_generator.rb +6 -2
- data/lib/rbs/definition_builder.rb +60 -27
- data/lib/rbs/errors.rb +0 -11
- data/lib/rbs/inline_parser.rb +1 -1
- data/lib/rbs/parser_aux.rb +20 -7
- data/lib/rbs/prototype/helpers.rb +57 -0
- data/lib/rbs/prototype/rb.rb +1 -26
- data/lib/rbs/prototype/rbi.rb +1 -20
- data/lib/rbs/test/type_check.rb +3 -0
- data/lib/rbs/types.rb +62 -52
- data/lib/rbs/unit_test/type_assertions.rb +35 -8
- data/lib/rbs/version.rb +1 -1
- data/lib/rbs.rb +0 -1
- data/rbs.gemspec +1 -1
- data/rust/.gitignore +1 -0
- data/rust/Cargo.lock +378 -0
- data/rust/Cargo.toml +7 -0
- data/rust/ruby-rbs/Cargo.toml +22 -0
- data/rust/ruby-rbs/build.rs +764 -0
- data/rust/ruby-rbs/examples/locations.rs +60 -0
- data/rust/ruby-rbs/src/lib.rs +1 -0
- data/rust/ruby-rbs/src/node/mod.rs +742 -0
- data/rust/ruby-rbs/tests/sanity.rs +47 -0
- data/rust/ruby-rbs/vendor/rbs/config.yml +1 -0
- data/rust/ruby-rbs-sys/Cargo.toml +23 -0
- data/rust/ruby-rbs-sys/build.rs +204 -0
- data/rust/ruby-rbs-sys/src/lib.rs +50 -0
- data/rust/ruby-rbs-sys/vendor/rbs/include +1 -0
- data/rust/ruby-rbs-sys/vendor/rbs/src +1 -0
- data/rust/ruby-rbs-sys/wrapper.h +1 -0
- data/sig/ast/ruby/annotations.rbs +191 -4
- data/sig/ast/ruby/members.rbs +21 -1
- data/sig/cli/validate.rbs +1 -6
- data/sig/definition_builder.rbs +2 -0
- data/sig/errors.rbs +0 -8
- data/sig/method_types.rbs +1 -1
- data/sig/parser.rbs +17 -13
- data/sig/prototype/helpers.rbs +2 -0
- data/sig/types.rbs +10 -11
- data/sig/unit_test/spy.rbs +0 -8
- data/sig/unit_test/type_assertions.rbs +11 -0
- data/src/ast.c +339 -161
- data/src/lexstate.c +1 -1
- data/src/location.c +8 -48
- data/src/parser.c +674 -480
- data/src/util/rbs_constant_pool.c +0 -4
- data/stdlib/bigdecimal/0/big_decimal.rbs +16 -16
- data/stdlib/cgi-escape/0/escape.rbs +4 -4
- data/stdlib/coverage/0/coverage.rbs +4 -3
- data/stdlib/date/0/date.rbs +33 -28
- data/stdlib/date/0/date_time.rbs +24 -23
- data/stdlib/did_you_mean/0/did_you_mean.rbs +17 -16
- data/stdlib/erb/0/erb.rbs +64 -53
- data/stdlib/etc/0/etc.rbs +55 -50
- data/stdlib/fileutils/0/fileutils.rbs +138 -125
- data/stdlib/forwardable/0/forwardable.rbs +10 -10
- data/stdlib/io-console/0/io-console.rbs +2 -2
- data/stdlib/json/0/json.rbs +135 -108
- data/stdlib/monitor/0/monitor.rbs +3 -3
- data/stdlib/net-http/0/net-http.rbs +159 -134
- data/stdlib/objspace/0/objspace.rbs +8 -7
- data/stdlib/open-uri/0/open-uri.rbs +8 -8
- data/stdlib/open3/0/open3.rbs +36 -35
- data/stdlib/openssl/0/openssl.rbs +144 -129
- data/stdlib/optparse/0/optparse.rbs +18 -14
- data/stdlib/pathname/0/pathname.rbs +2 -2
- data/stdlib/pp/0/pp.rbs +9 -8
- data/stdlib/prettyprint/0/prettyprint.rbs +7 -7
- data/stdlib/pstore/0/pstore.rbs +35 -30
- data/stdlib/psych/0/psych.rbs +61 -8
- data/stdlib/psych/0/store.rbs +2 -4
- data/stdlib/pty/0/pty.rbs +9 -6
- data/stdlib/random-formatter/0/random-formatter.rbs +2 -2
- data/stdlib/ripper/0/ripper.rbs +20 -17
- data/stdlib/securerandom/0/securerandom.rbs +1 -1
- data/stdlib/shellwords/0/shellwords.rbs +2 -2
- data/stdlib/socket/0/addrinfo.rbs +7 -7
- data/stdlib/socket/0/basic_socket.rbs +3 -3
- data/stdlib/socket/0/ip_socket.rbs +10 -8
- data/stdlib/socket/0/socket.rbs +10 -9
- data/stdlib/socket/0/tcp_server.rbs +1 -1
- data/stdlib/socket/0/tcp_socket.rbs +1 -1
- data/stdlib/socket/0/udp_socket.rbs +1 -1
- data/stdlib/socket/0/unix_server.rbs +1 -1
- data/stdlib/stringio/0/stringio.rbs +55 -54
- data/stdlib/strscan/0/string_scanner.rbs +46 -44
- data/stdlib/tempfile/0/tempfile.rbs +24 -20
- data/stdlib/time/0/time.rbs +7 -5
- data/stdlib/tsort/0/tsort.rbs +7 -6
- data/stdlib/uri/0/common.rbs +26 -18
- data/stdlib/uri/0/file.rbs +2 -2
- data/stdlib/uri/0/generic.rbs +2 -2
- data/stdlib/uri/0/http.rbs +2 -2
- data/stdlib/uri/0/ldap.rbs +2 -2
- data/stdlib/uri/0/mailto.rbs +3 -3
- data/stdlib/uri/0/rfc2396_parser.rbs +6 -5
- data/stdlib/zlib/0/deflate.rbs +4 -3
- data/stdlib/zlib/0/gzip_reader.rbs +4 -4
- data/stdlib/zlib/0/gzip_writer.rbs +14 -12
- data/stdlib/zlib/0/inflate.rbs +1 -1
- data/stdlib/zlib/0/need_dict.rbs +1 -1
- metadata +23 -5
- data/.github/workflows/valgrind.yml +0 -42
checksums.yaml
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
SHA256:
|
|
3
|
-
metadata.gz:
|
|
4
|
-
data.tar.gz:
|
|
3
|
+
metadata.gz: 690d197a18a87b38b5346aa388ce159c6309062882bfe0042f081a0c6c145f32
|
|
4
|
+
data.tar.gz: 8302d00f402a1997f0ad749e684da8a7717115a0d51d60b9aa006a5988345df5
|
|
5
5
|
SHA512:
|
|
6
|
-
metadata.gz:
|
|
7
|
-
data.tar.gz:
|
|
6
|
+
metadata.gz: aa8baf772365041ba474bbbd1c5ac55ae09bffc31fe57ae307e1778fdd115afbf9c2b940e59019e40026e76afdd77a30321229e46d88a953f9a7c90a7bf1c383
|
|
7
|
+
data.tar.gz: a701db27b244f861abcf394ff0ab57e54ad064697df540e564e4fda4b1242e9316f5453e2a14bb7548e8b063df39c0775bf76d13f7b8fde833c2c7e4e9758b65
|
|
@@ -2,6 +2,8 @@ name: C Code Generation and Formatting Check
|
|
|
2
2
|
|
|
3
3
|
on:
|
|
4
4
|
push:
|
|
5
|
+
branches:
|
|
6
|
+
- master
|
|
5
7
|
pull_request: {}
|
|
6
8
|
merge_group: {}
|
|
7
9
|
|
|
@@ -36,14 +38,16 @@ jobs:
|
|
|
36
38
|
curl -L https://github.com/skvadrik/re2c/archive/refs/tags/4.3.tar.gz > re2c-4.3.tar.gz
|
|
37
39
|
tar xf re2c-4.3.tar.gz
|
|
38
40
|
cd re2c-4.3
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
41
|
+
cmake --preset=linux-gcc-release-ootree-skeleton-fast
|
|
42
|
+
cmake --build --preset=linux-gcc-release-ootree-skeleton-fast --parallel="$(nproc)"
|
|
43
|
+
sudo ln -sf "$(pwd)"/.build/linux-gcc-release-ootree-skeleton-fast/re2c /usr/local/bin/re2c
|
|
44
|
+
re2c --version
|
|
43
45
|
- name: Update rubygems & bundler
|
|
44
46
|
run: |
|
|
45
47
|
ruby -v
|
|
46
48
|
gem update --system
|
|
49
|
+
- name: install erb
|
|
50
|
+
run: gem install erb
|
|
47
51
|
- name: bin/setup
|
|
48
52
|
run: |
|
|
49
53
|
bin/setup
|
|
@@ -16,7 +16,7 @@ jobs:
|
|
|
16
16
|
- uses: actions/checkout@v6
|
|
17
17
|
- uses: ruby/setup-ruby@v1
|
|
18
18
|
with:
|
|
19
|
-
ruby-version: "4.0.
|
|
19
|
+
ruby-version: "4.0.1"
|
|
20
20
|
bundler: none
|
|
21
21
|
- name: Install dependencies
|
|
22
22
|
run: |
|
|
@@ -26,6 +26,8 @@ jobs:
|
|
|
26
26
|
run: |
|
|
27
27
|
ruby -v
|
|
28
28
|
gem update --system
|
|
29
|
+
- name: install erb
|
|
30
|
+
run: gem install erb
|
|
29
31
|
- name: bin/setup
|
|
30
32
|
run: |
|
|
31
33
|
bin/setup
|
|
@@ -14,7 +14,7 @@ jobs:
|
|
|
14
14
|
if: ${{ github.event.pull_request.user.login == 'dependabot[bot]' }}
|
|
15
15
|
steps:
|
|
16
16
|
- name: Dependabot metadata
|
|
17
|
-
uses: dependabot/fetch-metadata@
|
|
17
|
+
uses: dependabot/fetch-metadata@21025c705c08248db411dc16f3619e6b5f9ea21a # v2.5.0
|
|
18
18
|
id: metadata
|
|
19
19
|
- name: Checkout repository
|
|
20
20
|
uses: actions/checkout@v6
|
data/.github/workflows/ruby.yml
CHANGED
|
@@ -32,6 +32,8 @@ jobs:
|
|
|
32
32
|
job: rubocop validate test_doc build test_generate_stdlib raap
|
|
33
33
|
- ruby: "4.0"
|
|
34
34
|
job: typecheck_test
|
|
35
|
+
- ruby: asan-release
|
|
36
|
+
job: test
|
|
35
37
|
env:
|
|
36
38
|
RANDOMIZE_STDLIB_TEST_ORDER: "true"
|
|
37
39
|
steps:
|
|
@@ -50,6 +52,8 @@ jobs:
|
|
|
50
52
|
run: |
|
|
51
53
|
ruby -v
|
|
52
54
|
gem update --system
|
|
55
|
+
- name: install erb
|
|
56
|
+
run: gem install erb
|
|
53
57
|
- name: bundle config set with
|
|
54
58
|
run: |
|
|
55
59
|
echo "NO_MINITEST=true" >> $GITHUB_ENV
|
|
@@ -66,6 +70,10 @@ jobs:
|
|
|
66
70
|
- name: bin/setup
|
|
67
71
|
run: |
|
|
68
72
|
bin/setup
|
|
73
|
+
- name: Configure ASAN options
|
|
74
|
+
if: ${{ contains(matrix.ruby, 'asan') }}
|
|
75
|
+
run: |
|
|
76
|
+
echo "ASAN_OPTIONS=abort_on_error=1" >> $GITHUB_ENV
|
|
69
77
|
- name: Run test
|
|
70
78
|
run: |
|
|
71
79
|
bundle exec rake ${{ matrix.job }}
|
|
@@ -90,6 +98,8 @@ jobs:
|
|
|
90
98
|
run: |
|
|
91
99
|
ruby -v
|
|
92
100
|
gem update --system
|
|
101
|
+
- name: install erb
|
|
102
|
+
run: gem install erb
|
|
93
103
|
- name: clang version
|
|
94
104
|
run: clang --version
|
|
95
105
|
- name: bundle config set force_ruby_platform true if head
|
|
@@ -0,0 +1,95 @@
|
|
|
1
|
+
name: Rust
|
|
2
|
+
|
|
3
|
+
on:
|
|
4
|
+
push:
|
|
5
|
+
branches:
|
|
6
|
+
- master
|
|
7
|
+
pull_request:
|
|
8
|
+
paths:
|
|
9
|
+
- ".github/workflows/rust.yml"
|
|
10
|
+
- "rust/**"
|
|
11
|
+
- "include/**"
|
|
12
|
+
- "src/**"
|
|
13
|
+
|
|
14
|
+
env:
|
|
15
|
+
RUSTFLAGS: "-D warnings"
|
|
16
|
+
|
|
17
|
+
jobs:
|
|
18
|
+
test:
|
|
19
|
+
name: cargo:test
|
|
20
|
+
runs-on: ${{ matrix.os }}
|
|
21
|
+
strategy:
|
|
22
|
+
fail-fast: false
|
|
23
|
+
matrix:
|
|
24
|
+
os: [ubuntu-latest, macos-latest, windows-latest]
|
|
25
|
+
steps:
|
|
26
|
+
- uses: actions/checkout@v6
|
|
27
|
+
- name: Install Rust tools
|
|
28
|
+
run: |
|
|
29
|
+
rustup update --no-self-update stable
|
|
30
|
+
rustup default stable
|
|
31
|
+
- uses: actions/cache@v5
|
|
32
|
+
with:
|
|
33
|
+
path: |
|
|
34
|
+
~/.cargo/registry
|
|
35
|
+
~/.cargo/git
|
|
36
|
+
rust/target
|
|
37
|
+
key: ${{ runner.os }}-cargo-${{ hashFiles('rust/Cargo.lock') }}
|
|
38
|
+
restore-keys: |
|
|
39
|
+
${{ runner.os }}-cargo-
|
|
40
|
+
- name: Run tests
|
|
41
|
+
run: |
|
|
42
|
+
cd rust
|
|
43
|
+
cargo test --verbose
|
|
44
|
+
|
|
45
|
+
publish-dry-run:
|
|
46
|
+
name: cargo:publish-dry-run
|
|
47
|
+
runs-on: ubuntu-latest
|
|
48
|
+
continue-on-error: true
|
|
49
|
+
steps:
|
|
50
|
+
- uses: actions/checkout@v6
|
|
51
|
+
- name: Install Rust tools
|
|
52
|
+
run: |
|
|
53
|
+
rustup update --no-self-update stable
|
|
54
|
+
rustup default stable
|
|
55
|
+
- uses: actions/cache@v5
|
|
56
|
+
with:
|
|
57
|
+
path: |
|
|
58
|
+
~/.cargo/registry
|
|
59
|
+
~/.cargo/git
|
|
60
|
+
rust/target
|
|
61
|
+
key: ${{ runner.os }}-cargo-${{ hashFiles('rust/Cargo.lock') }}
|
|
62
|
+
restore-keys: |
|
|
63
|
+
${{ runner.os }}-cargo-
|
|
64
|
+
- name: Test publish crates
|
|
65
|
+
run: |
|
|
66
|
+
cd rust
|
|
67
|
+
cargo publish --dry-run
|
|
68
|
+
|
|
69
|
+
lint:
|
|
70
|
+
name: cargo:lint
|
|
71
|
+
runs-on: ubuntu-latest
|
|
72
|
+
steps:
|
|
73
|
+
- uses: actions/checkout@v6
|
|
74
|
+
- name: Install Rust tools
|
|
75
|
+
run: |
|
|
76
|
+
rustup update --no-self-update stable
|
|
77
|
+
rustup default stable
|
|
78
|
+
rustup component add --toolchain stable clippy rustfmt
|
|
79
|
+
- uses: actions/cache@v5
|
|
80
|
+
with:
|
|
81
|
+
path: |
|
|
82
|
+
~/.cargo/registry
|
|
83
|
+
~/.cargo/git
|
|
84
|
+
rust/target
|
|
85
|
+
key: ${{ runner.os }}-cargo-${{ hashFiles('rust/Cargo.lock') }}
|
|
86
|
+
restore-keys: |
|
|
87
|
+
${{ runner.os }}-cargo-
|
|
88
|
+
- name: Check formatting
|
|
89
|
+
run: |
|
|
90
|
+
cd rust
|
|
91
|
+
cargo fmt --check
|
|
92
|
+
- name: Run clippy
|
|
93
|
+
run: |
|
|
94
|
+
cd rust
|
|
95
|
+
cargo clippy
|
data/CHANGELOG.md
CHANGED
|
@@ -1,5 +1,328 @@
|
|
|
1
1
|
# CHANGELOG
|
|
2
2
|
|
|
3
|
+
## 4.0.0 (2026-03-16)
|
|
4
|
+
|
|
5
|
+
RBS 4.0 ships with experimental RBS inline syntax support, allowing you to write type annotations directly in Ruby source files. See [docs/inline.md](docs/inline.md) for the syntax details.
|
|
6
|
+
|
|
7
|
+
```ruby
|
|
8
|
+
class Calculator
|
|
9
|
+
# @rbs (Integer, Integer) -> Integer
|
|
10
|
+
def add(a, b) = a + b
|
|
11
|
+
end
|
|
12
|
+
```
|
|
13
|
+
|
|
14
|
+
Note: RBS inline is still experimental and may change in future releases.
|
|
15
|
+
|
|
16
|
+
This release also introduces two language changes: type argument support for singleton types (`singleton(T)[S]`) mainly for Sorbet integration, and generic type parameter lower bounds (`T < S`).
|
|
17
|
+
|
|
18
|
+
### Signature updates
|
|
19
|
+
|
|
20
|
+
**Updated classes/modules/methods:** `Addrinfo`, `Array`, `BasicObject`, `BigDecimal`, `Binding`, `CGI`, `Comparable`, `Complex`, `Digest::SHA2`, `Encoding::Converter`, `Enumerable`, `Enumerator`, `Enumerator::ArithmeticSequence`, `Enumerator::Lazy`, `Fiber`, `File`, `FileUtils`, `Float`, `Hash`, `IO`, `IO::TimeoutError`, `Integer`, `JSON`, `Kernel`, `Kconv`, `Math`, `Method`, `Minitest`, `Module`, `Numeric`, `ObjectSpace`, `Open3`, `OpenURI`, `OptionParser`, `PStore`, `Pathname`, `Proc`, `Process::Status`, `Psych`, `Ractor`, `Random`, `Random::Formatter`, `Range`, `Rational`, `RBS::Unnamed::TopLevelSelfClass`, `Ripper::Lexer::Elem`, `Ruby`, `RubyVM`, `SecureRandom`, `Set`, `Socket`, `String`, `StringScanner`, `TCPSocket`, `Thread`, `URI`, `URI::Generic`, `Zlib::GzipReader`, `Zlib::GzipWriter`
|
|
21
|
+
|
|
22
|
+
* Remove deprecated types ([#2880](https://github.com/ruby/rbs/pull/2880))
|
|
23
|
+
* Add type `RBS::Unnamed::TopLevelSelfClass` to core ([#2362](https://github.com/ruby/rbs/pull/2362))
|
|
24
|
+
* Graduate bundled gems from Ruby v4.0 ([#2852](https://github.com/ruby/rbs/pull/2852))
|
|
25
|
+
* stdlib: Add missing Psych methods and exception classes ([#2850](https://github.com/ruby/rbs/pull/2850))
|
|
26
|
+
* Add variants with positional argument to `Hash#transform_keys` ([#2848](https://github.com/ruby/rbs/pull/2848))
|
|
27
|
+
* add extra kwarg options for File#initialize and derivatives ([#2798](https://github.com/ruby/rbs/pull/2798))
|
|
28
|
+
* pstore: fixes types, treat it as a collection ([#2806](https://github.com/ruby/rbs/pull/2806))
|
|
29
|
+
* Add signatures for `{Module,Proc}#ruby2_keywords` ([#2805](https://github.com/ruby/rbs/pull/2805))
|
|
30
|
+
* Make Zlib::GzipWriter.new level and strategy parameters optional ([#2810](https://github.com/ruby/rbs/pull/2810))
|
|
31
|
+
* URI.(s) does string coercion ([#2825](https://github.com/ruby/rbs/pull/2825))
|
|
32
|
+
* Fix String#append_as_bytes to accept Integer ([#2817](https://github.com/ruby/rbs/pull/2817))
|
|
33
|
+
* [Comparable] Add in Comparable::_CompareToZero ([#2697](https://github.com/ruby/rbs/pull/2697))
|
|
34
|
+
* [Kernel] Add Kernel.trace_var and Kernel.untrace_var ([#2682](https://github.com/ruby/rbs/pull/2682))
|
|
35
|
+
* Add signature for `Module#method_undefined` ([#2804](https://github.com/ruby/rbs/pull/2804))
|
|
36
|
+
* Fix Zlib::GzipWriter signatures ([#2803](https://github.com/ruby/rbs/pull/2803))
|
|
37
|
+
* GzipWriter#initialize only takes 1 required positional arg ([#2799](https://github.com/ruby/rbs/pull/2799))
|
|
38
|
+
* Fix accessibility of method in Module ([#2802](https://github.com/ruby/rbs/pull/2802))
|
|
39
|
+
* Graduate kconv ([#2794](https://github.com/ruby/rbs/pull/2794))
|
|
40
|
+
* Fix test related to pathname ([#2789](https://github.com/ruby/rbs/pull/2789))
|
|
41
|
+
* Split pathname to core and stdlib ([#2777](https://github.com/ruby/rbs/pull/2777))
|
|
42
|
+
* [Kernel] Narrow `caller_locations` ([#2745](https://github.com/ruby/rbs/pull/2745))
|
|
43
|
+
* Ruby 4.1 changed `source_location` type ([#2784](https://github.com/ruby/rbs/pull/2784))
|
|
44
|
+
* Remove ObjectSpace.count_nodes ([#2779](https://github.com/ruby/rbs/pull/2779))
|
|
45
|
+
* Support selector for `String#strip` family. ([#2775](https://github.com/ruby/rbs/pull/2775))
|
|
46
|
+
* Add `Ruby`, `Array#find`, and `Array#rfind` ([#2767](https://github.com/ruby/rbs/pull/2767))
|
|
47
|
+
* Update minitest ([#2761](https://github.com/ruby/rbs/pull/2761))
|
|
48
|
+
* Support BigDecimal v4 ([#2758](https://github.com/ruby/rbs/pull/2758))
|
|
49
|
+
* Update rdoc and comments ([#2733](https://github.com/ruby/rbs/pull/2733))
|
|
50
|
+
* Update cgi and cgi/escape type definitions ([#2728](https://github.com/ruby/rbs/pull/2728))
|
|
51
|
+
* Update RBS files for Ruby 4 ([#2731](https://github.com/ruby/rbs/pull/2731))
|
|
52
|
+
* Update existing docs ([#2724](https://github.com/ruby/rbs/pull/2724))
|
|
53
|
+
* Remove reference to `JSON.deep_const_get` ([#2701](https://github.com/ruby/rbs/pull/2701))
|
|
54
|
+
* Remove deprecated methods in `JSON` ([#2366](https://github.com/ruby/rbs/pull/2366))
|
|
55
|
+
* Update FileUtils to v1.8.0 ([#2700](https://github.com/ruby/rbs/pull/2700))
|
|
56
|
+
* Avoid overloading where arguments are identical ([#2559](https://github.com/ruby/rbs/pull/2559))
|
|
57
|
+
* Move Pathname to core from stdlib ([#2705](https://github.com/ruby/rbs/pull/2705))
|
|
58
|
+
* Remove undocumented `#nonzero?` ([#2543](https://github.com/ruby/rbs/pull/2543))
|
|
59
|
+
* Add signature for `OptionParser#raise_unknown` ([#2735](https://github.com/ruby/rbs/pull/2735))
|
|
60
|
+
* Add signature for `Open3.popen2` ([#2734](https://github.com/ruby/rbs/pull/2734))
|
|
61
|
+
* Add RFC2396_PARSER to URI module ([#2727](https://github.com/ruby/rbs/pull/2727))
|
|
62
|
+
* Add signature for `Open3.capture3` ([#2714](https://github.com/ruby/rbs/pull/2714))
|
|
63
|
+
* Remove sig for IO#{ready?,nread} ([#2710](https://github.com/ruby/rbs/pull/2710))
|
|
64
|
+
* Accept `nil` state parameter in `to_json` type signatures ([#2691](https://github.com/ruby/rbs/pull/2691))
|
|
65
|
+
* Add type of `Open3.popen3` ([#2699](https://github.com/ruby/rbs/pull/2699))
|
|
66
|
+
* `unsetenv_others` and `close_others` only allows bool. ([#2698](https://github.com/ruby/rbs/pull/2698))
|
|
67
|
+
* Add deprecated annotation to `attr` with bool args ([#2693](https://github.com/ruby/rbs/pull/2693))
|
|
68
|
+
* Update open3 ([#2692](https://github.com/ruby/rbs/pull/2692))
|
|
69
|
+
* Add signature for `SecureRandom.bytes` ([#2690](https://github.com/ruby/rbs/pull/2690))
|
|
70
|
+
* Set %a{deprecated} to deprecated core methods ([#2664](https://github.com/ruby/rbs/pull/2664))
|
|
71
|
+
* Migrate usages of ::_ToPath to use ::path instead ([#2677](https://github.com/ruby/rbs/pull/2677))
|
|
72
|
+
* Add missing signatures for `Random::Formatter` ([#2680](https://github.com/ruby/rbs/pull/2680))
|
|
73
|
+
* Split `Random::Formatter` to core and stdlib ([#2661](https://github.com/ruby/rbs/pull/2661))
|
|
74
|
+
* Skip test cases of developing methods for Pathname ([#2648](https://github.com/ruby/rbs/pull/2648))
|
|
75
|
+
* Add signature `Random.seed` ([#2649](https://github.com/ruby/rbs/pull/2649))
|
|
76
|
+
* Update `string.rbs` to avoid deprecation warning in Steep ([#2655](https://github.com/ruby/rbs/pull/2655))
|
|
77
|
+
* Add sig `IO#pread` and `IO#pwrite` ([#2647](https://github.com/ruby/rbs/pull/2647))
|
|
78
|
+
* Refine signature of `Numeric#step` and add type of `Enumerator::ArithmeticSequence` ([#2600](https://github.com/ruby/rbs/pull/2600))
|
|
79
|
+
* Remove undocumented override methods ([#2622](https://github.com/ruby/rbs/pull/2622))
|
|
80
|
+
* Add docs ([#2625](https://github.com/ruby/rbs/pull/2625))
|
|
81
|
+
* Remove undocumented methods for `imaginary` ([#2620](https://github.com/ruby/rbs/pull/2620))
|
|
82
|
+
* Update securerandom ([#2619](https://github.com/ruby/rbs/pull/2619))
|
|
83
|
+
* Drop undocumented `#eql?` ([#2618](https://github.com/ruby/rbs/pull/2618))
|
|
84
|
+
* Just use `Numeric#+@` and return self ([#2597](https://github.com/ruby/rbs/pull/2597))
|
|
85
|
+
* Drop undocumented `#dup` ([#2598](https://github.com/ruby/rbs/pull/2598))
|
|
86
|
+
* Add signature for `Digest::SHA2` ([#2573](https://github.com/ruby/rbs/pull/2573))
|
|
87
|
+
* Add signatures for `OpenURI` ([#2574](https://github.com/ruby/rbs/pull/2574))
|
|
88
|
+
* Add signature for `IO::TimeoutError` ([#2571](https://github.com/ruby/rbs/pull/2571))
|
|
89
|
+
* Add signatures for `Set` ([#2570](https://github.com/ruby/rbs/pull/2570))
|
|
90
|
+
* Add signature for `Enumerator#+` ([#2567](https://github.com/ruby/rbs/pull/2567))
|
|
91
|
+
* Add signature for `Enumerator::Lazy#eager` ([#2568](https://github.com/ruby/rbs/pull/2568))
|
|
92
|
+
* Add signature for `Fiber#blocking` ([#2566](https://github.com/ruby/rbs/pull/2566))
|
|
93
|
+
* Support BasicObject to avoid NoMethodError for `RBS::Test::TypeCheck` ([#2565](https://github.com/ruby/rbs/pull/2565))
|
|
94
|
+
* Add documentation for `Range#{minmax,count,to_a,entries}` ([#2562](https://github.com/ruby/rbs/pull/2562))
|
|
95
|
+
* Delegate to `Enumerable` from `Range#{min,max}` ([#2540](https://github.com/ruby/rbs/pull/2540))
|
|
96
|
+
* Add URI::Generic#+ ([#2535](https://github.com/ruby/rbs/pull/2535))
|
|
97
|
+
* Make IO.binread, IO.binwrite, IO.read and IO.write accept _ToPath ([#2378](https://github.com/ruby/rbs/pull/2378))
|
|
98
|
+
* Support pattern argument for Enumerable#{all,any,none,one}? ([#2368](https://github.com/ruby/rbs/pull/2368))
|
|
99
|
+
* fixing sig for addrinfo ([#2464](https://github.com/ruby/rbs/pull/2464))
|
|
100
|
+
|
|
101
|
+
### Language updates
|
|
102
|
+
|
|
103
|
+
* Add type arguments support to singleton types ([#2502](https://github.com/ruby/rbs/pull/2502))
|
|
104
|
+
* Move the note about lower bound ([#2517](https://github.com/ruby/rbs/pull/2517))
|
|
105
|
+
* Add support for lower bounds in type parameters ([#2490](https://github.com/ruby/rbs/pull/2490))
|
|
106
|
+
|
|
107
|
+
### Library changes
|
|
108
|
+
|
|
109
|
+
* Add `#type_fingerprint` methods ([#2879](https://github.com/ruby/rbs/pull/2879))
|
|
110
|
+
* `top` for membership predicates of collection types ([#2878](https://github.com/ruby/rbs/pull/2878))
|
|
111
|
+
* Add block parameter (`&block`) type declaration ([#2875](https://github.com/ruby/rbs/pull/2875))
|
|
112
|
+
* Add splat (`*a`) and double-splat (`**a`) parameter support ([#2873](https://github.com/ruby/rbs/pull/2873))
|
|
113
|
+
* Add parameter type inline annotation ([#2443](https://github.com/ruby/rbs/pull/2443))
|
|
114
|
+
* Reduce compile warnings ([#2871](https://github.com/ruby/rbs/pull/2871))
|
|
115
|
+
* Specify input range by byte offsets ([#2863](https://github.com/ruby/rbs/pull/2863))
|
|
116
|
+
* add `extern "C"` wrapping to `rbs.h` when using C++ ([#2855](https://github.com/ruby/rbs/pull/2855))
|
|
117
|
+
* Automatically inherits super method type if unannotated ([#2858](https://github.com/ruby/rbs/pull/2858))
|
|
118
|
+
* Add `...` syntax to method type inline annotation syntax ([#2856](https://github.com/ruby/rbs/pull/2856))
|
|
119
|
+
* Fix for string reference corruption issue ([#2836](https://github.com/ruby/rbs/pull/2836))
|
|
120
|
+
* Use unreleased steep for `rake typecheck_test` ([#2842](https://github.com/ruby/rbs/pull/2842))
|
|
121
|
+
* Fix breaking references after GC.compact ([#2822](https://github.com/ruby/rbs/pull/2822))
|
|
122
|
+
* Fix special methods accessibility. ([#2546](https://github.com/ruby/rbs/pull/2546))
|
|
123
|
+
* Fix allocation alignment ([#2788](https://github.com/ruby/rbs/pull/2788))
|
|
124
|
+
* Skip `set` and `pathname` from `manifest.yaml` ([#2773](https://github.com/ruby/rbs/pull/2773))
|
|
125
|
+
* Fix C++ compiler warnings ([#2755](https://github.com/ruby/rbs/pull/2755))
|
|
126
|
+
* Better encoding ([#2675](https://github.com/ruby/rbs/pull/2675))
|
|
127
|
+
* Move `require_eof` handling to C API ([#2678](https://github.com/ruby/rbs/pull/2678))
|
|
128
|
+
* Delete debug print ([#2753](https://github.com/ruby/rbs/pull/2753))
|
|
129
|
+
* Make assertions macro ([#2729](https://github.com/ruby/rbs/pull/2729))
|
|
130
|
+
* Remove deprecated method `Kernel#Namespace`. Also remove `Kernel#TypeName`. ([#2480](https://github.com/ruby/rbs/pull/2480))
|
|
131
|
+
* Update rdoc to 6.13.1 ([#2355](https://github.com/ruby/rbs/pull/2355))
|
|
132
|
+
* Allow `self` for inline `@rbs @ivar: self` ([#2633](https://github.com/ruby/rbs/pull/2633))
|
|
133
|
+
* Normalize modules during type name resolution ([#2670](https://github.com/ruby/rbs/pull/2670))
|
|
134
|
+
* Only load extconf_compile_commands_json when compiling through Rake ([#2498](https://github.com/ruby/rbs/pull/2498))
|
|
135
|
+
* Use `malloc` based allocator ([#2666](https://github.com/ruby/rbs/pull/2666))
|
|
136
|
+
* Add another parser benchmark script ([#2668](https://github.com/ruby/rbs/pull/2668))
|
|
137
|
+
* Reuse empty array and hash ([#2667](https://github.com/ruby/rbs/pull/2667))
|
|
138
|
+
* Faster lexical analyzer ([#2665](https://github.com/ruby/rbs/pull/2665))
|
|
139
|
+
* Introduce `type_fingerprint` ([#2644](https://github.com/ruby/rbs/pull/2644))
|
|
140
|
+
* Add module-class alias declaration ([#2636](https://github.com/ruby/rbs/pull/2636))
|
|
141
|
+
* Inline constant declaration ([#2635](https://github.com/ruby/rbs/pull/2635))
|
|
142
|
+
* `self` type is rejected depending on the context ([#2627](https://github.com/ruby/rbs/pull/2627))
|
|
143
|
+
* Add instance variable declaration annotation ([#2632](https://github.com/ruby/rbs/pull/2632))
|
|
144
|
+
* Module-self allow void once ([#2626](https://github.com/ruby/rbs/pull/2626))
|
|
145
|
+
* Support inheritance in Inline RBS declaration ([#2630](https://github.com/ruby/rbs/pull/2630))
|
|
146
|
+
* Inline attribute/method definitions have comments ([#2624](https://github.com/ruby/rbs/pull/2624))
|
|
147
|
+
* Inline RBS declaration for attributes (`attr_***`) ([#2623](https://github.com/ruby/rbs/pull/2623))
|
|
148
|
+
* Fix bad scaling in `rbs_comment_t` tokens ([#2578](https://github.com/ruby/rbs/pull/2578))
|
|
149
|
+
* Update parser so that `void` type is rejected depending on the context ([#2590](https://github.com/ruby/rbs/pull/2590))
|
|
150
|
+
* Implement mixin in inline RBS declarations ([#2614](https://github.com/ruby/rbs/pull/2614))
|
|
151
|
+
* Validate type args given to non-generic ancestor ([#2615](https://github.com/ruby/rbs/pull/2615))
|
|
152
|
+
* Add name locations to AST ([#2595](https://github.com/ruby/rbs/pull/2595))
|
|
153
|
+
* Move `exit` calls to `exe/rbs` ([#2591](https://github.com/ruby/rbs/pull/2591))
|
|
154
|
+
* Fix locator ([#2588](https://github.com/ruby/rbs/pull/2588))
|
|
155
|
+
* Introduce standalone C parser for RBS with arena allocation ([#2398](https://github.com/ruby/rbs/pull/2398))
|
|
156
|
+
* Fix subtraction of civar ([#2369](https://github.com/ruby/rbs/pull/2369))
|
|
157
|
+
* Buffer with empty string ([#2551](https://github.com/ruby/rbs/pull/2551))
|
|
158
|
+
* Fix unavailable MAP_ANONYMOUS ([#2470](https://github.com/ruby/rbs/pull/2470))
|
|
159
|
+
* Inline minor fix ([#2514](https://github.com/ruby/rbs/pull/2514))
|
|
160
|
+
* Enable `-Wc++-compat` ([#2463](https://github.com/ruby/rbs/pull/2463))
|
|
161
|
+
* Expose a method to parse type parameters ([#2457](https://github.com/ruby/rbs/pull/2457))
|
|
162
|
+
* Expose and fix `Block#location` ([#2456](https://github.com/ruby/rbs/pull/2456))
|
|
163
|
+
* Restore RBS::Environment#declarations for backwards-compatibility ([#2393](https://github.com/ruby/rbs/pull/2393))
|
|
164
|
+
* Implement `@rbs return: T` annotation ([#2406](https://github.com/ruby/rbs/pull/2406))
|
|
165
|
+
* Add `@rbs skip` annotation ([#2405](https://github.com/ruby/rbs/pull/2405))
|
|
166
|
+
* Inline annotations ([#2403](https://github.com/ruby/rbs/pull/2403))
|
|
167
|
+
* Inline `def` support ([#2392](https://github.com/ruby/rbs/pull/2392))
|
|
168
|
+
* Suppress to GCC warning with multi-line comment ([#2383](https://github.com/ruby/rbs/pull/2383))
|
|
169
|
+
* Add inline class/module declaration ([#2390](https://github.com/ruby/rbs/pull/2390))
|
|
170
|
+
* Add `RBS::Source::RBS` ([#2380](https://github.com/ruby/rbs/pull/2380))
|
|
171
|
+
|
|
172
|
+
#### rbs prototype
|
|
173
|
+
|
|
174
|
+
* [prototype runtime] Find redefined methods ([#2542](https://github.com/ruby/rbs/pull/2542))
|
|
175
|
+
|
|
176
|
+
#### rbs collection
|
|
177
|
+
|
|
178
|
+
### Miscellaneous
|
|
179
|
+
|
|
180
|
+
* bundle update (2026-01-20) ([#2818](https://github.com/ruby/rbs/pull/2818))
|
|
181
|
+
* Ruby 4.0.1 ([#2823](https://github.com/ruby/rbs/pull/2823))
|
|
182
|
+
* [rbs/test] Check type arguments size ([#2809](https://github.com/ruby/rbs/pull/2809))
|
|
183
|
+
* Add tsort to testing dependencies ([#2795](https://github.com/ruby/rbs/pull/2795))
|
|
184
|
+
* Update ruby to 4.0 ([#2776](https://github.com/ruby/rbs/pull/2776))
|
|
185
|
+
* Ruby 4.0.0 preview3 ([#2764](https://github.com/ruby/rbs/pull/2764))
|
|
186
|
+
* Remove test code for bundled gems ([#2760](https://github.com/ruby/rbs/pull/2760))
|
|
187
|
+
* Fix `nil` size `Enumerator` test ([#2749](https://github.com/ruby/rbs/pull/2749))
|
|
188
|
+
* Fix tests for rbs_skip_tests in ruby repo ([#2725](https://github.com/ruby/rbs/pull/2725))
|
|
189
|
+
* Update rdoc to v6.16 ([#2721](https://github.com/ruby/rbs/pull/2721))
|
|
190
|
+
* Run CI with "4.0.0-preview2" ([#2718](https://github.com/ruby/rbs/pull/2718))
|
|
191
|
+
* Minor typo fix ([#2676](https://github.com/ruby/rbs/pull/2676))
|
|
192
|
+
* Add -j option to make ([#2658](https://github.com/ruby/rbs/pull/2658))
|
|
193
|
+
* Allows the use of a path list as RBS_SKIP_TESTS ([#2612](https://github.com/ruby/rbs/pull/2612))
|
|
194
|
+
* Fix clang-format ([#2589](https://github.com/ruby/rbs/pull/2589))
|
|
195
|
+
* Restrict the execution of the valgrind task to when the C code has been modified. ([#2552](https://github.com/ruby/rbs/pull/2552))
|
|
196
|
+
* Set force_ruby_platform for bundler when head ([#2555](https://github.com/ruby/rbs/pull/2555))
|
|
197
|
+
* More skip paths with valgrind ([#2557](https://github.com/ruby/rbs/pull/2557))
|
|
198
|
+
* Run the `Encoding::Converter` test ([#2550](https://github.com/ruby/rbs/pull/2550))
|
|
199
|
+
* Fix CI ([#2527](https://github.com/ruby/rbs/pull/2527))
|
|
200
|
+
* Replace reference with official documentation ([#2453](https://github.com/ruby/rbs/pull/2453))
|
|
201
|
+
* Add clangd integration for improved C extension development ([#2481](https://github.com/ruby/rbs/pull/2481))
|
|
202
|
+
* Setup clang format for C code ([#2437](https://github.com/ruby/rbs/pull/2437))
|
|
203
|
+
* Add `super` calls in `setup` ([#2484](https://github.com/ruby/rbs/pull/2484))
|
|
204
|
+
* Suppress warnings during testing ([#2370](https://github.com/ruby/rbs/pull/2370))
|
|
205
|
+
* Update rubocop-on-rbs and use plugins ([#2345](https://github.com/ruby/rbs/pull/2345))
|
|
206
|
+
* Fix error at Ruby CI ([#2445](https://github.com/ruby/rbs/pull/2445))
|
|
207
|
+
* Use `erb` instead of `set` for load path testing ([#2439](https://github.com/ruby/rbs/pull/2439))
|
|
208
|
+
* Skip loading ruby_memcheck ([#2349](https://github.com/ruby/rbs/pull/2349))
|
|
209
|
+
* Forcibly uninstall gems even if there is a dependency problem. ([#2346](https://github.com/ruby/rbs/pull/2346))
|
|
210
|
+
|
|
211
|
+
## 3.10.3 (2026-01-30)
|
|
212
|
+
|
|
213
|
+
This is a minor fix around the dependency to `tsort`.
|
|
214
|
+
|
|
215
|
+
## Pull Requests
|
|
216
|
+
|
|
217
|
+
* Merge pull request #2601 from ima1zumi/add-tsort-dep ([#2834](https://github.com/ruby/rbs/pull/2834))
|
|
218
|
+
|
|
219
|
+
## 3.10.2 (2026-01-07)
|
|
220
|
+
|
|
221
|
+
This is a minor fix on arena allocator alignment.
|
|
222
|
+
|
|
223
|
+
### Pull Requests
|
|
224
|
+
|
|
225
|
+
* Merge pull request #2788 from ruby/fix-alloc-alignment ([#2790](https://github.com/ruby/rbs/pull/2790))
|
|
226
|
+
|
|
227
|
+
## 3.10.1 (2026-01-07)
|
|
228
|
+
|
|
229
|
+
This is a follow-up release for Ruby 4.0.0 with documentation update based on Ruby 4.0.0, and bugfixes related to set/pathname library loading.
|
|
230
|
+
|
|
231
|
+
### Pull Requests
|
|
232
|
+
|
|
233
|
+
* Merge pull request #2777 from ksss/pathname-ext ([#2786](https://github.com/ruby/rbs/pull/2786))
|
|
234
|
+
* Ruby 4.0.0 backports ([#2785](https://github.com/ruby/rbs/pull/2785))
|
|
235
|
+
* [Backport] Fix subtraction of civar ([#2783](https://github.com/ruby/rbs/pull/2783))
|
|
236
|
+
* [Backport] Update ruby to 4.0 ([#2778](https://github.com/ruby/rbs/pull/2778))
|
|
237
|
+
|
|
238
|
+
## 3.10.0 (2025-12-23)
|
|
239
|
+
|
|
240
|
+
RBS 3.10.0 ships with a pure C parser implementation, signature updates for Ruby 4.0, and various bug fixes.
|
|
241
|
+
|
|
242
|
+
### Pure C parser implementation
|
|
243
|
+
|
|
244
|
+
The new parser implementation was announced at [RubyKaigi 2025](https://rubykaigi.org/2025/presentations/amomchilov.html) and is finally shipped as a RubyGem!
|
|
245
|
+
|
|
246
|
+
The new parser is faster than the one in 3.9 and is portable — it is independent of the Ruby runtime and is used to implement Sorbet’s RBS support.
|
|
247
|
+
|
|
248
|
+
### Type definition of bundled gems
|
|
249
|
+
|
|
250
|
+
The type definitions of `cgi` have been moved to [gem_rbs_collection](https://github.com/ruby/gem_rbs_collection/tree/main/gems/cgi), as it has been migrated to a bundled gem in Ruby 4.0
|
|
251
|
+
|
|
252
|
+
`cgi-escape` has been added to `stdlib`. You may need to declare a dependency on `cgi-escape` in your `manifest.yaml`, add `-r cgi-escape` to your command line, or update your type checker configuration.
|
|
253
|
+
|
|
254
|
+
```yaml
|
|
255
|
+
dependencies:
|
|
256
|
+
- name: cgi-escape
|
|
257
|
+
```
|
|
258
|
+
|
|
259
|
+
The type definitions for `pathname` have also been moved from `stdlib` to `core`, as it is now implemented as part of the core library.
|
|
260
|
+
|
|
261
|
+
### Pull Requests
|
|
262
|
+
|
|
263
|
+
* [Backport] Support rdoc v7 ([#2770](https://github.com/ruby/rbs/pull/2770))
|
|
264
|
+
* [Backport] Check tuple type length ([#2766](https://github.com/ruby/rbs/pull/2766))
|
|
265
|
+
* Backport update to 4.0.0-preview3 ([#2768](https://github.com/ruby/rbs/pull/2768))
|
|
266
|
+
* [Backport] Remove test code for bundled gems ([#2762](https://github.com/ruby/rbs/pull/2762))
|
|
267
|
+
* Merge pull request #2761 from ruby/update-minitest ([#2763](https://github.com/ruby/rbs/pull/2763))
|
|
268
|
+
* [Backport] Support BigDecimal v4 ([#2759](https://github.com/ruby/rbs/pull/2759))
|
|
269
|
+
* Parser/lexer backports ([#2756](https://github.com/ruby/rbs/pull/2756))
|
|
270
|
+
* Merge pull request #2753 from ruby/delete-printf ([#2754](https://github.com/ruby/rbs/pull/2754))
|
|
271
|
+
* Backports ([#2751](https://github.com/ruby/rbs/pull/2751))
|
|
272
|
+
* Merge pull request #2728 from ruby/cgi ([#2747](https://github.com/ruby/rbs/pull/2747))
|
|
273
|
+
* Merge pull request #2729 from ruby/rbs-assert ([#2748](https://github.com/ruby/rbs/pull/2748))
|
|
274
|
+
* Merge pull request #2749 from ruby/fix-test ([#2750](https://github.com/ruby/rbs/pull/2750))
|
|
275
|
+
* Backport RBS file updates ([#2742](https://github.com/ruby/rbs/pull/2742))
|
|
276
|
+
* Backport JSON PRs ([#2740](https://github.com/ruby/rbs/pull/2740))
|
|
277
|
+
* Merge pull request #2718 from ruby/ruby-4 ([#2741](https://github.com/ruby/rbs/pull/2741))
|
|
278
|
+
* [Backport] Move Pathname to core from stdlib ([#2730](https://github.com/ruby/rbs/pull/2730))
|
|
279
|
+
* Backport rdoc 6.16 ([#2722](https://github.com/ruby/rbs/pull/2722))
|
|
280
|
+
* Backport rdoc support ([#2719](https://github.com/ruby/rbs/pull/2719))
|
|
281
|
+
* Backport "Remove sig for IO#{ready?,nread}" ([#2720](https://github.com/ruby/rbs/pull/2720))
|
|
282
|
+
* Backport more pure C parsers ([#2679](https://github.com/ruby/rbs/pull/2679))
|
|
283
|
+
* Backport module name normalization ([#2673](https://github.com/ruby/rbs/pull/2673))
|
|
284
|
+
* Backport pure-C parser ([#2671](https://github.com/ruby/rbs/pull/2671))
|
|
285
|
+
* Fix test failure ([#2672](https://github.com/ruby/rbs/pull/2672))
|
|
286
|
+
|
|
287
|
+
## 3.9.5 (2025-09-08)
|
|
288
|
+
|
|
289
|
+
### Signature updates
|
|
290
|
+
|
|
291
|
+
* Merge pull request #2655 from ruby/silence-string-deprecation ([#2656](https://github.com/ruby/rbs/pull/2656))
|
|
292
|
+
|
|
293
|
+
### Miscellaneous
|
|
294
|
+
|
|
295
|
+
* Allows the use of a path list as RBS_SKIP_TESTS ([#2641](https://github.com/ruby/rbs/pull/2641))
|
|
296
|
+
* Suppress to GCC warning with multi-line comment ([#2646](https://github.com/ruby/rbs/pull/2646))
|
|
297
|
+
* Backport to 3.9 ([#2487](https://github.com/ruby/rbs/pull/2487))
|
|
298
|
+
* Use erb instead of set for load path testing ([#2468](https://github.com/ruby/rbs/pull/2468))
|
|
299
|
+
|
|
300
|
+
## 3.9.4 (2025-05-15)
|
|
301
|
+
|
|
302
|
+
### Miscellaneous
|
|
303
|
+
|
|
304
|
+
* Backport test/CI fixes to 3.9 ([#2487](https://github.com/ruby/rbs/pull/2487))
|
|
305
|
+
* Use erb instead of set for load path testing ([#2468](https://github.com/ruby/rbs/pull/2468))
|
|
306
|
+
|
|
307
|
+
## 3.9.3 (2025-05-09)
|
|
308
|
+
|
|
309
|
+
### Miscellaneous
|
|
310
|
+
|
|
311
|
+
* Use erb instead of set for load path testing ([#2468](https://github.com/ruby/rbs/pull/2468))
|
|
312
|
+
|
|
313
|
+
## 3.9.2 (2025-03-31)
|
|
314
|
+
|
|
315
|
+
### Library changes
|
|
316
|
+
|
|
317
|
+
* Change `{}` to `{ 0 }` ([#2354](https://github.com/ruby/rbs/pull/2354))
|
|
318
|
+
|
|
319
|
+
## 3.9.1 (2025-03-24)
|
|
320
|
+
|
|
321
|
+
### Miscellaneous
|
|
322
|
+
|
|
323
|
+
* `did_you_mean` is a default gem ([#2348](https://github.com/ruby/rbs/pull/2348))
|
|
324
|
+
* Skip loading ruby_memcheck ([#2347](https://github.com/ruby/rbs/pull/2347))
|
|
325
|
+
|
|
3
326
|
## 3.9.0 (2025-03-18)
|
|
4
327
|
|
|
5
328
|
### Miscellaneous
|
data/Rakefile
CHANGED
|
@@ -35,18 +35,6 @@ end
|
|
|
35
35
|
|
|
36
36
|
Rake::TestTask.new(test: :compile, &test_config)
|
|
37
37
|
|
|
38
|
-
unless Gem.win_platform?
|
|
39
|
-
begin
|
|
40
|
-
require "ruby_memcheck"
|
|
41
|
-
|
|
42
|
-
namespace :test do
|
|
43
|
-
RubyMemcheck::TestTask.new(valgrind: :compile, &test_config)
|
|
44
|
-
end
|
|
45
|
-
rescue LoadError => exn
|
|
46
|
-
STDERR.puts "🚨🚨🚨🚨 Skipping RubyMemcheck: #{exn.inspect} 🚨🚨🚨🚨"
|
|
47
|
-
end
|
|
48
|
-
end
|
|
49
|
-
|
|
50
38
|
multitask :default => [:test, :stdlib_test, :typecheck_test, :rubocop, :validate, :test_doc]
|
|
51
39
|
|
|
52
40
|
task :lexer do
|
|
@@ -191,7 +179,7 @@ end
|
|
|
191
179
|
task :validate => :compile do
|
|
192
180
|
require 'yaml'
|
|
193
181
|
|
|
194
|
-
sh "#{ruby} #{rbs} validate
|
|
182
|
+
sh "#{ruby} #{rbs} validate"
|
|
195
183
|
|
|
196
184
|
libs = FileList["stdlib/*"].map {|path| File.basename(path).to_s }
|
|
197
185
|
|
|
@@ -219,7 +207,7 @@ task :validate => :compile do
|
|
|
219
207
|
args << "prism"
|
|
220
208
|
end
|
|
221
209
|
|
|
222
|
-
sh "#{ruby} #{rbs} #{args.join(' ')} validate
|
|
210
|
+
sh "#{ruby} #{rbs} #{args.join(' ')} validate"
|
|
223
211
|
end
|
|
224
212
|
end
|
|
225
213
|
|
|
@@ -246,21 +234,16 @@ task :stdlib_test => :compile do
|
|
|
246
234
|
end
|
|
247
235
|
|
|
248
236
|
task :typecheck_test => :compile do
|
|
249
|
-
|
|
250
|
-
|
|
251
|
-
|
|
252
|
-
|
|
253
|
-
|
|
254
|
-
|
|
255
|
-
|
|
256
|
-
|
|
257
|
-
|
|
258
|
-
|
|
259
|
-
# else
|
|
260
|
-
# sh "steep check"
|
|
261
|
-
# end
|
|
262
|
-
# end
|
|
263
|
-
# end
|
|
237
|
+
FileList["test/typecheck/*"].each do |test|
|
|
238
|
+
Dir.chdir(test) do
|
|
239
|
+
expectations = File.join(test, "steep_expectations.yml")
|
|
240
|
+
if File.exist?(expectations)
|
|
241
|
+
sh "steep check --with_expectations"
|
|
242
|
+
else
|
|
243
|
+
sh "steep check"
|
|
244
|
+
end
|
|
245
|
+
end
|
|
246
|
+
end
|
|
264
247
|
end
|
|
265
248
|
|
|
266
249
|
task :raap => :compile do
|