Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
33 commits
Select commit Hold shift + click to select a range
095a291
ZJIT: Add codegen test for Fixnum#<< overflow side exit (#18390)
dak2 Aug 25, 2026
c624115
[ruby/rubygems] Bundler::Source::Git: avoid re-fetching the repo
byroot Aug 24, 2026
8ae89d7
[ruby/rubygems] Add Gem::CredentialStore with native OS backends
hsbt Aug 25, 2026
a3661b9
[ruby/rubygems] Keep gem API keys in the credential store when it is on
hsbt Aug 25, 2026
0f7f418
[ruby/rubygems] Clear the credential store on gem signout
hsbt Aug 25, 2026
1a48c7c
[ruby/rubygems] Keep bundler host credentials in the credential store…
hsbt Aug 25, 2026
b449339
[ruby/rubygems] Ship the credential store with the bundler gem
hsbt Aug 25, 2026
3346448
[ruby/rubygems] Document the credential_store setting
hsbt Aug 25, 2026
6c28747
[ruby/rubygems] Delete the unused `Bundler::UI::Shell#quiet?` method
issyl0 Aug 24, 2026
9270124
[ruby/rubygems] Delete `Bundler::ParallelInstaller::SpecInstallation#…
issyl0 Aug 24, 2026
7f00b21
[ruby/net-protocol] v0.3.0
hsbt Aug 25, 2026
b5b032c
Update default gems list at 7f00b21798a9dc156f43ab6fed9505 [ci skip]
matzbot Aug 25, 2026
331568b
[ruby/net-http] Limit read length of a single response line
hsbt Aug 25, 2026
078029f
Fix memory leak in symbol_id_entry_directory
peterzhu2118 Aug 25, 2026
05e1f1f
[ruby/net-http] Limit the number of informational responses per request
hsbt Aug 26, 2026
2c260b8
[ruby/net-http] Make Content-Length handling strict
kou Aug 26, 2026
327fdb9
Guard `Net::HTTPHeader#content_length` spec by version
hsbt Aug 26, 2026
106d74c
[ruby/rubygems] Fix gemspec evaluation under Ruby::Box
hsbt Aug 26, 2026
8ebb653
[ruby/rubygems] Cache a shared git source only once per command
hsbt Aug 26, 2026
dc5b349
[ruby/rubygems] Replace Marshal deep copies with Gem::Util.deep_dup
hsbt Aug 26, 2026
1c4f9f0
[ruby/rubygems] Drop RUBY_BOX from the extension build subprocess
hsbt Aug 26, 2026
37f38a3
[ruby/rubygems] Add a canary for the gem CLI under RUBY_BOX=1
hsbt Aug 26, 2026
e5132b1
[Bug #22264] Warn for duplicate keys after leading keyword splat
nobu Aug 26, 2026
86817cf
[ruby/rubygems] Skip the RUBY_BOX gem CLI canary on Windows
hsbt Aug 26, 2026
4a6678f
Bump taiki-e/install-action
dependabot[bot] Aug 26, 2026
346b261
Update bundled gems list as of 2026-08-26
matzbot Aug 26, 2026
76edf35
Refactor RHash size computations
byroot Aug 26, 2026
114f30e
[ruby/rubygems] Reject https to http redirect downgrades in compact i…
hsbt Aug 26, 2026
b3fd494
[ruby/rubygems] Wrap raw network errors in FetchError in compact inde…
hsbt Aug 26, 2026
ef2ad77
[ruby/rubygems] Cover the compact index success branch
hsbt Aug 26, 2026
1eb1283
[ruby/mmtk] Bump mmtk-core
peterzhu2118 Aug 26, 2026
68abb34
[ruby/openssl] bn: support marshalling
rhenium Aug 19, 2026
0b2edb5
Implement support for AR table backed identity hashes
peterzhu2118 Aug 24, 2026
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
2 changes: 1 addition & 1 deletion .github/workflows/zjit-macos.yml
Original file line number Diff line number Diff line change
Expand Up @@ -98,7 +98,7 @@ jobs:
rustup install ${{ matrix.rust_version }} --profile minimal
rustup default ${{ matrix.rust_version }}

- uses: taiki-e/install-action@ba47c86ac325773530516bb756137ac718732518 # v2.86.5
- uses: taiki-e/install-action@6cd13508893c0e7eab5f273c2575d3859bd7229a # v2.86.6
with:
tool: nextest@0.9
if: ${{ matrix.test_task == 'zjit-check' }}
Expand Down
2 changes: 1 addition & 1 deletion .github/workflows/zjit-ubuntu.yml
Original file line number Diff line number Diff line change
Expand Up @@ -152,7 +152,7 @@ jobs:
ruby-version: '3.1'
bundler: none

- uses: taiki-e/install-action@ba47c86ac325773530516bb756137ac718732518 # v2.86.5
- uses: taiki-e/install-action@6cd13508893c0e7eab5f273c2575d3859bd7229a # v2.86.6
with:
tool: nextest@0.9
if: ${{ matrix.test_task == 'zjit-check' }}
Expand Down
14 changes: 11 additions & 3 deletions NEWS.md
Original file line number Diff line number Diff line change
Expand Up @@ -171,7 +171,7 @@ They are still available on rubygems.org and can be installed with
### The following default gems are updated.

* RubyGems 4.1.0.dev
* 4.0.3 to [v4.0.4][RubyGems-v4.0.4], [v4.0.5][RubyGems-v4.0.5], [v4.0.6][RubyGems-v4.0.6], [v4.0.7][RubyGems-v4.0.7], [v4.0.8][RubyGems-v4.0.8], [v4.0.9][RubyGems-v4.0.9], [v4.0.10][RubyGems-v4.0.10], [v4.0.11][RubyGems-v4.0.11], [v4.0.12][RubyGems-v4.0.12], [v4.0.13][RubyGems-v4.0.13], [v4.0.14][RubyGems-v4.0.14], [v4.0.15][RubyGems-v4.0.15], [v4.0.16][RubyGems-v4.0.16], [v4.0.17][RubyGems-v4.0.17], [v4.0.18][RubyGems-v4.0.18]
* 4.0.3 to [v4.0.4][RubyGems-v4.0.4], [v4.0.5][RubyGems-v4.0.5], [v4.0.6][RubyGems-v4.0.6], [v4.0.7][RubyGems-v4.0.7], [v4.0.8][RubyGems-v4.0.8], [v4.0.9][RubyGems-v4.0.9], [v4.0.10][RubyGems-v4.0.10], [v4.0.11][RubyGems-v4.0.11], [v4.0.12][RubyGems-v4.0.12], [v4.0.13][RubyGems-v4.0.13], [v4.0.14][RubyGems-v4.0.14], [v4.0.15][RubyGems-v4.0.15], [v4.0.16][RubyGems-v4.0.16], [v4.0.17][RubyGems-v4.0.17], [v4.0.18][RubyGems-v4.0.18], [v4.0.19][RubyGems-v4.0.19]
* bundler 4.1.0.dev
* 4.0.3 to [v4.0.4][bundler-v4.0.4], [v4.0.5][bundler-v4.0.5], [v4.0.6][bundler-v4.0.6], [v4.0.7][bundler-v4.0.7], [v4.0.8][bundler-v4.0.8], [v4.0.9][bundler-v4.0.9], [v4.0.10][bundler-v4.0.10], [v4.0.11][bundler-v4.0.11], [v4.0.12][bundler-v4.0.12], [v4.0.13][bundler-v4.0.13], [v4.0.14][bundler-v4.0.14], [v4.0.15][bundler-v4.0.15], [v4.0.16][bundler-v4.0.16], [v4.0.17][bundler-v4.0.17]
* erb 6.0.7
Expand All @@ -183,14 +183,16 @@ They are still available on rubygems.org and can be installed with
* 1.2.8 to [v1.2.9][ipaddr-v1.2.9]
* json 3.0.0.rc1
* 2.18.0 to [v2.18.1][json-v2.18.1], [v2.19.0][json-v2.19.0], [v2.19.1][json-v2.19.1], [v2.19.2][json-v2.19.2], [v2.19.3][json-v2.19.3], [v2.19.4][json-v2.19.4], [v2.19.5][json-v2.19.5], [v2.19.6][json-v2.19.6], [v2.19.7][json-v2.19.7], [v2.19.8][json-v2.19.8], [v2.19.9][json-v2.19.9], [v2.20.0][json-v2.20.0], [v2.21.0][json-v2.21.0], [v2.21.2][json-v2.21.2], [v3.0.0.rc1][json-v3.0.0.rc1]
* net-protocol 0.3.0
* 0.2.2 to [v0.3.0][net-protocol-v0.3.0]
* openssl 4.0.2
* 4.0.0 to [v4.0.1][openssl-v4.0.1], [v4.0.2][openssl-v4.0.2]
* pp 0.6.4
* 0.6.3 to [v0.6.4][pp-v0.6.4]
* prism 1.9.0
* 1.7.0 to [v1.8.0][prism-v1.8.0], [v1.8.1][prism-v1.8.1], [v1.9.0][prism-v1.9.0]
* psych 5.5.0
* 5.3.1 to [v5.4.0][psych-v5.4.0]
* 5.3.1 to [v5.4.0][psych-v5.4.0], [v5.5.0][psych-v5.5.0]
* resolv 0.7.1
* 0.7.0 to [v0.7.1][resolv-v0.7.1]
* stringio 3.2.1.dev
Expand All @@ -205,6 +207,8 @@ They are still available on rubygems.org and can be installed with
### The following bundled gems are updated.

* minitest 6.0.6
* power_assert 3.1.0
* 3.0.1 to [v3.1.0][power_assert-v3.1.0]
* rake 13.4.2
* 13.3.1 to [v13.4.0][rake-v13.4.0], [v13.4.1][rake-v13.4.1], [v13.4.2][rake-v13.4.2]
* test-unit 3.7.8
Expand All @@ -213,7 +217,7 @@ They are still available on rubygems.org and can be installed with
* 0.3.2 to [0.3.3][rss-0.3.3]
* net-imap 0.6.6
* 0.6.2 to [v0.6.3][net-imap-v0.6.3], [v0.6.4][net-imap-v0.6.4], [v0.6.4.1][net-imap-v0.6.4.1], [v0.6.5][net-imap-v0.6.5], [v0.6.6][net-imap-v0.6.6]
* rbs 4.0.3
* rbs 4.2.0
* 3.10.0 to [v3.10.1][rbs-v3.10.1], [v3.10.2][rbs-v3.10.2], [v3.10.3][rbs-v3.10.3], [v3.10.4][rbs-v3.10.4], [v4.0.0.dev.1][rbs-v4.0.0.dev.1], [v4.0.0.dev.2][rbs-v4.0.0.dev.2], [v4.0.0.dev.3][rbs-v4.0.0.dev.3], [v4.0.0.dev.4][rbs-v4.0.0.dev.4], [v4.0.0.dev.5][rbs-v4.0.0.dev.5], [v4.0.0][rbs-v4.0.0], [v4.0.1.dev.1][rbs-v4.0.1.dev.1], [v4.0.1.dev.2][rbs-v4.0.1.dev.2], [v4.0.1][rbs-v4.0.1], [v4.0.2][rbs-v4.0.2], [v4.0.3][rbs-v4.0.3]
* typeprof 0.32.0
* mutex_m 0.3.0
Expand Down Expand Up @@ -384,6 +388,7 @@ A lot of work has gone into making Ractors more stable, performant, and usable.
[RubyGems-v4.0.16]: https://github.com/rubygems/rubygems/releases/tag/v4.0.16
[RubyGems-v4.0.17]: https://github.com/rubygems/rubygems/releases/tag/v4.0.17
[RubyGems-v4.0.18]: https://github.com/rubygems/rubygems/releases/tag/v4.0.18
[RubyGems-v4.0.19]: https://github.com/rubygems/rubygems/releases/tag/v4.0.19
[bundler-v4.0.4]: https://github.com/rubygems/rubygems/releases/tag/bundler-v4.0.4
[bundler-v4.0.5]: https://github.com/rubygems/rubygems/releases/tag/bundler-v4.0.5
[bundler-v4.0.6]: https://github.com/rubygems/rubygems/releases/tag/bundler-v4.0.6
Expand Down Expand Up @@ -424,18 +429,21 @@ A lot of work has gone into making Ractors more stable, performant, and usable.
[json-v2.21.0]: https://github.com/ruby/json/releases/tag/v2.21.0
[json-v2.21.2]: https://github.com/ruby/json/releases/tag/v2.21.2
[json-v3.0.0.rc1]: https://github.com/ruby/json/releases/tag/v3.0.0.rc1
[net-protocol-v0.3.0]: https://github.com/ruby/net-protocol/releases/tag/v0.3.0
[openssl-v4.0.1]: https://github.com/ruby/openssl/releases/tag/v4.0.1
[openssl-v4.0.2]: https://github.com/ruby/openssl/releases/tag/v4.0.2
[pp-v0.6.4]: https://github.com/ruby/pp/releases/tag/v0.6.4
[prism-v1.8.0]: https://github.com/ruby/prism/releases/tag/v1.8.0
[prism-v1.8.1]: https://github.com/ruby/prism/releases/tag/v1.8.1
[prism-v1.9.0]: https://github.com/ruby/prism/releases/tag/v1.9.0
[psych-v5.4.0]: https://github.com/ruby/psych/releases/tag/v5.4.0
[psych-v5.5.0]: https://github.com/ruby/psych/releases/tag/v5.5.0
[resolv-v0.7.1]: https://github.com/ruby/resolv/releases/tag/v0.7.1
[strscan-v3.1.7]: https://github.com/ruby/strscan/releases/tag/v3.1.7
[strscan-v3.1.8]: https://github.com/ruby/strscan/releases/tag/v3.1.8
[timeout-v0.6.1]: https://github.com/ruby/timeout/releases/tag/v0.6.1
[zlib-v3.2.3]: https://github.com/ruby/zlib/releases/tag/v3.2.3
[power_assert-v3.1.0]: https://github.com/ruby/power_assert/releases/tag/v3.1.0
[rake-v13.4.0]: https://github.com/ruby/rake/releases/tag/v13.4.0
[rake-v13.4.1]: https://github.com/ruby/rake/releases/tag/v13.4.1
[rake-v13.4.2]: https://github.com/ruby/rake/releases/tag/v13.4.2
Expand Down
8 changes: 8 additions & 0 deletions ext/openssl/lib/openssl/bn.rb
Original file line number Diff line number Diff line change
Expand Up @@ -23,6 +23,14 @@ def pretty_print(q)
q.text to_i.to_s
}
end

def marshal_dump # :nodoc:
to_i
end

def marshal_load(integer) # :nodoc:
initialize(integer)
end
end # BN
end # OpenSSL

Expand Down
16 changes: 7 additions & 9 deletions gc.c
Original file line number Diff line number Diff line change
Expand Up @@ -3699,17 +3699,15 @@ rb_gc_obj_optimal_size(VALUE obj)

case T_HASH:
{
const size_t st_size = sizeof(struct RHash) + sizeof(st_table);
if (RHASH_ST_TABLE_P(obj)) {
return st_size;
}

const size_t ar_size = sizeof(struct RHash) + offsetof(ar_table, pairs) + RHASH_AR_TABLE_BOUND(obj) * sizeof(ar_table_pair);
if (OBJ_FROZEN(obj) || ar_size > st_size) {
return ar_size;
if (RHASH_AR_TABLE_P(obj)) {
const unsigned bound = RHASH_AR_TABLE_BOUND(obj);
const size_t ar_size = RHASH_AR_SLOT_SIZE(bound);
if (ar_size > RHASH_ST_SLOT_SIZE || OBJ_FROZEN(obj)) {
return ar_size;
}
}

return st_size;
return RHASH_ST_SLOT_SIZE;
}

default:
Expand Down
8 changes: 4 additions & 4 deletions gc/mmtk/Cargo.lock

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

2 changes: 1 addition & 1 deletion gc/mmtk/Cargo.toml
Original file line number Diff line number Diff line change
Expand Up @@ -25,7 +25,7 @@ features = ["vo_bit", "object_pinning", "sticky_immix_non_moving_nursery"]

# Uncomment the following lines to use mmtk-core from the official repository.
git = "https://github.com/mmtk/mmtk-core.git"
rev = "8f806d56469c1c706fd1f88b757c33620bae85ba"
rev = "0fc014f8d05db7fcb6f49ebe20ddd43a3fe2abdf"

# Uncomment the following line to use mmtk-core from a local repository.
# path = "../../../mmtk-core"
Expand Down
10 changes: 10 additions & 0 deletions gc/mmtk/src/object_model.rs
Original file line number Diff line number Diff line change
Expand Up @@ -19,6 +19,8 @@ impl VMObjectModel {
}

impl ObjectModel<Ruby> for VMObjectModel {
const GLOBAL_FIELD_UNLOG_BIT_SPEC: VMGlobalFieldUnlogBitSpec =
VMGlobalFieldUnlogBitSpec::side_first();
const GLOBAL_LOG_BIT_SPEC: VMGlobalLogBitSpec = VMGlobalLogBitSpec::side_first();

// We overwrite the prepended word which were used to hold object sizes.
Expand Down Expand Up @@ -78,6 +80,14 @@ impl ObjectModel<Ruby> for VMObjectModel {
to_obj
}

fn try_copy(
from: ObjectReference,
semantics: CopySemantics,
copy_context: &mut GCWorkerCopyContext<Ruby>,
) -> Option<ObjectReference> {
Some(Self::copy(from, semantics, copy_context))
}

fn copy_to(_from: ObjectReference, _to: ObjectReference, _region: Address) -> Address {
unimplemented!(
"This function cannot be called because we do not support MarkCompact for Ruby."
Expand Down
4 changes: 2 additions & 2 deletions gc/mmtk/src/scanning.rs
Original file line number Diff line number Diff line change
Expand Up @@ -25,10 +25,10 @@ impl Scanning<Ruby> for VMScanning {
false
}

fn scan_object<EV: SlotVisitor<RubySlot>>(
fn scan_object(
_tls: VMWorkerThread,
_object: ObjectReference,
_slot_visitor: &mut EV,
_slot_visitor: &mut impl SlotVisitor<RubySlot>,
) {
unreachable!("We have not enabled slot enqueuing for any types, yet.");
}
Expand Down
2 changes: 1 addition & 1 deletion gems/bundled_gems
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,7 @@
# if `revision` is not given, "v"+`version` or `version` will be used.

minitest 6.0.6 https://github.com/minitest/minitest
power_assert 3.0.1 https://github.com/ruby/power_assert
power_assert 3.1.0 https://github.com/ruby/power_assert
rake 13.4.2 https://github.com/ruby/rake
test-unit 3.7.8 https://github.com/test-unit/test-unit
rexml 3.4.4 https://github.com/ruby/rexml
Expand Down
Loading