87158 Commits

Author SHA1 Message Date
mterada1228
d4de8aef37 rake install command is failed (#1170)
* `rake install` command is failed

\### Problems

Several file paths were changed by following PR.

- 4211292ffe
- d7bca12c13

Because rdoc.gemspec doesn't take in this changes,
the `rake install` command is permanently failed.

\### Test

\#### before

```console
❯ bundle exec rake install
Running RuboCop...
Inspecting 4 files
....

4 files inspected, no offenses detected

Tip: Based on detected gems, the following RuboCop extension libraries
might be helpful:
  * rubocop-rake (https://rubygems.org/gems/rubocop-rake)

You can opt out of this message by adding the following to your config
(see
https://docs.rubocop.org/rubocop/extensions.html#extension-suggestions
for more options):
  AllCops:
    SuggestExtensions: false
rake aborted!
Running `gem build -V
/Users/mterada/dev/redDataTools/remove_dependency/rdoc/rdoc.gemspec`
failed with the following output:

WARNING:  See https://guides.rubygems.org/specification-reference/ for
help
ERROR:  While executing gem ... (Gem::InvalidSpecificationException)
    ["RI.rdoc", "lib/rdoc/alias.rb", "lib/rdoc/anon_class.rb",
"lib/rdoc/any_method.rb", "lib/rdoc/attr.rb",
"lib/rdoc/class_module.rb", "lib/rdoc/constant.rb",
"lib/rdoc/context.rb", "lib/rdoc/context/section.rb",
"lib/rdoc/extend.rb", "lib/rdoc/ghost_method.rb", "lib/rdoc/include.rb",
"lib/rdoc/meta_method.rb", "lib/rdoc/method_attr.rb",
"lib/rdoc/mixin.rb", "lib/rdoc/normal_class.rb",
"lib/rdoc/normal_module.rb", "lib/rdoc/require.rb",
"lib/rdoc/single_class.rb", "lib/rdoc/top_level.rb"] are not files

/Users/mterada/.rbenv/versions/3.1.0/bin/bundle:25:in `load'
/Users/mterada/.rbenv/versions/3.1.0/bin/bundle:25:in `<main>'
Tasks: TOP => install => build
(See full trace by running task with --trace)
```

\#### after

```console
❯ bundle exec rake install
Running RuboCop...
Inspecting 4 files
....

4 files inspected, no offenses detected

Tip: Based on detected gems, the following RuboCop extension libraries might be helpful:
  * rubocop-rake (https://rubygems.org/gems/rubocop-rake)

You can opt out of this message by adding the following to your config (see https://docs.rubocop.org/rubocop/extensions.html#extension-suggestions for more options):
  AllCops:
    SuggestExtensions: false
rdoc 6.7.0 built to pkg/rdoc-6.7.0.gem.
rdoc (6.7.0) installed.
```

* Add a `bundle exec rake install` step to github workflow

* make intentionally CI failed

* Revert "make intentionally CI failed"

This reverts commit 9fc5dd9423a024594ad26d86a8a6af829e7017f8.
2024-09-05 16:53:31 +00:00
git
ffebc1c7c7 Update default gems list at 721a2ceecfe3e3f943b7da50efe8f1 [ci skip] 2024-09-05 12:49:01 +00:00
Mari Imaizumi
721a2ceecf [ruby/reline] Bump version to 0.5.10
(https://github.com/ruby/reline/pull/745)

https://github.com/ruby/reline/commit/0ebd54f675
2024-09-05 12:48:02 +00:00
Mari Imaizumi
be6d23646f [ruby/reline] Prevent a warning for `warning: literal string will be
frozen in the future`
(https://github.com/ruby/reline/pull/744)

https://github.com/ruby/reline/commit/69c95c8b6a
2024-09-05 12:22:34 +00:00
Étienne Barrié
bf9879791a Optimized instruction for Hash#freeze
If a Hash which is empty or only using literals is frozen, we detect
this as a peephole optimization and change the instructions to be
`opt_hash_freeze`.

[Feature #20684]

Co-authored-by: Jean Boussier <byroot@ruby-lang.org>
2024-09-05 12:46:02 +02:00
Étienne Barrié
a99707cd9c Optimized instruction for Array#freeze
If an Array which is empty or only using literals is frozen, we detect
this as a peephole optimization and change the instructions to be
`opt_ary_freeze`.

[Feature #20684]

Co-authored-by: Jean Boussier <byroot@ruby-lang.org>
2024-09-05 12:46:02 +02:00
Jean Boussier
63cbe3f6ac Proof of Concept: Allow to prevent fork from happening in known fork unsafe API
[Feature #20590]

For better of for worse, fork(2) remain the primary provider of
parallelism in Ruby programs. Even though it's frowned uppon in
many circles, and a lot of literature will simply state that only
async-signal safe APIs are safe to use after `fork()`, in practice
most APIs work well as long as you are careful about not forking
while another thread is holding a pthread mutex.

One of the APIs that is known cause fork safety issues is `getaddrinfo`.
If you fork while another thread is inside `getaddrinfo`, a mutex
may be left locked in the child, with no way to unlock it.

I think we could reduce the impact of these problem by preventing
in for the most notorious and common cases, by locking around
`fork(2)` and known unsafe APIs with a read-write lock.
2024-09-05 11:43:46 +02:00
Jun Aruga
2e5680d304 [ruby/openssl] Fix test_pkey_rsa.rb in FIPS.
* test_sign_verify
  I created the signature text (`signature_encoded.txt`), that is used as a
  text to create the `signature0` in the `test_sign_verify` by the following
  steps with the `openssl` CLI on FIPS module.
  ```
  $ OPENSSL_DIR="${HOME}/.local/openssl-3.4.0-dev-fips-debug-3c6e114959"
  $ export OPENSSL_CONF="${OPENSSL_DIR}/ssl/openssl_fips.cnf"

  $ echo -n "Sign me!" > data.txt
  $ "${OPENSSL_DIR}/bin/openssl" dgst -sha256 -sign test/openssl/fixtures/pkey/rsa2048.pem data.txt > signature.txt
  $ cat signature.txt | base64 > signature_encoded.txt
  ```

https://github.com/ruby/openssl/commit/091f3eb421
2024-09-05 08:41:30 +00:00
Nobuyoshi Nakada
08e142b209 Refactor getlogin and getpw* functions
- Extract functions to check not-found conditions
- Set the length to the result of `rb_getlogin`
- Reentrant versions return an error numeber but not `errno`
- Check maybe-undefined macros with `defined`
2024-09-05 16:55:54 +09:00
git
630bfd36f9 Update bundled gems list as of 2024-09-04 2024-09-05 07:01:45 +00:00
ydah
32680f543c Implement AND/OR NODE operator locations 2024-09-05 13:03:28 +09:00
Jean Boussier
294dad22d7 Time#strftime: avoid repeated coderange scanning
Followup: a3f589640fd443deea230c27efd6bdfc92f5817f

Restarting scanning has a fixed cost. Since we build a string
from many small parts, that causes the scan to restart many times.

It's much faster to ignore the coderange, if it's needed later it
will be faster to scan it in one go.

```
compare-ruby: ruby 3.4.0dev (2024-09-04T11:54:06Z opt-strftime-growth 149480f0ff) +YJIT [arm64-darwin23]
built-ruby: ruby 3.4.0dev (2024-09-04T11:55:26Z opt-strftime-coder.. 29a5153cba) +YJIT [arm64-darwin23]
warming up...

|                            |compare-ruby|built-ruby|
|:---------------------------|-----------:|---------:|
|time.strftime("%FT%T")      |      1.870M|    2.225M|
|                            |           -|     1.19x|
|time.strftime("%FT%T.%3N")  |      1.731M|    2.068M|
|                            |           -|     1.19x|
|time.strftime("%FT%T.%6N")  |      1.744M|    2.073M|
|                            |           -|     1.19x|
```

Cumulative with a3f589640fd443deea230c27efd6bdfc92f5817f:

```
compare-ruby: ruby 3.4.0dev (2024-09-04T11:55:26Z opt-strftime-coder.. 29a5153cba) +YJIT [arm64-darwin23]
built-ruby: ruby 3.4.0dev (2024-09-04T12:57:30Z opt-strftime-coder.. 2b938d667a) +YJIT [arm64-darwin23]
warming up...

|                            |compare-ruby|built-ruby|
|:---------------------------|-----------:|---------:|
|time.strftime("%FT%T")      |      1.784M|    2.277M|
|                            |           -|     1.28x|
|time.strftime("%FT%T.%3N")  |      1.504M|    2.056M|
|                            |           -|     1.37x|
|time.strftime("%FT%T.%6N")  |      1.489M|    2.094M|
|                            |           -|     1.41x|
```
2024-09-04 16:12:50 +02:00
Takuya Noguchi
2e5a7d768b [rubygems/rubygems] Improve bundle add manpage
* Fix synopsis for mutually exclusive options.
* Add more descriptive examples.

Signed-off-by: Takuya Noguchi <takninnovationresearch@gmail.com>

https://github.com/rubygems/rubygems/commit/c0f1efda69

Co-authored-by: Jerome Dalbert <jerome.dalbert@gmail.com>
2024-09-04 13:57:38 +00:00
Peter Zhu
ae84c017d6 Remove unused allocatable_pages field in objspace 2024-09-04 09:29:18 -04:00
Kevin Newton
da0460a2e1 [ruby/prism] Update config.yml
https://github.com/ruby/prism/commit/8a3fa9f46e
2024-09-04 13:13:38 +00:00
Kevin Newton
a246188695 [ruby/prism] Update config.yml
https://github.com/ruby/prism/commit/369b2c1304
2024-09-04 13:13:38 +00:00
ydah
dbb8f97eaa [ruby/prism] essentialy ==> essentially
https://github.com/ruby/prism/commit/9c68c01bcd
2024-09-04 13:13:37 +00:00
ydah
5c3a52627f [ruby/prism] containt ==> contains
https://github.com/ruby/prism/commit/fa65b66237
2024-09-04 13:13:37 +00:00
Jean Boussier
a3f589640f Time#strftime: grow the buffer faster
Use a classic doubling of capacity rather than only adding
twice as much capacity as is already known to be needed.

```
compare-ruby: ruby 3.4.0dev (2024-09-04T09:21:53Z opt-strftime-2 ae98d19cf9) +YJIT [arm64-darwin23]
built-ruby: ruby 3.4.0dev (2024-09-04T11:46:02Z opt-strftime-growth 586263d6fb) +YJIT [arm64-darwin23]
warming up...

|                            |compare-ruby|built-ruby|
|:---------------------------|-----------:|---------:|
|time.strftime("%FT%T")      |      1.754M|    1.889M|
|                            |           -|     1.08x|
|time.strftime("%FT%T.%3N")  |      1.508M|    1.749M|
|                            |           -|     1.16x|
|time.strftime("%FT%T.%6N")  |      1.488M|    1.756M|
|                            |           -|     1.18x|
compare-ruby: ruby 3.4.0dev (2024-09-04T09:21:53Z opt-strftime-2 ae98d19cf9) +YJIT [arm64-darwin23]
built-ruby: ruby 3.4.0dev (2024-09-04T09:21:53Z opt-strftime-2 ae98d19cf9) +YJIT [arm64-darwin23]
warming up...
```
2024-09-04 14:52:55 +02:00
David Rodríguez
83334ebb3c [rubygems/rubygems] Load gemspecs in the context of its parent also when using local overrides
https://github.com/rubygems/rubygems/commit/0a6c1c53ce
2024-09-04 12:00:36 +00:00
tomoya ishida
9a766777d4 [ruby/reline] Split render_differential to LineEditor's rendering
logic and actual differential rendering part
(https://github.com/ruby/reline/pull/731)

https://github.com/ruby/reline/commit/c90f08f7e3
2024-09-04 11:58:03 +00:00
Jean Boussier
036ca726bb Fix documentation for String#index and String#byterindex 2024-09-04 11:26:17 +02:00
Hiroshi SHIBATA
ae98d19cf9 Test with Ubuntu 24.04 2024-09-04 18:21:53 +09:00
Hiroshi SHIBATA
56817865d6 [rubygems/rubygems] Removed unused stringio
Fixed https://github.com/rubygems/rubygems/pull/7996

https://github.com/rubygems/rubygems/commit/16bfcac883
2024-09-04 08:57:17 +00:00
git
7fc1fd8977 Update bundled gems list as of 2024-09-04 2024-09-04 07:02:15 +00:00
Nobuyoshi Nakada
e884d65094
Ignore blocks to Test::Unit::Assertions#pend silently
Although `pend` in test-unit gem expects the block does not pass if it
is given, our `pend` should ignore the block silently as same as it
just skips the test with no message by default.  Add an unused
parameter, to suppress the warning for the block to be ignored.
2024-09-04 14:49:25 +09:00
Hiroshi SHIBATA
a3e08718b4
Use bundler/inline to download diffy gem 2024-09-04 14:44:34 +09:00
ydah
ab18b1b4f5 Implement VALIAS NODE keyword locations 2024-09-04 14:36:35 +09:00
Nobuyoshi Nakada
37d7ae06af
[Bug #20708] Retry open on EINTR
Co-Authored-By: Martin Dorey <martin.dorey@hds.com>
2024-09-04 10:42:48 +09:00
Nobuyoshi Nakada
ade240e578
Adjust indents [ci skip] 2024-09-04 10:28:52 +09:00
Jeremy Evans
08f14b8d4c
Allow Errno::EACCES when testing connection timeout
Some packaging systems that include support for running tests,
such as OpenBSD's, do not allow outbound network connections
during testing for security reasons. EACCES is the error raised by
OpenBSD in this case.
2024-09-03 18:21:01 -07:00
Hiroshi SHIBATA
974b404327
Bump up openssl-3.0.15 2024-09-04 08:41:38 +09:00
Peter Zhu
e7fbdf8187 Fix indentation broken in 53eaa67 [ci skip] 2024-09-03 13:45:54 -04:00
Peter Zhu
ef42e04a1a Don't traverse garbage objects in heap traversal
The object could be garbage (e.g. T_NONE, T_MOVED, or T_ZOMBIE) so we
don't want to traverse those.
2024-09-03 13:44:09 -04:00
Peter Zhu
53eaa67305 Unpoision the object in rb_gc_impl_garbage_object_p 2024-09-03 13:43:33 -04:00
Durable Programming Team
675529b9c6 [rubygems/rubygems] standardize pretty-print output for Gem::Source and subclasses
https://github.com/rubygems/rubygems/commit/6d5fbf82f1
2024-09-03 17:40:12 +00:00
Kevin Newton
767d0a1716
[PRISM] Fix up compile warning for sign comparison 2024-09-03 13:16:24 -04:00
Kevin Newton
f7b097dea0 [PRISM] Keep script lines option for eval iseqs as well 2024-09-03 12:12:08 -04:00
tomoya ishida
f1349924df [ruby/irb] Fix easter_egg run without RDoc, fix input-method test
run without RDoc
(https://github.com/ruby/irb/pull/998)

* EasterEgg no longer depend on RDoc

* Run most of the input-method tests even if RDoc is not avialable

https://github.com/ruby/irb/commit/30fa1595d9
2024-09-03 15:45:40 +00:00
Mari Imaizumi
0889f64021 [ruby/reline] Add test for reset_variables in Reline::Config
(https://github.com/ruby/reline/pull/741)

* Fix reset variables

* Add assertion for reload

* Add helper method to get instance variable value of Reline::Config

https://github.com/ruby/reline/commit/386f619ff5
2024-09-03 15:32:29 +00:00
tomoya ishida
ad9d2c6435 [ruby/reline] Fix redisplay/insert_text called from pre_input_hook
(https://github.com/ruby/reline/pull/742)

* Fix redisplay/insert_text called from pre_input_hook

* Rename insert_pasted_text to insert_multiline_text

It is now used from Reline.insert_text which is not inserting pasted text

https://github.com/ruby/reline/commit/694a540939
2024-09-03 15:19:44 +00:00
Peter Zhu
3c63a01295 Move responsibility of heap walking into Ruby
This commit removes the need for the GC implementation to implement heap
walking and instead Ruby will implement it.
2024-09-03 10:05:38 -04:00
ydah
a2243ee48b Implement ALIAS NODE keyword locations 2024-09-03 22:09:08 +09:00
ydah
af143d8a74 Implement UNDEF NODE keyword locations 2024-09-03 21:15:12 +09:00
Jean Boussier
b7fa2dd0d0 rb_enc_str_asciionly_p: avoid always fetching the encoding
Profiling of `JSON.dump` shows a significant amount of time spent
in `rb_enc_str_asciionly_p`, in large part because it fetches the
encoding.

It can be made twice as fast in this scenario by first checking the
coderange and only falling back to fetching the encoding if the
coderange is unknown.

Additionally we can skip fetching the encoding for the common
popular encodings.
2024-09-03 12:21:36 +02:00
zverok
245ed2fc89 Range#step: restore legacy behavior for String ranges 2024-09-03 16:21:42 +09:00
Hiroshi SHIBATA
452eb24b15
Added missing client_payload for ruby-build 2024-09-03 16:11:34 +09:00
Takashi Kokubun
1b8fb4860b Revert "Experiment with removing --profile ruby for now"
This reverts commit 6986536488ba23c033c043ef8765438f22df7bf5.

We were just missing the secrets.
2024-09-02 23:37:15 -07:00
Takashi Kokubun
6986536488 Experiment with removing --profile ruby for now 2024-09-02 23:31:58 -07:00
Takashi Kokubun
ad613d0884 Try to fix AWS_CLI_OPTS with AWS_ACCESS_KEY_ID 2024-09-02 23:29:43 -07:00