Nobuyoshi Nakada
d025ff29c4
Clone bundled gem sources only if GIT is available
2023-02-22 10:23:06 +09:00
Nobuyoshi Nakada
ac5a949c2a
Refine exception messages when git failed
2023-02-22 10:23:05 +09:00
Hiroshi SHIBATA
015bf5c461
Removed accidentally commits with ruby/readline-ext
...
Partly reverted 1ddda4c0d7
2023-02-22 10:20:20 +09:00
Hiroshi SHIBATA
fc59b58715
[ruby/readline-ext] test_readline.rb only needs EnvUtil
...
https://github.com/ruby/readline-ext/commit/9245965ecd
2023-02-22 01:18:26 +00:00
Hiroshi SHIBATA
088919065e
[ruby/readline-ext] Omit some tests with macOS platform
...
https://github.com/ruby/readline-ext/commit/efe2be6e4c
2023-02-22 01:18:25 +00:00
Hiroshi SHIBATA
1ddda4c0d7
[ruby/readline-ext] Import EnvUtils and related test libraries
...
https://github.com/ruby/readline-ext/commit/f034697a48
2023-02-22 01:18:25 +00:00
eileencodes
ae9e1aee59
Call rb_ivar_set instead of exiting for many ivars
...
Previously, when we have a lot of ivars defined, we would exit via
`jit_chain_guard` for megamorphic ivars. Now if we have more than the
max depth of ivars we can call `rb_ivar_set` instead of exiting.
Using the following script:
```ruby
class A
def initialize
@a = 1
end
def a
@a
end
end
N = 30
N.times do |i|
eval <<-eorb
class A#{i} < A
def initialize
@a#{i} = 1
super
end
end
eorb
end
klasses = N.times.map { Object.const_get(:"A#{_1}") }
1000.times do
klasses.each do |k|
k.new.a
end
end
```
Exits before this change show exits for `setinstancevariable`:
```
***YJIT: Printing YJIT statistics on exit***
method call exit reasons:
klass_megamorphic: 24,975 (100.0%)
invokeblock exit reasons:
(all relevant counters are zero)
invokesuper exit reasons:
(all relevant counters are zero)
leave exit reasons:
interp_return: 26,948 (100.0%)
se_interrupt: 1 ( 0.0%)
getblockparamproxy exit reasons:
(all relevant counters are zero)
getinstancevariable exit reasons:
megamorphic: 13,986 (100.0%)
setinstancevariable exit reasons:
megamorphic: 19,980 (100.0%)
opt_aref exit reasons:
(all relevant counters are zero)
expandarray exit reasons:
(all relevant counters are zero)
opt_getinlinecache exit reasons:
(all relevant counters are zero)
invalidation reasons:
(all relevant counters are zero)
num_send: 155,823
num_send_known_class: 0 ( 0.0%)
num_send_polymorphic: 119,880 (76.9%)
bindings_allocations: 0
bindings_set: 0
compiled_iseq_count: 36
compiled_block_count: 158
compiled_branch_count: 240
block_next_count: 10
defer_count: 70
freed_iseq_count: 0
invalidation_count: 0
constant_state_bumps: 0
inline_code_size: 29,216
outlined_code_size: 27,948
freed_code_size: 0
code_region_size: 65,536
live_context_size: 8,322
live_context_count: 219
live_page_count: 4
freed_page_count: 0
code_gc_count: 0
num_gc_obj_refs: 130
object_shape_count: 295
side_exit_count: 58,942
total_exit_count: 85,890
yjit_insns_count: 1,023,581
avg_len_in_yjit: 11.2
Top-4 most frequent exit ops (100.0% of exits):
opt_send_without_block: 24,975 (42.4%)
setinstancevariable: 19,980 (33.9%)
getinstancevariable: 13,986 (23.7%)
leave: 1 ( 0.0%)
```
Exits after this change show we have no exits for `setinstancevariable`.
```
***YJIT: Printing YJIT statistics on exit***
method call exit reasons:
klass_megamorphic: 24,975 (100.0%)
invokeblock exit reasons:
(all relevant counters are zero)
invokesuper exit reasons:
(all relevant counters are zero)
leave exit reasons:
interp_return: 60,912 (100.0%)
se_interrupt: 3 ( 0.0%)
getblockparamproxy exit reasons:
(all relevant counters are zero)
getinstancevariable exit reasons:
(all relevant counters are zero)
setinstancevariable exit reasons:
(all relevant counters are zero)
opt_aref exit reasons:
(all relevant counters are zero)
expandarray exit reasons:
(all relevant counters are zero)
opt_getinlinecache exit reasons:
(all relevant counters are zero)
invalidation reasons:
(all relevant counters are zero)
num_send: 155,823
num_send_known_class: 0 ( 0.0%)
num_send_polymorphic: 119,880 (76.9%)
bindings_allocations: 0
bindings_set: 0
compiled_iseq_count: 36
compiled_block_count: 179
compiled_branch_count: 240
block_next_count: 11
defer_count: 70
freed_iseq_count: 0
invalidation_count: 0
constant_state_bumps: 0
inline_code_size: 31,032
outlined_code_size: 29,708
freed_code_size: 0
code_region_size: 65,536
live_context_size: 8,360
live_context_count: 220
live_page_count: 4
freed_page_count: 0
code_gc_count: 0
num_gc_obj_refs: 130
object_shape_count: 295
side_exit_count: 24,978
total_exit_count: 85,890
yjit_insns_count: 1,076,966
avg_len_in_yjit: 12.2
Top-2 most frequent exit ops (100.0% of exits):
opt_send_without_block: 24,975 (100.0%)
leave: 3 ( 0.0%)
```
Co-authored-by: Aaron Patterson <tenderlove@ruby-lang.org>
2023-02-21 13:59:54 -08:00
Alan Wu
9f8056a7dd
YJIT: Fastpath for Module#=== ( #7351 )
...
Co-authored-by: Maxime Chevalier-Boisvert <maxime.chevalierboisvert@shopify.com>
Co-authored-by: Jimmy Miller <jimmy.miller@shopify.com>
2023-02-21 16:41:23 -05:00
Takashi Kokubun
0353277b20
YJIT: Avoid checking symbol ID twice on send ( #7350 )
2023-02-21 16:10:10 -05:00
Stan Lo
50e77b6a9c
[ruby/irb] Improve RubyLex's tests
...
(https://github.com/ruby/irb/pull/484 )
* Improve assert_indenting helper
Instead of putting assertions inside the `auto_indent` block, we
can just make `auto_indent` return the calculated space count, and use
it for assertion outside of the `auto_indent` block call.
This simplifies the setup code and makes the intention easier to
understand.
* Introduce assert_row_indenting helper
1. Helper users shouldn't need to write 2 assertions for the current and
the next line's indentation.
2. With this new approach, we can generate clearer error message for
both cases:
When the current line's space count doesn't match
```
Incorrect spaces calculation for line:
```
> def each_top_level_statement
```
All lines:
```
def each_top_level_statement
```
<0> expected but was
<nil>
```
When the next line's space count doesn't match
```
Incorrect spaces calculation for line after the current line:
```
def each_top_level_statement
>
```
All lines:
```
def each_top_level_statement
```
<3> expected but was
<2>
```
* Replace assert_indenting with assert_row_indenting
2023-02-21 19:38:09 +00:00
Jimmy Miller
5baef07506
YJIT: Fix clippy issues and remove unused params ( #7348 )
...
* YJIT: Fix clippy issues and remove unused params
* Remove an unnecessary whitespace
---------
Co-authored-by: Takashi Kokubun <takashikkbn@gmail.com>
2023-02-21 13:21:25 -05:00
Takashi Kokubun
d579f47558
Bump SHAPE_MAX_NUM_IVS to 80 ( #7344 )
2023-02-21 10:00:39 -08:00
Nobuyoshi Nakada
37b6d98840
Use `Gem::Package#build` instead of the class method for old baseruby
2023-02-22 02:07:59 +09:00
Nobuyoshi Nakada
289080e4d8
Clone and create dummy gemspec in sequential build
2023-02-22 02:07:59 +09:00
Nobuyoshi Nakada
241c4cfdd4
Move dummy gemspec file creation for extract-gems-sequential
2023-02-22 02:07:59 +09:00
Nobuyoshi Nakada
0a9efe8701
Use git directories instead of gemspec files as dependency
...
Minitest repository does not commit its gemspec file.
2023-02-22 02:07:59 +09:00
Matt Valentine-House
3c01342e19
Fix detection of compiler_wd in tool/update-deps
2023-02-21 10:57:28 -05:00
Nobuyoshi Nakada
a26a0af074
Use `BigDecimal::VERSION` instead of `RUBY_VERSION`
2023-02-22 00:39:56 +09:00
git
ace116fceb
Update default gems list at 0cde887eb9
[ci skip]
2023-02-21 15:36:48 +00:00
Nobuyoshi Nakada
0cde887eb9
[ruby/bigdecimal] Bump up to 3.1.4
...
ruby/bigdecimal#187 has changed a behavior and ruby/spec also needed a
follow up at https://github.com/ruby/ruby/commit/0d8ef62fc293 .
However, because bigdecimal is a separate gem and can be updated in
older versions of ruby, `RUBY_VERSION` is not appropriate for this
guard. That means it needs bumped up `BigDecimal::VERSION`.
https://github.com/ruby/bigdecimal/commit/3a2a7a9353
2023-02-21 15:35:40 +00:00
Benoit Daloze
7b768e4335
[ruby/bigdecimal] Move RB_GC_GUARD() at the end, like in BigMath_s_exp()
...
https://github.com/ruby/bigdecimal/commit/b66ef9fbb5
2023-02-21 14:24:13 +00:00
Benoit Daloze
5077cc2be6
[ruby/bigdecimal] Avoid RB_GC_GUARD(a) = b in bigdecimal
...
* This is not supported on TruffleRuby, which requires the value to be
set before RB_GC_GUARD() is called.
* See https://github.com/oracle/truffleruby/pull/2879
https://github.com/ruby/bigdecimal/commit/7b2957922f
2023-02-21 14:24:12 +00:00
Peter Zhu
93ac7405b8
Add marking and sweeping time to GC.stat
...
There is a `time` key in GC.stat that gives us the total time spent in
GC. However, we don't know what proportion of the time is spent between
marking and sweeping. This makes it difficult to tune the GC as we're
not sure where to focus our efforts on.
This PR adds keys `marking_time` and `sweeping_time` to GC.stat for the
time spent marking and sweeping, in milliseconds.
[Feature #19437 ]
2023-02-21 08:05:31 -05:00
Peter Zhu
d7c1ca48bf
Refactor to separate marking and sweeping phases
...
This commit separates the marking and sweeping phases so that marking
functions do not directly call sweeping functions.
2023-02-21 08:05:31 -05:00
Jean Boussier
d2520b7b76
Marshal.load: restore instance variables on Regexp
...
[Bug #19439 ]
The instance variables were restore on the Regexp source,
not the regexp itself.
Unfortunately we have a bit of a chicken and egg problem.
The source holds the encoding, and the encoding need to be set on
the source to be able to instantiate the Regexp.
So the instance variables have to be read on the `source`.
To correct this we transfert the instance variables after
instantiating the Regexp.
The only way to avoid this would be to read the instance variable
twice and rewind.
2023-02-21 13:57:04 +01:00
git
61709227bb
Update default gems list at b572f2436c
[ci skip]
2023-02-21 11:00:14 +00:00
Charles Oliver Nutter
b572f2436c
[ruby/openssl] Stub gemspec for JRuby
...
JRuby has its own implementation of the `openssl` library in
jruby-openssl. The simplest way for us to allow users to set
openssl as a gem dependency is to ship a stub gem that just
depends on jruby-openssl. This patch adds that to the gemspec.
Additional work may be required to fit this stub gem into the test
and release process.
See #20 for more details.
https://github.com/ruby/openssl/commit/74ccaa5e18
2023-02-21 19:50:49 +09:00
Étienne Barrié
bc101f0fc1
[ruby/rdoc] Fix RDoc::Parser::Ruby not being documented
...
The calls to require prevent the class from being documented.
https://github.com/ruby/rdoc/commit/76283fc42e
2023-02-21 19:32:14 +09:00
Charles Oliver Nutter
4c7726516c
[ruby/strscan] Mask out this test on JRuby/Windows
...
See https://github.com/jruby/jruby/issues/7644 for the root issue,
which will require fixes to JRuby's regular expression engine,
JOni.
https://github.com/ruby/strscan/commit/29a65abff2
2023-02-21 19:31:39 +09:00
Sutou Kouhei
76a4cdfb02
[ruby/strscan] test: Run test more with fixed anchor mode
...
(https://github.com/ruby/strscan/pull/60 )
fix https://github.com/ruby/strscan/pull/56
2023-02-21 19:31:38 +09:00
OKURA Masafumi
260bc7cdfa
[ruby/strscan] Add test case to `test_string`
...
(https://github.com/ruby/strscan/pull/58 )
`string` returns the original string after `scan` is called. Current
test doesn't check this behavior and now it's covered.
2023-02-21 19:31:38 +09:00
Sutou Kouhei
18e840ac60
[ruby/strscan] Bump version
...
https://github.com/ruby/strscan/commit/681cde0f27
2023-02-21 19:31:36 +09:00
OKURA Masafumi
a44f5ab089
[ruby/strscan] Mention return value of `rest?` in the doc
...
(https://github.com/ruby/strscan/pull/49 )
The doc of `rest?` was unclear about return value. This commit adds the
return value to the doc.
2023-02-21 19:31:35 +09:00
Sutou Kouhei
a350ef9f7a
[ruby/csv] test: use mailing list ID instead of unavailable URL
...
https://github.com/ruby/csv/commit/04862ccf87
2023-02-21 19:31:29 +09:00
Vivek Bharath Akupatni
2ac1efc0f3
[ruby/csv] Use https links instead of http
...
(https://github.com/ruby/csv/pull/274 )
https://github.com/ruby/csv/commit/e2a06929a8
2023-02-21 19:31:29 +09:00
Mau Magnaguagno
1a05d988d3
[ruby/csv] Remove unused @double_quote_character from Parser
...
(https://github.com/ruby/csv/pull/273 )
https://github.com/ruby/csv/commit/e5622c53ae
2023-02-21 19:31:28 +09:00
Hiroshi SHIBATA
38fa8eb4cb
Merge rubygems/bundler master
...
Pick from e9304aed7e
2023-02-21 19:28:12 +09:00
David Rodríguez
a47e1328e6
[rubygems/rubygems] Give a better message when Gemfile branch does not exist
...
https://github.com/rubygems/rubygems/commit/cb4fc41cbc
2023-02-21 19:28:12 +09:00
David Rodríguez
b5eb9ebd5d
[rubygems/rubygems] Fix crash in pub grub involving empty ranges
...
https://github.com/rubygems/rubygems/commit/0f168516f7
2023-02-21 19:28:12 +09:00
John Hawthorn
4064e3e776
[rubygems/rubygems] Update pub_grub
...
* Replaces the wording of "is forbidden" with "cannot be used"
* Fixes the method signature of VersionRange::Empty#eql?
https://github.com/rubygems/rubygems/commit/8c6b3f130b
Co-authored-by: Daniel Colson <danieljamescolson@gmail.com>
2023-02-21 19:28:12 +09:00
David Rodríguez
8038991583
[rubygems/rubygems] Sync with pub_grub main branch
...
We became a bit out of sync lately.
https://github.com/rubygems/rubygems/commit/6161a2610a
2023-02-21 19:28:12 +09:00
David Rodríguez
e7bf85961d
[rubygems/rubygems] Restore better error message when locked ref does not exist
...
https://github.com/rubygems/rubygems/commit/c8e024359f
2023-02-21 19:28:12 +09:00
Nobuyoshi Nakada
9b6d421ff4
[rubygems/rubygems] [DOC] Update the link to OpenSource.org
...
The static list in alphabetical order seems no longer provided.
https://github.com/rubygems/rubygems/commit/a37dff7736
2023-02-21 10:26:53 +00:00
dependabot[bot]
ba2bd6d0f1
[rubygems/rubygems] Bump rb-sys
...
Bumps [rb-sys](https://github.com/oxidize-rb/rb-sys ) from 0.9.64 to 0.9.65.
- [Release notes](https://github.com/oxidize-rb/rb-sys/releases )
- [Commits](https://github.com/oxidize-rb/rb-sys/compare/v0.9.64...v0.9.65 )
---
updated-dependencies:
- dependency-name: rb-sys
dependency-type: direct:production
update-type: version-update:semver-patch
...
Signed-off-by: dependabot[bot] <support@github.com>
2023-02-21 10:05:41 +00:00
Nobuyoshi Nakada
d13879f862
[ruby/bigdecimal] Read version from bigdecimal.c
...
The dependency of extconf.h on bigdecimal.gemspec does not make sense
as far as no rule is defined for it. Also, the relationship between
extension library and gemspec file is various in default gems, and
does not work well.
https://github.com/ruby/bigdecimal/commit/7f99b28552
2023-02-21 09:50:02 +00:00
Nobuyoshi Nakada
cb40432c74
Use `ERROR_ARGS_AT`
2023-02-21 18:40:03 +09:00
Yusuke Endoh
6384f7981c
Prevent "warning: ambiguity between regexp and two divisions"
...
http://rubyci.s3.amazonaws.com/ubuntu/ruby-master/log/20230221T031004Z.log.html.gz
```
/home/chkbuild/chkbuild/tmp/build/20230221T031004Z/ruby/test/rubygems/test_gem_ext_cargo_builder.rb:90: warning: ambiguity between regexp and two divisions: wrap regexp in parentheses or add a space after `/' operator
```
2023-02-21 13:46:11 +09:00
Burdette Lamar
899fad907c
[ruby/net-http] [DOC] Enhanced RDoc for Net::HTTP
...
(https://github.com/ruby/net-http/pull/123 )
https://github.com/ruby/net-http/commit/220ff3f741
2023-02-20 21:57:16 +00:00
Jean Boussier
0459eaec95
compile.c: eliminate getinstancevariable -> pop sequences
...
This case wasn't eliminated before because `getinstancevariable`
could emit a warning, but that's no longer the case since Ruby
3.0.
2023-02-20 19:04:04 +01:00
Takashi Kokubun
ecd0cdaf82
YJIT: Fix assertion for partially mapped last pages ( #7337 )
...
Follows up [Bug #19400 ]
2023-02-20 09:06:09 -08:00