[pull] master from ruby:master - #1355
Merged
Merged
Conversation
If the two preceeding instructions are known not to be dependent
on the state of the stack, then we can eliminate the `swap` and inverse
the two previous instructions.
This mostly eliminate instruction in two cases:
```ruby
Object.new
```
```
0000 opt_getconstant_path <ic:0 Object> ( 1)[Li]
0002 putnil
0003 swap
0004 opt_new <calldata!mid:new, argc:0, ARGS_SIMPLE>, 11
```
And:
```ruby
{**@A, b: 2}
```
```
0000 getinstancevariable :@A, <is:0> ( 1)[Li]
0003 putspecialobject 1
0005 swap
0006 putobject :b
0008 putobject 2
0010 opt_send_without_block <calldata!mid:core#hash_merge_ptr, argc:3, ARGS_SIMPLE>
```
Co-Authored-By: John Hawthorn <john@hawthorn.email>
We cannot have YJIT and ZJIT enabled at the same time, so we can use a single jit_payload pointer in iseq_constant_body to reduce the size by 8 bytes.
…ugin root A path stored relative to the plugin root only means anything inside it, so an entry that climbs out of it did not come from a plugin Bundler installed there. Paths recorded as absolute are left alone, which is how `bundle plugin install --path` and older index files record them. An event left with no plugins once its own are gone goes unmerged rather than empty, so it cannot overwrite one the other index file registered. ruby/rubygems@6a310eae12 Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
… the root The save side matched the root as a string prefix, so an absolute path that starts with the root but climbs above it was written back relative, and the filter above then dropped it on the next load. Asking the same question both ways leaves it absolute and loadable. ruby/rubygems@b20b941dd5 Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Merge the unmerged dependency update at the previous merger. ruby/io-console@e712668ca2
…n resolved The parser removed in #9564 turned a `!` entry in the DEPENDENCIES section into a `= <version>` requirement. Bundler's LockfileParser records the pinned source on the dependency and leaves the requirement at `>= 0`, so `gem install -g` could resolve a newer published version over the locked GIT or PATH one. Keeping the version as each section is read pins prereleases too, and lets a PATH section pin to the gemspec on disk the way the old parser did. ruby/rubygems@3fe9b33a55 Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Bundler::Source::Rubygems stores remotes in reverse of the lockfile order, so reading them straight through flipped which remote a spec downloads from when a GEM section lists more than one. ruby/rubygems@da017b968f Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
`defined?(previous_root)` is true even when the assignment never ran, so a failure before the root was saved reset Bundler's root to nil. ruby/rubygems@b2177cd67d Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
…gins A PLUGIN SOURCE section sends Bundler::Plugin.from_lock looking for the plugin that handles it, and finding one loads and runs that plugin's `plugins.rb`. The plugin index is read from the lockfile directory, so a repository could run code just by being installed from with `gem install -g`. Nothing here can use a plugin source anyway. ruby/rubygems@1b9f1e166c Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
`credential_store` was the only Bundler setting that read `off` as disabled, while every other setting goes through `Settings#to_bool`, whose false vocabulary has never had it. The disabled branch now delegates to `#to_bool` so the two cannot drift again. The true list stays because the setting is tri-state and the boolean spellings still have to be told apart from a backend name. ruby/rubygems@0244255e6a Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
The two sides of one setting now disagree on `off`, so the list has to say why it stays wider here. Nothing on the way in turns `off` into a boolean, and nothing on this side shares the single vocabulary that Bundler's boolean settings all run through. ruby/rubygems@d12e41a382 Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
They sit after `private`, which does not apply to constants, so both are public API today. Nothing outside the file reads them, and the setting has not shipped, so this is the last release where making them private costs nothing. ruby/rubygems@18c550a324 Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
…eans Alternation binds looser than the anchors, so `/\Atrue|false\Z/` reads as `(\Atrue)|(false\Z)` and quietly turned every gemrc string starting with `true` or ending with `false` into the boolean false. `:credential_store: truestore` disabled the store while `RUBYGEMS_CREDENTIAL_STORE=truestore` returned the backend name. The neighbouring branches move to `\z` for the same reason, since `\Z` also accepts a trailing newline and let `":foo\n"` become a symbol that still carried it. ruby/rubygems@3cfada30ba Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
The option has been readable from gemrc since it was added, but the RDoc list of valid gemrc options never gained a row for it. ruby/rubygems@3521da48ae
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to subscribe to this conversation on GitHub.
Already have an account?
Sign in.
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
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 : )