Skip to content

[pull] master from ruby:master - #1283

Merged
pull[bot] merged 9 commits into
turkdevops:masterfrom
ruby:master
Aug 6, 2026
Merged

[pull] master from ruby:master#1283
pull[bot] merged 9 commits into
turkdevops:masterfrom
ruby:master

Conversation

@pull

@pull pull Bot commented Aug 6, 2026

Copy link
Copy Markdown

See Commits and Changes for more details.


Created by pull[bot] (v2.0.0-alpha.4)

Can you help keep this open source service alive? 💖 Please sponsor : )

tompng and others added 9 commits August 6, 2026 05:26
…s/pem_utilities.rb

This commit refactors testing key/cert constants in a more consistent way.

The key/cert constants were duplicated across the files, and there was a
different constant naming `*_PATH` vs `*_FILE`.

Create test/rubygems/pem_utilities.rb moving .pem methods/constants from
test/rubygems/helper.rb to manage testing key/cert constants in one file.
test/rubygems/local_ssl_server_utilities.rb, used by both RubyGems and
Bundler, also uses these constants, so the new pem_utilities.rb must not
depend on test-unit.

In test/rubygems/pem_utilities.rb, added the following features compared to
test/rubygems/helper.rb.

* Add pem_file method for combined cert+key PEM files
* Rename helper methods from key_path to key_file, from cert_path to
  cert_file, to consistently use the `*_FILE` suffix for constants.
* Align test/rubygems/*.pem file names and constants with the pattern
  `<algorithm>_<name>`. If the `<algorithm>` is RSA 2048 bits, there is no
  `<algorithm>_` prefix as a default algorithm.
* Rename `EXPIRED_PUBLIC_CERT` to `EXPIRED_CERT`. CERT is only public. There is
  no private cert file.
* Update local_ssl_server_utilities.rb to use constants directly,
  removing unused methods.
* Handle OpenSSL::PKey::PKeyError in load_key for unsupported
  algorithms on old OpenSSL versions

Assisted-by: Claude:claude-opus-4-6[1m]

ruby/rubygems@35d72d71e2
Previously we put a `nop` at the beginning of a block because any two
`PadPatchPoint` checked for minimum distance. The `PadPatchPoint` inserted
at block boundary isn't itself a patch point position, so when we had:

    PadPatchPoint
    // Enough space
    PadPatchPoint // block boundary
    // Not enough space
    PadPatchPoint

We got an unnecessary nop.

Add a new `BoundaryPad` instruction that only pads for `PadPatchPoint`
preceding it.

Note that not all padding for patchpoints are gone, as we still pad for
when two patchpoints are too close to each other. We'd need to tweak
bookkeeping in invariants.rs to support two patchpoints having the same
code address.
I think there was a bug there because it checked for block id while
iterating with reverse-post order. No need to check when we can do it
unconditionally outside the loop. (Do we ever try to compile an empty
assembler?)
Two reasons for this: 1. It's less weird for a pad to be zero width than
for an imperative to pad to not actually pad. 2. PatchPoint is a noun so
its related padding reads better when can only be interpreted as a noun.
This reverts commit 895084e.
IRB failures are fixed by 6612731.
Allow SendDirect to handle explicit caller keywords passed to callees
with no keyword parameter table by materializing the keywords as one
positional Hash.

Keep VM dispatch for keyword splat, **nil, and ruby2_keywords cases
because they need keyword-sensitive setup beyond constructing a plain
Hash.
@pull pull Bot locked and limited conversation to collaborators Aug 6, 2026
@pull pull Bot added the ⤵️ pull label Aug 6, 2026
@pull
pull Bot merged commit 8052f24 into turkdevops:master Aug 6, 2026
1 check failed
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

5 participants