Skip to content

Commit fa1a18a

Browse files
committed
[GR-62552] Upgrade Ruby from 3.3.5 to 3.3.7
PullRequest: truffleruby/4487
2 parents 369466f + 53edfbd commit fa1a18a

File tree

505 files changed

+7520
-3651
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

505 files changed

+7520
-3651
lines changed

.ruby-version

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1 +1 @@
1-
3.3.5
1+
3.3.7

CHANGELOG.md

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,7 @@ Bug fixes:
88

99
Compatibility:
1010

11+
* Updated to Ruby 3.3.7 (@andrykonchin).
1112
* Implement `StringScanner#{peek_byte,scan_byte,scan_integer,named_captures}` methods (#3788, @andrykonchin).
1213
* Support String patterns in `StringScanner#{exist?,scan_until,skip_until,check_until,search_full}` methods (@andrykonchin).
1314
* Implement `ObjectSpace::WeakKeyMap` (#3681, @andrykonchin).

README.md

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -119,7 +119,7 @@ See the [contributor workflow](doc/contributor/workflow.md) document if you wish
119119
We recommend that people trying TruffleRuby on their gems and applications [get in touch with us](#contact) for any help they might need.
120120

121121
TruffleRuby runs Rails and is compatible with many gems, including C extensions.
122-
TruffleRuby is not 100% compatible with MRI 3.2 yet. Please [report](https://github.com/oracle/truffleruby/issues) any compatibility issues you might find.
122+
TruffleRuby is not 100% compatible with MRI 3.3 yet. Please [report](https://github.com/oracle/truffleruby/issues) any compatibility issues you might find.
123123
TruffleRuby [passes around 97% of ruby/spec](https://eregon.me/rubyspec-stats/),
124124
more than any other alternative Ruby implementation.
125125

@@ -193,4 +193,4 @@ For further licensing information, see [LICENCE](LICENCE.md), [3rd_party_license
193193

194194
## Attribution
195195

196-
TruffleRuby includes infrastructure code from [JRuby](https://github.com/jruby/jruby) (e.g. parser, JCodings, Joni), core library code from the [Rubinius](https://github.com/rubinius/rubinius) project, as well as code from the standard implementation of Ruby, [MRI](https://github.com/ruby/ruby).
196+
TruffleRuby includes infrastructure code from [JRuby](https://github.com/jruby/jruby) (e.g. JCodings, Joni), core library code from the [Rubinius](https://github.com/rubinius/rubinius) project, as well as code from the standard implementation of Ruby, [MRI](https://github.com/ruby/ruby).

doc/contributor/updating-ruby.md

Lines changed: 36 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -27,13 +27,43 @@ To update a specific default gem to a newer version than in the MRI release, run
2727
```
2828
cd ruby
2929
git checkout -b truffleruby-updates-$VERSION vn_n_n
30+
cd ..
31+
git clone git@github.com:ruby/<gem>.git
32+
cd <gem>
33+
git checkout v<gem-version>
34+
cd ../ruby
3035
ruby tool/sync_default_gems.rb $GEM
3136
3237
git push -u eregon HEAD
3338
```
3439
to update the default gem in MRI.
3540
Then follow the instructions below to reimport MRI files and to update default gems.
3641

42+
Another way to update a gem to a specific version is to pass a commits range:
43+
44+
```
45+
ruby tool/sync_default_gems.rb <gem-name> <sha1-of-currently-imported-version>..<sha1-of-a-new-version>
46+
```
47+
48+
Run `ruby tool/sync_default_gems.rb --help` to get other ways to run the script.
49+
50+
## Updating a specific bundled gem
51+
52+
Set new version of the bundled gem in `gems/bundled_gems` in a Ruby source code directory.
53+
54+
Build Ruby (currently supported version) with the following commands:
55+
56+
```
57+
./autogen.sh
58+
mkdir ~/.rubies
59+
./configure --prefix="${HOME}/.rubies/ruby-$VERSION-updated-gems" --disable-install-doc
60+
make -j8 install-nodoc
61+
```
62+
63+
Use `~/.rubies/ruby-$VERSION-updated-gems` directory as a source for copying a new bundled gem version.
64+
65+
Follow instructions how to update default and bundled gems.
66+
3767
## Setup
3868

3969
Set the environment variable `$VERSION` to the target version:
@@ -166,8 +196,9 @@ Update all of these:
166196

167197
* Update `.ruby-version`, `TruffleRuby.LANGUAGE_VERSION`
168198
* Reset `truffleruby-abi-version.h` to `$RUBY_VERSION.1` and `lib/cext/ABI_check.txt` to `1` if `RUBY_VERSION` was updated.
199+
* use `$RUBY_VERSION.$GRAALVM_VERSION.1` for releases in `truffleruby-abi-version.h`
169200
* Update `versions.json`
170-
* with bundled gem versions provided by `cat ../ruby/gems/bundled_gems | sort`,
201+
* with bundled gem versions provided by `cat ../ruby/gems/bundled_gems | sort` (ensure the target Ruby version is checked out in the `../ruby` directory),
171202
* default gem versions provided by `ls -l lib/gems/specifications/default`
172203
* and `gem` gem version provided by `grep 'VERSION =' lib/mri/rubygems.rb`
173204
* Also update version numbers for `debug`, `racc`, and `rbs` in `src/main/c/Makefile`, `mx.truffleruby/suite.py` and `lib/gems/gems/debug-*/ext/debug/extconf.rb`.
@@ -176,9 +207,11 @@ Update all of these:
176207
* Copy and paste the TruffleRuby `--help` output to `doc/user/options.md` (e.g., with `jt ruby --help | xsel -b`)
177208
* Update `doc/user/compatibility.md` and `README.md`
178209
* Update `doc/legal/legal.md`, notably the `Bundled gems` section
179-
* Update method lists - see `spec/truffle/methods_spec.rb`
210+
* Update method lists (see `spec/truffle/methods_spec.rb`)
211+
* run `jt -u ruby test spec/truffle/methods_spec.rb` to add new methods
212+
* run `jt purge spec/truffle/methods_spec.rb` to remove tags for implemented methods
180213
* Build TruffleRuby (`jt build`).
181-
* Run `jt test gems default-bundled-gems`
214+
* Run `jt test gems default-bundled-gems` and commit generated `Gemfile` and `Gemfile.lock` files
182215
* Get `jt test spec/truffle/rubygems/default_gems_list_spec.rb` to pass
183216
* Grep for the old Ruby version with `git grep -F x.y.z`
184217
* Grep for the old Bundler version with `git grep -F x.y.z`

doc/legal/bundled_gems

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -9,15 +9,15 @@ minitest 5.20.0 https://github.com/minitest/minitest
99
power_assert 2.0.3 https://github.com/ruby/power_assert
1010
rake 13.1.0 https://github.com/ruby/rake
1111
test-unit 3.6.1 https://github.com/test-unit/test-unit
12-
rexml 3.3.6 https://github.com/ruby/rexml
12+
rexml 3.3.9 https://github.com/ruby/rexml
1313
rss 0.3.1 https://github.com/ruby/rss
1414
net-ftp 0.3.4 https://github.com/ruby/net-ftp
15-
net-imap 0.4.9.1 https://github.com/ruby/net-imap
15+
net-imap 0.4.19 https://github.com/ruby/net-imap
1616
net-pop 0.1.2 https://github.com/ruby/net-pop
1717
net-smtp 0.4.0.1 https://github.com/ruby/net-smtp
1818
matrix 0.4.2 https://github.com/ruby/matrix
1919
prime 0.1.2 https://github.com/ruby/prime
2020
rbs 3.4.0 https://github.com/ruby/rbs
2121
typeprof 0.21.9 https://github.com/ruby/typeprof
22-
debug 1.9.1 https://github.com/ruby/debug
22+
debug 1.9.2 https://github.com/ruby/debug
2323
racc 1.7.3 https://github.com/ruby/racc

doc/legal/legal.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -18,7 +18,7 @@ See `epl-2.0.txt`, `gpl-2.txt`, `lgpl-2.1.txt`.
1818
## MRI
1919

2020
The standard implementation of Ruby is MRI. TruffleRuby contains code from MRI
21-
version 3.3.5, including:
21+
version 3.3.7, including:
2222

2323
* the standard library in `lib/mri`,
2424
* Ruby C extension API in `lib/cext/include` and `src/main/c/cext`,

doc/user/compatibility.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@ permalink: /reference-manual/ruby/Compatibility/
77
# Compatibility
88

99
TruffleRuby aims to be fully compatible with the standard implementation of
10-
Ruby, MRI, version 3.3.5, [including C extensions](#c-extension-compatibility).
10+
Ruby, MRI, version 3.3.7, [including C extensions](#c-extension-compatibility).
1111
TruffleRuby is still in development, so it is not 100% compatible yet.
1212

1313
TruffleRuby can run Rails and is compatible with many gems, including C extensions.

lib/cext/ABI_check.txt

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1 +1 @@
1-
9
1+
1

lib/cext/include/truffleruby/truffleruby-abi-version.h

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -20,6 +20,6 @@
2020
// $RUBY_VERSION must be the same as TruffleRuby.LANGUAGE_VERSION.
2121
// $ABI_NUMBER starts at 1 and is incremented for every ABI-incompatible change.
2222

23-
#define TRUFFLERUBY_ABI_VERSION "3.3.5.11"
23+
#define TRUFFLERUBY_ABI_VERSION "3.3.7.1"
2424

2525
#endif

0 commit comments

Comments
 (0)