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

71943 Коммитов

Автор SHA1 Сообщение Дата
Nobuyoshi Nakada a72529182d
Suppress unused-function [ci skip] 2022-05-19 16:46:08 +09:00
Hiroshi SHIBATA ee3b61a44f
Removed subversion section because there is no active branch for svn. 2022-05-19 15:48:28 +09:00
git 13c60e6568 * 2022-05-19 [ci skip] 2022-05-19 07:19:57 +09:00
Benoit Daloze 75fcfb1416 [ruby/timeout] Remove redundant done? check
* It's already checked inside #interrupt.

https://github.com/ruby/timeout/commit/5f43254f81
2022-05-19 07:19:42 +09:00
Benoit Daloze 240ac9eaa8 [ruby/timeout] Synchronize all accesses to @done
* So it is trivially correct.
* Performance seems the same overall.

https://github.com/ruby/timeout/commit/5e0d8e1637
2022-05-19 07:19:41 +09:00
Benoit Daloze 354cd6f210 [ruby/timeout] Handle Timeout + fork and add test for it
https://github.com/ruby/timeout/commit/4baee63b9b
2022-05-19 07:19:40 +09:00
Benoit Daloze 89fbec224d [ruby/timeout] Reimplement Timeout.timeout with a single thread and a Queue
https://github.com/ruby/timeout/commit/2bafc458f1
2022-05-19 07:19:39 +09:00
Nobuyoshi Nakada 97c12c5f69 Clean intermediate object files 2022-05-18 14:33:00 +09:00
Nobuyoshi Nakada 9a0f5a8edc Verbose mode on libyjit merge 2022-05-18 14:33:00 +09:00
Nobuyoshi Nakada 9b3ed5a23f Extract YJIT_LIBS directly without copying 2022-05-18 14:33:00 +09:00
Nobuyoshi Nakada 3db8db8a32 `AR` does not need the absolute path
Still use `find` to get rid of potential ARGV limit overflow, since
rustc-genrated object file names are mangled and very long.
2022-05-18 14:33:00 +09:00
Kaíque Kandy Koga c478a3c0a9
[DOC] Use `make gdb-ruby` and `make lldb-ruby` in doc/contributing/building_ruby.md 2022-05-18 11:32:13 +09:00
Kaíque Kandy Koga aab683af0e
Write skipping instead of skiping [ci skip]
https://www.lexico.com/en/definition/skip
2022-05-18 11:28:36 +09:00
git 093c516ce5 Update default gems list at 6b6d7df39d [ci skip] 2022-05-18 01:04:36 +00:00
Hiroshi SHIBATA 6b6d7df39d
[ruby/psych] Prepare to develop 5.0.0
https://github.com/ruby/psych/commit/c3b5183f42
2022-05-18 10:03:48 +09:00
MSP-Greg 3ec066334c
[ruby/psych] [CI] Add/update 'rake install', update Psych version for Ruby 3.1 gem install
https://github.com/ruby/psych/commit/2fa5e190b5
2022-05-18 10:03:47 +09:00
git e2bad65eab * 2022-05-18 [ci skip] 2022-05-18 07:12:44 +09:00
Kouhei Yanagita e658da9408 [ruby/irb] Fix documents for .irbrc path
https://github.com/ruby/irb/commit/af99c01b0d
2022-05-18 07:12:29 +09:00
Samuel Williams 11af23ee92
Move feature deletion from GC mark to `autoload_delete`. (#5912) 2022-05-17 23:44:14 +12:00
Samuel Williams 60d45b2ee8
Restore implicit relationship between `autoload_const` and `autoload_data` during GC. (#5911) 2022-05-17 19:12:36 +12:00
Nobuyoshi Nakada 8a907da0f6
Suppress an unused-but-set-variable warning [ci skip] 2022-05-17 13:55:56 +09:00
git 1f537dc62d * 2022-05-17 [ci skip] 2022-05-17 12:15:01 +09:00
Nobuyoshi Nakada 2411f0ad8c
Set `target_os` for a7577dbfd3 2022-05-17 12:14:32 +09:00
Kazuhiro NISHIYAMA f2dc972940 [ruby/set] Fix a typo
https://github.com/ruby/set/commit/71a876ae81
2022-05-16 23:43:04 +09:00
Samuel Williams f626998c4f
Delete autoload data from global features after autoload has completed. (#5910)
* Update naming of critical section assertions macros.

* Improved locking for autoload.
2022-05-17 00:50:02 +12:00
Nobuyoshi Nakada a7577dbfd3
`annobin` works only when targeting Fedora
And hopefully for other Linux.  Since it is not run on the build os,
`TEST_RUNNABLE` is not suitable for this case.
2022-05-16 19:27:37 +09:00
David Rodríguez 641c3830df [rubygems/rubygems] Use `Array#concat` in `SpecSet#for` to save memory
On `rails/rails` repository Gemfile, running the following script

```
# script.rb
require "bundler/setup"
```

#### Before

```
➜  rails git:(main) ✗ BUNDLER_VERSION=2.4.0.dev ruby-memory-profiler --pretty --no-detailed --allocated-strings=0 --retained-strings=0 script.rb
Total allocated: 24.37 MB (207937 objects)
Total retained:  2.98 MB (34152 objects)
```

#### After

```
➜  rails git:(main) ✗ BUNDLER_VERSION=2.4.0.dev ruby-memory-profiler --pretty --no-detailed --allocated-strings=0 --retained-strings=0 script.rb
Total allocated: 22.27 MB (206856 objects)
Total retained:  2.98 MB (34152 objects)
```

https://github.com/rubygems/rubygems/commit/2ea2523afd

Co-authored-by: Josh Nichols <josh.nichols@gusto.com>
2022-05-16 17:24:14 +09:00
David Rodríguez c380aac19d [rubygems/rubygems] Improve `bundler/setup` performance again
On a different patch, it was noticed Ngam Pham that we are calling
`LazySpecification#hash` many times, and simply memoizing that led to a
very considerable performance improvement in his app.

I noticed though that we shouldn't be calling `LazySpecification#hash`
that many times, and I located the culprit at `SpecSet#for` where we
were deduplicating the partial aggregated result on every iteration. It
is enough to do it just once at the end.

This leads on a 12% speedup on Rails repository Gemfile vs the previous
8% I was getting from memoizing `LazySpecification#hash`. Also, after
this patch memoizing `LazySpecification#hash` has no effect in
performance anymore.

https://github.com/rubygems/rubygems/commit/68d00a9edd

Co-authored-by: Ngan Pham <ngan@users.noreply.github.com>
2022-05-16 17:24:14 +09:00
Jun Aruga dccfff943c Add `make test-annocheck` to detect security issues.
* Note that as the annocheck binary package is not available on Ubuntu, and it
  is working in progress in Debian, the script uses Fedora container, and
  it requires docker or podman command.
  https://www.debian.org/devel/wnpp/itp.en.html
  https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=926470
* .github/workflows/compilers.yml: Add "gcc-11 annocheck" case.
  To pass the CI, set `TEST_ANNOCHECK_OPTS: "--skip-pie --skip-notes"` for now.
  See <https://bugs.ruby-lang.org/issues/18061>.
* Skip MJIT tests in case of annocheck case.
  The MJIT tests fail in the annocheck case.
  See <https://bugs.ruby-lang.org/issues/18781>.
2022-05-16 10:10:16 +02:00
git 36efb2a146 * 2022-05-16 [ci skip] 2022-05-16 12:24:26 +09:00
Nobuyoshi Nakada 774b9e27ae [ruby/racc] [DOC] Remove stale `Object::ParseError` documentation
https://github.com/ruby/racc/commit/4ecc13c9cb
2022-05-16 12:24:10 +09:00
git 105609d382 * 2022-05-15 [ci skip] 2022-05-15 13:07:36 +09:00
Samuel Williams 32de6097b2
Fix various autoload race conditions. (#5898)
* Add RUBY_VM_CRITICAL_SECTION for detecting unexpected context switch.

* Prevent race between GC mark and autoload setup.

* Protect race on autoload state.

* Avoid potential race condition when allocating `autoload_featuremap`.

* Add NEWS entry for autoload fixes.
2022-05-15 16:07:12 +12:00
Burdette Lamar 48002ff187 [ruby/fileutils] [DOC] Enhanced RDoc for #ln (https://github.com/ruby/fileutils/pull/69)
Enhanced RDoc for #ln

https://github.com/ruby/fileutils/commit/79fc67f03f

Co-authored-by: Peter Zhu <peter@peterzhu.ca>
2022-05-14 22:38:22 +09:00
Matt Valentine-House 708e839dee Fix compiler warning when USE_RVARGC=0 2022-05-13 16:26:41 -04:00
git 51fab06017 * 2022-05-14 [ci skip] 2022-05-14 05:02:30 +09:00
Burdette Lamar 9639dc91d9 [ruby/logger] [DOC] Enhanced RDoc for Logger (https://github.com/ruby/logger/pull/77)
Enhanced RDoc for Logger

https://github.com/ruby/logger/commit/c601ed0370

Co-authored-by: Peter Zhu <peter@peterzhu.ca>
2022-05-14 05:02:18 +09:00
Peter Zhu 09c72f41ce Print function name in backtrace when available
If we don't have `saddr` but have `sname` we should output `sname`.
2022-05-13 10:47:50 -04:00
Burdette Lamar 55ba414405 [ruby/logger] Update lib/logger.rb
https://github.com/ruby/logger/commit/a5a2f2da4a

Co-authored-by: Peter Zhu <peter@peterzhu.ca>
2022-05-13 22:52:59 +09:00
Burdette Lamar 1f1283b927 [ruby/logger] Update lib/logger.rb
https://github.com/ruby/logger/commit/e6f2c64fc6

Co-authored-by: Peter Zhu <peter@peterzhu.ca>
2022-05-13 22:52:58 +09:00
Burdette Lamar 45a92cc4fe [ruby/logger] Update lib/logger.rb
https://github.com/ruby/logger/commit/3dc5a8d7a4

Co-authored-by: Peter Zhu <peter@peterzhu.ca>
2022-05-13 22:52:57 +09:00
Burdette Lamar 00635f8d41 [ruby/logger] Update lib/logger.rb
https://github.com/ruby/logger/commit/98919e09e5

Co-authored-by: Peter Zhu <peter@peterzhu.ca>
2022-05-13 22:52:56 +09:00
Burdette Lamar 2427a11b35 [ruby/logger] Update lib/logger.rb
https://github.com/ruby/logger/commit/073a892ad9

Co-authored-by: Olle Jonsson <olle.jonsson@gmail.com>
2022-05-13 22:52:55 +09:00
Burdette Lamar b9311e646e [ruby/logger] Update lib/logger.rb
https://github.com/ruby/logger/commit/6d91281f7f

Co-authored-by: Olle Jonsson <olle.jonsson@gmail.com>
2022-05-13 22:52:55 +09:00
Burdette Lamar e36a794f1a [ruby/logger] Update lib/logger.rb
https://github.com/ruby/logger/commit/34c0ba8baa

Co-authored-by: Olle Jonsson <olle.jonsson@gmail.com>
2022-05-13 22:52:54 +09:00
BurdetteLamar 90d8b7219e [ruby/logger] Enhanced RDoc for Logger
https://github.com/ruby/logger/commit/16556d06d1
2022-05-13 22:52:53 +09:00
David Rodríguez 4c9ddaac0d [rubygems/rubygems] Fix `Gemfile.lock` versions leaking to `bundler/inline` install output
The lockfile is completely ignored in inline mode, yet the previous
output would suggest it wasn't.

https://github.com/rubygems/rubygems/commit/763125a745
2022-05-13 15:23:56 +09:00
David Rodríguez 4962e5c417 [rubygems/rubygems] Normalize parameter name
The other sources use `options` which reads better.

https://github.com/rubygems/rubygems/commit/a672f9d602
2022-05-13 15:23:56 +09:00
Kazuhiro NISHIYAMA 2d1032075a
Stop `build_extensions` when DESTDIR set
Try to fix `make install without root privilege` failures on snapshot CIs.

example: https://github.com/ruby/actions/actions/runs/2315349280
2022-05-13 08:44:17 +09:00
Aaron Patterson ebaf56c013 YJIT: Implement getblockparam
This implements the getblockparam instruction.

There are two cases we need to handle depending on whether or not
VM_FRAME_FLAG_MODIFIED_BLOCK_PARAM is set in the environment flag.

When the modified flag is unset, we need to call rb_vm_bh_to_procval to
get a proc from our passed block, save the proc in the environment, and
set the modified flag.

In the case that the modified flag is set we are able to just use the
existing proc in the environment.

One quirk of this is that we need to call jit_prepare_routine_call early
and ensure we update PC and SP regardless of the branch taken, so that
we have a consistent SP offset at the start of the next instruction.

We considered using a chain guard to generate these two paths
separately, but decided against it because it's very common to see both
and the modified case is basically a subset of the instructions in the
unmodified case.

This includes tests for both getblockparam and getblockparamproxy which
was previously missing a test.
2022-05-12 14:34:18 -07:00