Граф коммитов

1668 Коммитов

Автор SHA1 Сообщение Дата
Benoit Daloze e0c5488ff9 Update to ruby/spec@902ab83 2022-01-28 14:42:38 +01:00
Benoit Daloze bb5f710887 Update to ruby/mspec@49adc2f 2022-01-28 14:42:36 +01:00
David Rodríguez c925d3b668 [rubygems/rubygems] Fix `force_ruby_platform` ignored when lockfile includes the current specific platform
https://github.com/rubygems/rubygems/commit/9ca371adf8
2022-01-26 13:09:31 +09:00
Ngan Pham 42ef3fcaef [rubygems/rubygems] Use Gem::Platform.local instead of RUBY_PLATFORM
In certain places, we want to display the platform name with
`Gem::Platform.local` instead of `RUBY_PLATFORM`.

Fixes https://github.com/rubygems/rubygems/issues/5264

https://github.com/rubygems/rubygems/commit/bdd1848ae8
2022-01-26 02:24:30 +09:00
David Rodríguez 342e7a094a [rubygems/rubygems] Fix spec to not touch the network
And not depend on the state of rack's master branch, in particular, on
their Ruby support range.

https://github.com/rubygems/rubygems/commit/9ea4baffac
2022-01-25 22:12:33 +09:00
David Rodríguez cd806e19b7 [rubygems/rubygems] Remove unnecessary comment
https://github.com/rubygems/rubygems/commit/ef4e5c6169
2022-01-25 22:12:33 +09:00
Kazuhiro NISHIYAMA bb955096d8
Fix a typo [ci skip] 2022-01-23 21:56:39 +09:00
Yusuke Nakamura 7353f950c3 [rubygems/rubygems] Change generated namespaced test class name in minitest
* `foo` => `TestFoo`
* `foo_bar` => `TestFooBar`
* `foo-bar` => `Foo::TestBar`

https://github.com/rubygems/rubygems/commit/353cdd61c3
2022-01-20 01:04:53 +09:00
Yusuke Nakamura 26e0450ba9 [rubygems/rubygems] Add spec to class name definition in newgem spec
https://github.com/rubygems/rubygems/commit/5f698fc4a0
2022-01-20 01:04:53 +09:00
Yusuke Nakamura 4451313252 [rubygems/rubygems] Update generated minitest file style
foo     => test/test_foo.rb
foo-bar => test/foo/test_bar.rb
foo_bar => test/test_foo_bar.rb

https://github.com/rubygems/rubygems/commit/c795e5d40d
2022-01-20 01:04:52 +09:00
Yusuke Nakamura 4e955b2e37 [rubygems/rubygems] Create minitest file to underscored path in "bundle gem" command
...with dashed gem name

In "bundle gem" command with dashed name gem (e.g. foo-bar) generates
`test/test_foo/bar.rb`, but this file contains undefined class `TestFoo`
and moreover, does not include in "bundle exec rake test" target.

Therefore, intentially the first test after gem created is fail, but in
case of gem name contains dash character is not.

The change doings...
(when "bundle gem foo-bar" called)

* create `test/test_foo_bar.rb`
* define `TestFooBar` class in `test/test_foo_bar.rb`

https://github.com/rubygems/rubygems/commit/5d9a69fc0f
2022-01-20 01:04:52 +09:00
Hiroshi SHIBATA d22511fd75 Merge rubygems/rubygems HEAD.
Picked at 12aeef6ba9a3be0022be9934c1a3e4c46a03ed3a
2022-01-19 15:01:44 +09:00
David Rodríguez e7249294fb
[rubygems/rubygems] Fix regression with old marshaled specs having null required_rubygems_version
https://github.com/rubygems/rubygems/commit/91f07a0208
2022-01-19 11:20:36 +09:00
David Rodríguez 39c36a5cf4
[rubygems/rubygems] Fix skipped spec on Windows
https://github.com/rubygems/rubygems/commit/bf0f4b98ee
2022-01-19 11:20:36 +09:00
Kazuhiro NISHIYAMA 2dc365db79
Fix spec failures on ruby 3.1
Because Module#const_added is ruby 3.2 feature
2022-01-15 13:30:20 +09:00
Jeremy Evans a93cc3e23b Make Hash#shift return nil for empty hash
Fixes [Bug #16908]
2022-01-14 12:17:57 -08:00
Jeremy Evans ca3d405242 Fix constant assignment evaluation order
Previously, the right hand side was always evaluated before the
left hand side for constant assignments.  For the following:

```ruby
lhs::C = rhs
```

rhs was evaluated before lhs, which is inconsistant with attribute
assignment (lhs.m = rhs), and apparently also does not conform to
JIS 3017:2013 11.4.2.2.3.

Fix this by changing evaluation order.  Previously, the above
compiled to:

```
0000 putself                                                          (   1)[Li]
0001 opt_send_without_block                 <calldata!mid:rhs, argc:0, FCALL|VCALL|ARGS_SIMPLE>
0003 dup
0004 putself
0005 opt_send_without_block                 <calldata!mid:lhs, argc:0, FCALL|VCALL|ARGS_SIMPLE>
0007 setconstant                            :C
0009 leave
```

After this change:

```
0000 putself                                                          (   1)[Li]
0001 opt_send_without_block                 <calldata!mid:lhs, argc:0, FCALL|VCALL|ARGS_SIMPLE>
0003 putself
0004 opt_send_without_block                 <calldata!mid:rhs, argc:0, FCALL|VCALL|ARGS_SIMPLE>
0006 swap
0007 topn                                   1
0009 swap
0010 setconstant                            :C
0012 leave
```

Note that if expr is not a module/class, then a TypeError is not
raised until after the evaluation of rhs.  This is because that
error is raised by setconstant.  If we wanted to raise TypeError
before evaluation of rhs, we would have to add a VM instruction
for calling vm_check_if_namespace.

Changing assignment order for single assignments caused problems
in the multiple assignment code, revealing that the issue also
affected multiple assignment.  Fix the multiple assignment code
so left-to-right evaluation also works for constant assignments.

Do some refactoring of the multiple assignment code to reduce
duplication after adding support for constants. Rename struct
masgn_attrasgn to masgn_lhs_node, since it now handles both
constants and attributes. Add add_masgn_lhs_node static function
for adding data for lhs attribute and constant setting.

Fixes [Bug #15928]
2022-01-14 11:00:26 -08:00
Jean Boussier 8d05047d72 Add a Module#const_added callback
[Feature #17881]

Works similarly to `method_added` but for constants.

```ruby
Foo::BAR = 42 # call Foo.const_added(:FOO)
class Foo::Baz; end # call Foo.const_added(:Baz)
Foo.autoload(:Something, "path") # call Foo.const_added(:Something)
```
2022-01-14 11:30:07 +01:00
Vyacheslav Alexeev d0a0637948 [rubygems/rubygems] Use `Fiddle` in `bundle doctor` to check for dynamic library presence
https://github.com/rubygems/rubygems/commit/ecd495ce1b
2022-01-13 18:16:05 +09:00
Benoit Daloze 4053e8ba0d Update to ruby/spec@226cfdc 2022-01-10 16:29:54 +01:00
Benoit Daloze 8abfc10605 Update to ruby/mspec@3ea3d32 2022-01-10 16:29:53 +01:00
Kazuhiro NISHIYAMA 5e7cd480f9
Fix spec failure on ruby 3.1
Because https://github.com/ruby/ruby/pull/5148 merged after Ruby 3.1.0 released.

13241b71a5 did not fix proc spec yet.

https://github.com/ruby/actions/runs/4718820699?check_suite_focus=true#step:18:173
```
  1)
  Proc#parameters adds * rest arg for "star" argument FAILED
  Expected [[:req, :x], [:rest]] == [[:req, :x], [:rest, :*]]
  to be truthy but was false
  /home/runner/work/actions/actions/snapshot-ruby_3_1/spec/ruby/core/proc/parameters_spec.rb:85:in `block (3 levels) in <top (required)>'
  /home/runner/work/actions/actions/snapshot-ruby_3_1/spec/ruby/core/proc/parameters_spec.rb:3:in `<top (required)>'
```
2022-01-06 10:14:11 +09:00
Jeremy Evans 791343b5bb Remove Refinement#{extend_object,append_features,prepend_features}
Also make include, prepend, and extend raise a TypeError if one
of the modules is a refinement.

Implements [Feature #18270]
2022-01-05 10:59:03 -08:00
Kazuhiro NISHIYAMA 13241b71a5
Fix failures on ruby 3.1
Because https://github.com/ruby/ruby/pull/5148 merged after Ruby 3.1.0 released.

https://github.com/ruby/actions/runs/4705986643?check_suite_focus=true#step:18:144
```
  1)
  Method#parameters adds * rest arg for "star" argument FAILED
  Expected [[:rest]] == [[:rest, :*]]
  to be truthy but was false
  /home/runner/work/actions/actions/snapshot-ruby_3_1/spec/ruby/core/method/parameters_spec.rb:228:in `block (3 levels) in <top (required)>'
  /home/runner/work/actions/actions/snapshot-ruby_3_1/spec/ruby/core/method/parameters_spec.rb:4:in `<top (required)>'

  2)
  Proc#parameters adds * rest arg for "star" argument FAILED
  Expected [[:req, :x], [:rest]] == [[:req, :x], [:rest, :*]]
  to be truthy but was false
  /home/runner/work/actions/actions/snapshot-ruby_3_1/spec/ruby/core/proc/parameters_spec.rb:85:in `block (3 levels) in <top (required)>'
  /home/runner/work/actions/actions/snapshot-ruby_3_1/spec/ruby/core/proc/parameters_spec.rb:3:in `<top (required)>'
```
2022-01-05 08:18:47 +09:00
Nobuyoshi Nakada 5074aa1984 [rubygems/rubygems] Test the actual checksums of the mock gems
https://github.com/rubygems/rubygems/commit/2b42630959
2022-01-04 14:59:18 +09:00
Nobuyoshi Nakada 0bfb406b75 [rubygems/rubygems] Fix the test to use the mock gem path
"NUL.*" means the NUL device on Windows, as well as mere "NUL",
and no data is read.

https://github.com/rubygems/rubygems/commit/e2c7d22745
2022-01-04 14:59:17 +09:00
Nobuyoshi Nakada 8f9623741a [rubygems/rubygems] Append a newline to the checksum file
https://github.com/rubygems/rubygems/commit/48ea2778e9
2022-01-04 14:59:17 +09:00
Nobuyoshi Nakada c2e8e1f6a4 [rubygems/rubygems] Fix checksum
Calculate the checksum of the content, not the given pathname at
the build time itself.

https://github.com/rubygems/rubygems/commit/b60ee97ee9
2022-01-04 14:59:16 +09:00
卜部昌平 980bf94f02
Kernel#=~: delete
Has been deprecated since ebff9dc10e.
2022-01-03 22:33:38 +09:00
Nobuyoshi Nakada fae0b66431 Remove deprecated Random::DEFAULT [Feature #17351] 2022-01-01 18:55:52 +09:00
Nobuyoshi Nakada 84891bffe8 Remove unnecessary Random::DEFAULT expectations
The respond_to expectation just suffice as duck-typing.
2022-01-01 18:55:52 +09:00
Jeremy Evans f53dfab95c Add support for anonymous rest and keyword rest argument forwarding
This allows for the following syntax:

```ruby
def foo(*)
  bar(*)
end
def baz(**)
  quux(**)
end
```

This is a natural addition after the introduction of anonymous
block forwarding.  Anonymous rest and keyword rest arguments were
already supported in method parameters, this just allows them to
be used as arguments to other methods.  The same advantages of
anonymous block forwarding apply to rest and keyword rest argument
forwarding.

This has some minor changes to #parameters output.  Now, instead
of `[:rest], [:keyrest]`, you get `[:rest, :*], [:keyrest, :**]`.
These were already used for `...` forwarding, so I think it makes
it more consistent to include them in other cases.  If we want to
use `[:rest], [:keyrest]` in both cases, that is also possible.

I don't think the previous behavior of `[:rest], [:keyrest]` in
the non-... case and `[:rest, :*], [:keyrest, :**]` in the ...
case makes sense, but if we did want that behavior, we'll have to
make more substantial changes, such as using a different ID in the
... forwarding case.

Implements [Feature #18351]
2021-12-30 14:37:42 -08:00
David Rodríguez 1954a95f8b [rubygems/rubygems] Better way to join path components
The current way works, but error messages show duplicate "/" in paths,
which is weird.

https://github.com/rubygems/rubygems/commit/9123deb4fa
2021-12-30 07:02:30 +09:00
Nobuyoshi Nakada 0a47896d20 s/an Bignum/a Bignum/ [ci skip] 2021-12-28 18:35:03 +09:00
Nobuyoshi Nakada 40e7aefeba Remove obsolete Fixnum and Bignum 2021-12-28 18:35:03 +09:00
Takashi Kokubun 3cd1731920
Skip testing --enable-all in MinGW for now
If we don't intend to support this platform, we should probably enable
MJIT for MinGW. However, since the code for https://bugs.ruby-lang.org/issues/18439
is in place, I'm adjusting the test for it in the meantime.

following up https://github.com/ruby/ruby/pull/5363
2021-12-27 22:30:34 -08:00
David Rodríguez 95d2e06c2b [rubygems/rubygems] Fix `bundle update --bundler` no longer updating lockfile
https://github.com/rubygems/rubygems/commit/a053b7e4d4
2021-12-28 04:38:31 +09:00
David Rodríguez ebb4044dec [rubygems/rubygems] Run `bundle install` in verbose mode
To see if we get more information when this fails.

https://github.com/rubygems/rubygems/commit/853d33fdc3
2021-12-27 21:32:32 +09:00
Hiroshi SHIBATA d6311cb1ca Track RubyGems 3.4.0dev and Bundler 2.4.0dev 2021-12-27 10:45:36 +09:00
David Rodríguez b7e5ce08ff [rubygems/rubygems] Don't add verbose flag so opaquely for realworld specs
https://github.com/rubygems/rubygems/commit/fa8455ef7c
2021-12-27 10:45:36 +09:00
David Rodríguez fb0737654c [rubygems/rubygems] Move setup to the spec that uses it
https://github.com/rubygems/rubygems/commit/7cf0a8fa8e
2021-12-27 10:45:36 +09:00
David Rodríguez 810c1b88ca [rubygems/rubygems] Remove unused include
https://github.com/rubygems/rubygems/commit/a581a1dd50
2021-12-27 10:45:36 +09:00
David Rodríguez 03903f23c2 [rubygems/rubygems] Remove the rest of the `RUBY_VERSION` monkeypatching
Since we're at it. This generates a bunch of warnings and seems like a
brittle way to test things, so let's get rid of it.

https://github.com/rubygems/rubygems/commit/f5d45520e0
2021-12-27 10:45:36 +09:00
David Rodríguez ca3a2e46e8 [rubygems/rubygems] Update some specs to pass ruby-head CI
These specs were monkeypatching `RUBY_VERSION`, but that obviously
doesn't change the running ruby to behave any different.

The removal of some features, in particular, `String#untaint`, made
these specs fail, because untaint is no longer available under ruby-core
and bundler calls `untaint` when `RUBY_VERSION` is less than "2.7",
which these specs were overwriting it to be.

Rewrite these specs to not overwrite `RUBY_VERSION`, but still test the
same things.

https://github.com/rubygems/rubygems/commit/e8c7b92901
2021-12-27 10:45:36 +09:00
Nobuyoshi Nakada abad017354
Postpone fix of lookbehind with ss characters tentatively 2021-12-26 23:28:54 +09:00
Nobuyoshi Nakada 69f03c864e
Remove Refinement#include and Refinement#prepend 2021-12-26 23:28:54 +09:00
Nobuyoshi Nakada 39bc5de833
Remove tainted and trusted features
Already these had been announced to be removed in 3.2.
2021-12-26 23:28:54 +09:00
Hiroshi SHIBATA da6a5e3ed1 Merge RubyGems-3.3.3 and Bundler-2.3.3 2021-12-25 07:40:52 +09:00
Hiroshi SHIBATA b0ad6cb371 Merge RubyGems-3.3.2 and Bundler-2.3.2 2021-12-24 10:35:31 +09:00
Hiroshi SHIBATA fb1ab27f53 Merge RubyGems-3.3.1 and Bundler-2.3.1 2021-12-23 09:44:45 +09:00