Skip to content
Draft
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
30 commits
Select commit Hold shift + click to select a range
78d037a
Skip loading ruby_memcheck
soutaro Mar 24, 2025
6e9facd
Add --force so that `did_you_mean` is a default gem
soutaro Mar 24, 2025
41bcd8c
Merge pull request #2347 from ruby/skip-memcheck
soutaro Mar 24, 2025
cfd2301
Merge pull request #2348 from ruby/fix-widows
soutaro Mar 24, 2025
0f89f84
Version 3.9.1
soutaro Mar 24, 2025
f8fabaa
Merge pull request #2350 from ruby/version-3.9.1
soutaro Mar 24, 2025
8bf0aa7
Change `{}` to `{ 0 }`
soutaro Mar 24, 2025
100ecce
Merge pull request #2354 from ruby/C2059
soutaro Mar 31, 2025
d373277
Version 3.9.2
soutaro Mar 31, 2025
525126f
Merge pull request #2371 from ruby/3.9.2
soutaro Mar 31, 2025
c6328f1
Use erb instead of set for load path testing
st0012 May 1, 2025
ff00897
bundle update
soutaro May 9, 2025
1e29a04
Merge pull request #2468 from ruby/set-erb
soutaro May 9, 2025
deabcb7
Version 3.9.3
soutaro May 9, 2025
ee913ff
Merge pull request #2469 from ruby/version-3.9.3
soutaro May 9, 2025
60cde33
Merge pull request #2484 from ruby/supers
soutaro May 15, 2025
c33ce1d
Merge pull request #2485 from ruby/fix-ci
soutaro May 15, 2025
38c4a5a
Merge pull request #2487 from ruby/fix-supers-3.9
soutaro May 15, 2025
46ebacb
Version 3.9.4
soutaro May 15, 2025
8c362dc
Merge pull request #2489 from ruby/3.9.4
soutaro May 15, 2025
3392bc5
Merge pull request #2612 from nobu/skip_tests-files
soutaro Aug 14, 2025
49edf97
`require ‘fileutils’` explicitly
soutaro Aug 15, 2025
fba1f77
Merge pull request #2641 from ruby/backport-multiple-skip-files
soutaro Aug 15, 2025
368bf4b
Suppress to GCC warning with multi-line comment
hsbt Apr 4, 2025
aa22d7e
Merge pull request #2646 from k0kubun/aaa-3.9.x-warning
soutaro Sep 1, 2025
9c61968
Merge pull request #2655 from ruby/silence-string-deprecation
soutaro Sep 8, 2025
7c3cde9
Merge pull request #2656 from ruby/silence-string-deprecation-3.9
soutaro Sep 8, 2025
5687bda
Version 3.9.5
soutaro Sep 8, 2025
ba2829a
Merge pull request #2657 from ruby/version-3.9.5
soutaro Sep 8, 2025
22451ec
Skip io/wait tests for methods deleted in Ruby 4
XrXr Nov 12, 2025
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
4 changes: 0 additions & 4 deletions .github/workflows/ruby.yml
Original file line number Diff line number Diff line change
Expand Up @@ -44,8 +44,6 @@ jobs:
bundler: none
- name: Set working directory as safe
run: git config --global --add safe.directory $(pwd)
- name: Set up permission
run: chmod -R o-w /opt/hostedtoolcache/Ruby
- name: Install dependencies
run: |
sudo apt-get update
Expand Down Expand Up @@ -90,8 +88,6 @@ jobs:
bundler-cache: none
- name: Set working directory as safe
run: git config --global --add safe.directory $(pwd)
- name: Set up permission
run: chmod -R o-w /opt/hostedtoolcache/Ruby
- name: Install dependencies
run: |
sudo apt-get update
Expand Down
2 changes: 0 additions & 2 deletions .github/workflows/typecheck.yml
Original file line number Diff line number Diff line change
Expand Up @@ -20,8 +20,6 @@ jobs:
bundler: none
- name: Set working directory as safe
run: git config --global --add safe.directory $(pwd)
- name: Set up permission
run: chmod -R o-w /opt/hostedtoolcache/Ruby
- name: Install dependencies
run: |
sudo apt-get update
Expand Down
2 changes: 1 addition & 1 deletion .github/workflows/windows.yml
Original file line number Diff line number Diff line change
Expand Up @@ -33,7 +33,7 @@ jobs:

res = URI.parse("https://stdgems.org/bundled_gems.json").read
bundled_gems = JSON.parse(res)["gems"].map{_1["gem"]}
system "gem uninstall #{bundled_gems.join(" ")}", exception: true
system "gem uninstall --force #{bundled_gems.join(" ")}", exception: true
'
- name: bundle install
run: |
Expand Down
39 changes: 39 additions & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
@@ -1,5 +1,44 @@
# CHANGELOG

## 3.9.5 (2025-09-08)

### Signature updates

* Merge pull request #2655 from ruby/silence-string-deprecation ([#2656](https://github.com/ruby/rbs/pull/2656))

### Miscellaneous

* Allows the use of a path list as RBS_SKIP_TESTS ([#2641](https://github.com/ruby/rbs/pull/2641))
* Suppress to GCC warning with multi-line comment ([#2646](https://github.com/ruby/rbs/pull/2646))
* Backport to 3.9 ([#2487](https://github.com/ruby/rbs/pull/2487))
* Use erb instead of set for load path testing ([#2468](https://github.com/ruby/rbs/pull/2468))

## 3.9.4 (2025-05-15)

### Miscellaneous

* Backport test/CI fixes to 3.9 ([#2487](https://github.com/ruby/rbs/pull/2487))
* Use erb instead of set for load path testing ([#2468](https://github.com/ruby/rbs/pull/2468))

## 3.9.3 (2025-05-09)

### Miscellaneous

* Use erb instead of set for load path testing ([#2468](https://github.com/ruby/rbs/pull/2468))

## 3.9.2 (2025-03-31)

### Library changes

* Change `{}` to `{ 0 }` ([#2354](https://github.com/ruby/rbs/pull/2354))

## 3.9.1 (2025-03-24)

### Miscellaneous

* `did_you_mean` is a default gem ([#2348](https://github.com/ruby/rbs/pull/2348))
* Skip loading ruby_memcheck ([#2347](https://github.com/ruby/rbs/pull/2347))

## 3.9.0 (2025-03-18)

### Miscellaneous
Expand Down
4 changes: 2 additions & 2 deletions Gemfile
Original file line number Diff line number Diff line change
Expand Up @@ -11,12 +11,12 @@ gem "rspec"
gem "rubocop"
gem "rubocop-rubycw"
gem "rubocop-on-rbs"
gem "json"
gem "json", "~> 2.10.2"
gem "json-schema"
gem "goodcheck"
gem 'digest'
gem 'tempfile'
gem "rdoc"
gem "rdoc", "~> 6.11.0"
gem "fileutils"
gem "raap"
gem "activesupport", "~> 7.0"
Expand Down
72 changes: 39 additions & 33 deletions Gemfile.lock
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
PATH
remote: .
specs:
rbs (3.9.0)
rbs (3.9.5)
logger

PATH
Expand All @@ -27,19 +27,19 @@ GEM
tzinfo (~> 2.0, >= 2.0.5)
addressable (2.8.7)
public_suffix (>= 2.0.2, < 7.0)
ast (2.4.2)
ast (2.4.3)
base64 (0.2.0)
benchmark (0.4.0)
benchmark-ips (2.14.0)
bigdecimal (3.1.9)
concurrent-ruby (1.3.5)
connection_pool (2.5.0)
csv (3.3.2)
connection_pool (2.5.3)
csv (3.3.4)
dbm (1.1.0)
diff-lcs (1.6.0)
diff-lcs (1.6.1)
digest (3.2.0)
drb (2.2.1)
ffi (1.17.1)
ffi (1.17.2)
fileutils (1.7.3)
goodcheck (3.1.0)
marcel (>= 1.0, < 2.0)
Expand All @@ -57,7 +57,7 @@ GEM
listen (3.9.0)
rb-fsevent (~> 0.10, >= 0.10.3)
rb-inotify (~> 0.9, >= 0.9.10)
logger (1.6.6)
logger (1.7.0)
marcel (1.0.4)
memory_profiler (1.1.0)
mini_portile2 (2.8.8)
Expand All @@ -68,27 +68,28 @@ GEM
net-smtp (0.5.1)
net-protocol
nkf (0.2.0)
nokogiri (1.18.4)
nokogiri (1.18.8)
mini_portile2 (~> 2.8.2)
racc (~> 1.4)
ostruct (0.6.1)
parallel (1.26.3)
parser (3.3.7.1)
parallel (1.27.0)
parser (3.3.8.0)
ast (~> 2.4.1)
racc
pathname (0.4.0)
power_assert (2.0.5)
prism (1.4.0)
pstore (0.2.0)
psych (4.0.6)
stringio
public_suffix (6.0.1)
public_suffix (6.0.2)
raap (1.2.0)
rbs (~> 3.0)
timeout (~> 0.4)
racc (1.8.1)
rainbow (3.1.1)
rake (13.2.1)
rake-compiler (1.2.9)
rake-compiler (1.3.0)
rake
rb-fsevent (0.11.2)
rb-inotify (0.11.1)
Expand All @@ -102,29 +103,31 @@ GEM
rspec-mocks (~> 3.13.0)
rspec-core (3.13.3)
rspec-support (~> 3.13.0)
rspec-expectations (3.13.3)
rspec-expectations (3.13.4)
diff-lcs (>= 1.2.0, < 2.0)
rspec-support (~> 3.13.0)
rspec-mocks (3.13.2)
rspec-mocks (3.13.4)
diff-lcs (>= 1.2.0, < 2.0)
rspec-support (~> 3.13.0)
rspec-support (3.13.2)
rubocop (1.74.0)
rspec-support (3.13.3)
rubocop (1.75.5)
json (~> 2.3)
language_server-protocol (~> 3.17.0.2)
lint_roller (~> 1.1.0)
parallel (~> 1.10)
parser (>= 3.3.0.2)
rainbow (>= 2.2.2, < 4.0)
regexp_parser (>= 2.9.3, < 3.0)
rubocop-ast (>= 1.38.0, < 2.0)
rubocop-ast (>= 1.44.0, < 2.0)
ruby-progressbar (~> 1.7)
unicode-display_width (>= 2.4.0, < 4.0)
rubocop-ast (1.38.1)
parser (>= 3.3.1.0)
rubocop-on-rbs (1.4.2)
rubocop-ast (1.44.1)
parser (>= 3.3.7.2)
prism (~> 1.4)
rubocop-on-rbs (1.6.0)
lint_roller (~> 1.1)
rbs (~> 3.5)
rubocop (~> 1.61)
rubocop (>= 1.72.1, < 2.0)
zlib
rubocop-rubycw (0.2.2)
lint_roller (~> 1.1)
Expand All @@ -134,34 +137,37 @@ GEM
nokogiri
securerandom (0.4.1)
stackprof (0.2.27)
steep (1.9.4)
steep (1.10.0)
activesupport (>= 5.1)
concurrent-ruby (>= 1.1.10)
csv (>= 3.0.9)
fileutils (>= 1.1.0)
json (>= 2.1.0)
language_server-protocol (>= 3.15, < 4.0)
language_server-protocol (>= 3.17.0.4, < 4.0)
listen (~> 3.0)
logger (>= 1.3.0)
mutex_m (>= 0.3.0)
parser (>= 3.1)
rainbow (>= 2.2.2, < 4.0)
rbs (~> 3.8)
rbs (~> 3.9)
securerandom (>= 0.1)
strscan (>= 1.0.0)
terminal-table (>= 2, < 4)
terminal-table (>= 2, < 5)
uri (>= 0.12.0)
stringio (3.1.5)
stringio (3.1.7)
strong_json (2.1.2)
strscan (3.1.2)
strscan (3.1.5)
tempfile (0.3.1)
terminal-table (3.0.2)
unicode-display_width (>= 1.1.1, < 3)
test-unit (3.6.7)
terminal-table (4.0.0)
unicode-display_width (>= 1.1.1, < 4)
test-unit (3.6.8)
power_assert
timeout (0.4.3)
tzinfo (2.0.6)
concurrent-ruby (~> 1.0)
unicode-display_width (2.6.0)
unicode-display_width (3.1.4)
unicode-emoji (~> 4.0, >= 4.0.4)
unicode-emoji (4.0.4)
uri (1.0.3)
zlib (3.2.1)

Expand All @@ -179,7 +185,7 @@ DEPENDENCIES
digest
fileutils
goodcheck
json
json (~> 2.10.2)
json-schema
memory_profiler
minitest
Expand All @@ -194,7 +200,7 @@ DEPENDENCIES
rake-compiler
rbs!
rbs-amber!
rdoc
rdoc (~> 6.11.0)
rspec
rubocop
rubocop-on-rbs
Expand Down
10 changes: 7 additions & 3 deletions Rakefile
Original file line number Diff line number Diff line change
Expand Up @@ -22,10 +22,14 @@ end
Rake::TestTask.new(test: :compile, &test_config)

unless Gem.win_platform?
require "ruby_memcheck"
begin
require "ruby_memcheck"

namespace :test do
RubyMemcheck::TestTask.new(valgrind: :compile, &test_config)
namespace :test do
RubyMemcheck::TestTask.new(valgrind: :compile, &test_config)
end
rescue LoadError => exn
STDERR.puts "🚨🚨🚨🚨 Skipping RubyMemcheck: #{exn.inspect} 🚨🚨🚨🚨"
end
end

Expand Down
13 changes: 12 additions & 1 deletion core/string.rbs
Original file line number Diff line number Diff line change
Expand Up @@ -3580,4 +3580,15 @@ interface _ArefFromStringToString
end

%a{deprecated}
type String::encode_fallback = Hash[String, String] | Proc | Method | _ArefFromStringToString
type String::encode_fallback = Hash[String, String] | Proc | Method | String::_ArefFromStringToString

# Don't use this interface directly
#
# This is a copy of `::_ArefFromStringToString` but without deprecated attribute.
# This is a workaround to avoid deprecation warnings in `String::encode_fallback` type.
#
# This type will be deprecated soon once `::_ArefFromStringToString` and `String::encode_fallback` are removed.
#
interface String::_ArefFromStringToString
def []: (String) -> String
end
17 changes: 9 additions & 8 deletions ext/rbs_extension/main.c
Original file line number Diff line number Diff line change
Expand Up @@ -18,14 +18,15 @@ Init_rbs_extension(void)
rbs__init_location();
rbs__init_parser();

// Calculated based on the number of unique strings used with the `INTERN` macro in `parser.c`.
//
// ```bash
// grep -o 'INTERN("\([^"]*\)")' ext/rbs_extension/parser.c \
// | sed 's/INTERN("\(.*\)")/\1/' \
// | sort -u \
// | wc -l
// ```
/* Calculated based on the number of unique strings used with the `INTERN` macro in `parser.c`.
*
* ```bash
* grep -o 'INTERN("\([^"]*\)")' ext/rbs_extension/parser.c \
* | sed 's/INTERN("\(.*\)")/\1/' \
* | sort -u \
* | wc -l
* ```
*/
const size_t num_uniquely_interned_strings = 26;
rbs_constant_pool_init(RBS_GLOBAL_CONSTANT_POOL, num_uniquely_interned_strings);

Expand Down
2 changes: 1 addition & 1 deletion ext/rbs_extension/parserstate.c
Original file line number Diff line number Diff line change
Expand Up @@ -334,7 +334,7 @@ parserstate *alloc_parser(VALUE buffer, lexstate *lexer, int start_pos, int end_
.vars = NULL,
.last_comment = NULL,

.constant_pool = {},
.constant_pool = { 0 },
};

// The parser's constant pool is mainly used for storing the names of type variables, which usually aren't many.
Expand Down
1 change: 1 addition & 0 deletions lib/rbs/collection.rb
Original file line number Diff line number Diff line change
@@ -1,6 +1,7 @@
# frozen_string_literal: true

require 'yaml'
require 'fileutils'

require_relative './cli/colored_io'
require_relative './collection/sources'
Expand Down
2 changes: 1 addition & 1 deletion lib/rbs/version.rb
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
# frozen_string_literal: true

module RBS
VERSION = "3.9.0"
VERSION = "3.9.5"
end
2 changes: 1 addition & 1 deletion src/util/rbs_constant_pool.c
Original file line number Diff line number Diff line change
Expand Up @@ -169,7 +169,7 @@ rbs_constant_pool_resize(rbs_constant_pool_t *pool) {
}

// This storage is initialized by `Init_rbs_extension()` in `main.c`.
static rbs_constant_pool_t RBS_GLOBAL_CONSTANT_POOL_STORAGE = {};
static rbs_constant_pool_t RBS_GLOBAL_CONSTANT_POOL_STORAGE = { 0 };
rbs_constant_pool_t *RBS_GLOBAL_CONSTANT_POOL = &RBS_GLOBAL_CONSTANT_POOL_STORAGE;

/**
Expand Down
Loading